对象.this: 是生成对外部类的引用
对象.new: 创建某个内部类的对象(前提是必须要提供外部类的引用)
public class Demo13 {
public static void main(String[] args){
Demo13_1 Object1=new Demo13_1(); //先创建外部类的对象
Object1.setNum(2);
Demo13_1.Demo13_2 Object2=Object1.new Demo13_2(); //.new 创建内部类的对象
Demo13_1 Object3=Object2.f(); //证明对象.this返回的是否是同一个位置
System.out.println(Object3.getNum());
}
}
class Demo13_1{
int num=12;
class Demo13_2{
{
System.out.println("内部类Demo13_2");
}
public Demo13_1 f(){
return Demo13_1.this; //.this 生成外部类的引用
}
}
public void setNum(int num){
this.num=num;
}
public int getNum(){
return this.num;
}
}
//运行结果
// 内部类Demo13_2
// 2
要想在其他类中得到某个类的内部类对象,这是方法之一
另外一个方法就是将该内部类声明为静态的,这样可以在其他类中随意调用,但这种做法不太好,并不建议使用