본문 바로가기

✏️Java 공부/Java의 정석15

[Java 공부/Java의 정석] Chapter.07 : 객체지향 프로그래밍 2 - 7 (내부 클래스) 객체지향 프로그래밍의 마지막 글이 될 거 같다. 내부 클래스는 클래스 내에 선언된다는 점을 제외하고는 일반적인 클래스와 다르지 않다. 내부 클래스는 사용빈도가 높지 않으므로 내부 클래스의 기본 원리와 특징을 이해하는 정도로도 충분하다. 내부 클래스 내부 클래스는 클래스 내에 선언된 클래스이다. 클래스에 다른 클래스를 선언하는 이유는 두 클래스가 서로 긴밀한 관계에 있기 때문이다. 한 클래스를 다른 클래스의 내부 클래스로 선언하면 두 클래스의 멤버들 간에 서로 쉽게 접근할 수 있다는 장점과 외부에는 불필요한 클래스를 감춤으로써 코드의 복잡성을 줄일 수 있다는 장점을 얻을 수 있다. 내부 클래스의 장점 - 내부 클래스에서 외부 클래스의 멤버들을 쉽게 접근할 수 있다. - 코드의 복잡성을 줄일 수 있다.(캡슐.. 2022. 7. 9.
[Java 공부/Java의 정석] Chapter.07 : 객체지향 프로그래밍 2 - 6 (인터페이스) 인터페이스 인터페이스는 일종의 추상 클래스다. 인터페이스는 추상 클래스처럼 추상 메서드를 갖지만 추상 클래스보다 추상화 정도가 높아서 추상 클래스와 달리 몸통을 갖춘 일반 메서드 또는 멤버 변수를 구성원으로 가질 수 없다. 오직 추상 메서드와 상수만을 멤버로 가질 수 있으며, 그 외의 다른 어떠한 요소도 허용하지 않는다. 추상 클래스를 부분적으로만 완성된 '미완성 설계도'라고 한다면, 인터페이스는 구현된 것은 아무것도 없고 밑그림만 그려져 있는 '기본 설계도'라 할 수 있다. 인터페이스의 작성 인터페이스를 작성하는 것은 클래스를 작성하는 것과 같다. 다만 키워드로 class 대신 interface를 사용한다는 것만 다르다. 그리고 interface에도 클래스와 같이 접근 제어자로 public 또는 def.. 2022. 7. 8.
[Java 공부/Java의 정석] Chapter.07 : 객체지향 프로그래밍 2 - 5 (추상클래스) 추상클래스 클래스를 설계도에 비유한다면, 추상클래스는 미완성 설계도에 비유할 수 있다. 미완성 설계도로 완성된 제품을 만들 수 없듯이 추상클래스로 인스턴스는 생성할 수 없다. 추상클래스는 상속을 통해서 자손클래스에 의해서만 완성될 수 있다. 추상클래스 자체로는 클래스로서의 역할을 다 못하지만, 새로운 클래스를 작성하는 데 있어서 바탕이 되는 조상 클래스로서 중요한 의미를 갖는다. 추상 클래스는 키워드 'abstract'를 붙이기만 하면 된다. 이렇게 함으로써 이 클래스를 사용할 때, 클래스 선언부의 abstract를 보고 이 크래스에는 추상 메서드가 있으니 상속을 통해서 구현해주어야 한다는 것을 쉽게 알 수 있을 것이다. abstract class 클래스 이름 { ... } 추상메서드 메서드는 선언부와 .. 2022. 7. 7.
[Java 공부/Java의 정석] Chapter.07 : 객체지향 프로그래밍 2 - 4 (다형성) 다형성 객제지향개념에서 다형성이란 '여러 가지 형태를 가질 수 있는 능력'을 의미하며, 자바에서는 한 타입의 참조변수로 여러 타입의 객체를 참조할 수 있도록 함으로써 다형성을 프로그램적으로 구현하였다. 이를 좀 더 구체적으로 말하자면 '부모 클래스 타입의 참조변수로 자식 클래스의 인스턴스를 참조할 수 있도록 하였다'는 것이다. 나는 이게 말로만 하면 무슨 소리인지 모르겠어서 예제로 이해하는 것이 더 쉬웠다. 예제 class Animal { String name;//이름 int age;//나이 Animal() { this("덕구", 1); } Animal(String n, int a) { this.name = n; this.age = a; } } class Tiger extends Animal { int .. 2022. 7. 7.