나는 다음과 같은 수업을 가정 할자바 외부 별도의 클래스 액세스 익명 클래스
Class0
public abstract class Class0 {
public Class0(){}
public void abmethod1(){
System.out.println("Abstract method 1");
}
public void abmethod2(){
System.out.println("Abstract method 2");
}
}
클래스 1
public class Class1 {
private List<Integer> aList;
public Class1(){
this.aList= new ArrayList<>();
}
public Integer getElementAt(int i){
return this.aList.get(i);
}
public int getSize(){
return this.aList.size();
}
public void add(int num){
this.aList.add(num);
}
}
Class2의
,451,515,public class Class2 {
private Class0 c0;
private Class3 c3;
public Class2(){
this.c0 = new Class0() {
Class1 c1 = new Class1();
@Override
public void abmethod1(){
System.out.println("Abstract method 1 called. Size is " + c1.getSize());
}
@Override
public void abmethod2(){
c1.add(1);
c1.add(2);
c1.add(3);
System.out.println("Abstract method 2 called. Size is " + c1.getSize());
}
};
this.c3 = new Class3();
c3.methodc2(c0);
}
}
강좌 3
public class Class3{
public void methodc2(Class0 c0){
c0.abmethod1();
c0.abmethod2();
}
}
CLASS4 그런
public class Class4 {
private Class2 c2;
public Class4(){
c2 = new Class2();
}
}
Class5
public class Class5 {
private Class2 c2;
public void method2(){
this.c2 = new Class2();
}
}
I RU n은 메인 클래스
public class Class6 {
public static void main(String[] afg){
Class4 c4 = new Class4();
Class5 c5 = new Class5();
c5.method2();
}
}
그리고
Abstract method 1 called. Size is 0
Abstract method 2 called. Size is 3
Abstract method 1 called. Size is 0
Abstract method 2 called. Size is 3
그래서 내가 (여기에 3 인) 내가 강좌 3 내부 익명 클래스를 호출 할 때마다 내 목록의 마지막 크기를 가지고 할 메시지를 얻을. 당신의 목표 인 경우 어떻게 내가 Class2
의 모든 인스턴스가 Class0
의 동일한 인스턴스를 공유하는 것이라고 출력을 할 수 있도록
Abstract method 1 called. Size is 0
Abstract method 2 called. Size is 3
Abstract method 1 called. Size is 3
Abstract method 2 called. Size is 6
사전
당신의 코드를 더 들여 쓰면 코드를 들여 쓰는 것이 정말 도움이 될 것입니다. (저는 지금 당장 당신을 위해 해주었습니다 만, 장래에 자신을 포매팅하는 것에 더 많은주의를 기울이십시오.) –
죄송합니다, 어떻게 들여 쓰기를 할 것인지 모르겠습니다. 공백과 스타일에 문제가 있습니까? –
내 편집 전에 어떻게 보 였는지 비교해보십시오. 들여 쓰기를 수행하는 IDE를 사용하는 경우에는 들여 쓰기가없는 클래스 선언 바로 아래에 메서드 선언이 있음을 매우 의심합니다. –