一般内部类

public class OuterClass {
    private String name;
    private int age; 
    public String getName() {
		return name;
	}

	public void setName(String name) {
		this.name = name;
	}

	public int getAge() {
		return age;
	}

	public void setAge(int age) {
		this.age = age;
	}
	public void message() {
		name="holmes";
		age=21;
		System.out.println("OuterClass:"+getName()+":"+getAge());
	}
	public InnerClass getInnerClass() {
    	return new InnerClass();
    }

	public class InnerClass{
        public InnerClass(){
            name = "moriarty";
            age = 23;
        }
        
        public void innerMessage(){        	
            System.out.println("InnerClass:"+getName() +":" + getAge());
            System.out.println("1.内部类可以获取外部类的成员变量");
            System.out.println("2.内部类可以获取外部类的方法");
            message();
            System.out.println("3.证明内部类拥有获取指向外部类的引用的能力");
        }
        public OuterClass getOuterClass() {
        	return OuterClass.this;
        }
    }
    
    public static void main(String[] args) {
        OuterClass outerClass = new OuterClass();      
        System.out.println("证明内部类的创建依赖外部类");
        System.out.println();
        
        OuterClass.InnerClass innerClass = outerClass.new InnerClass();
        innerClass.innerMessage();
        System.out.println();
        
        System.out.println("模拟内部类指向外部类的引用");
        innerClass.getOuterClass().message();     
        System.out.println();
        
        System.out.println("模拟外部类访问内部类");
        outerClass.getInnerClass().innerMessage();
        
    }
}


猜你喜欢

转载自blog.csdn.net/weixin_36552034/article/details/80375852
今日推荐