<aside> 💡
객체 지향 프로그래밍에서 클래스 들은 서로 긴밀한 관계를 맺고 상호작용을 한다.
어떤 클래스는 여러 클래스와 관계를 맺지만 어떤 클래스는 특정 클래스와 관계를 맺는다. 여러 클래스와 관계를 맺는 경우 독립적으로 정의 하는 게 좋으나, 특정 클래스와만 관계를 맺는 경우 클래스의 내부에 정의하는게 좋다.
</aside>
class Outer_Demo {
class Inner_Demo {
}
}
<aside> 💡
package example;
public class InnerClass {
private int anilmalLife = 100;
private class Animal {
private String name = "호랑이";
int getOuter() {
return anilmalLife; // 내부 클래스에서 외부 클래스의 private 멤버를 제한 없이 접근 가능
}
}
public void mehtod() {
Animal animal = new Animal();
// Getter 를 사용하지 않아도 내부 클래스의 private 멤버에 접근가능
System.out.println(animal.name); // 내부 클래스의 "호랑이" 출력
// 내부클래스에서 외부클래스의 private 멤버를 출력 객체 animal -> InnerClass 클래스의 animalLife에 접근
System.out.println(animal.getOuter()); // InnerClass 클래스의 100 출력
}
}