public class OuterOfStatic {
static class StaticNested{
}
}OuterOfStatic.class
OuterOfStatic$StaticNested.classInner클래스를 감싸고 있는 Outer클래스 객체를 먼저 만들어야한다.
왜 inner클래스를 만드는 것인가?
- 하나의 클래스에서 어떤 공통적인 작업을 수행하는 클래스가 필요한데 다른 클래스에서는 그 클래스가 전혀 필요없을때
public class OutOfInner {
class Inner {
private int value = 0;
public int getValue() {
return value;
}
public void setValue(int value) {
this.value = value;
}
}
}
public class InnerSample {
public static void main(String[] args) {
InnerSample sample = new InnerSample();
sample.makeInnerObject();
}
public void makeInnerObject() {
OutOfInner outer = new OutOfInner();
OutOfInner.Inner inner = outer.new Inner();
inner.setValue(3);
System.out.println(inner.getValue());
}
}
클래스를 상속하거나 인터페이스를 구현해야만 생성 가능
필드의 초기값, 로컬변수의 초기값, 매개변수의 매개값으로 주로 대입된다.
new 생성자() {…}
Car car = new Car() {
public void run() {
System.out.println("Car");
}}
익명 객체에 새롭게 정의된 필드와 메소드