class Outer
{
int a;
class Inner
{
}
}如果建两个外部类的对象。这两个对象分别有a的一份拷贝吧。那如果建一个外部类的对象,建一个内部类的对象。
外部类对象.a跟内部类对象.a 是分别有一份a的拷贝 还是共享的?如果建两个内部类的对象,那这两个内部类的对象是分别有一份a的拷贝 还是共享的?
内部类与外部类的关系我没搞清楚
{
int a;
class Inner
{
}
}如果建两个外部类的对象。这两个对象分别有a的一份拷贝吧。那如果建一个外部类的对象,建一个内部类的对象。
外部类对象.a跟内部类对象.a 是分别有一份a的拷贝 还是共享的?如果建两个内部类的对象,那这两个内部类的对象是分别有一份a的拷贝 还是共享的?
内部类与外部类的关系我没搞清楚
String str="22332";
public A(){
System.out.println("Outer:"+str);
}
public String getStr(){
return str;
}
public void setSs(String str){
}
class C{
public C(){
System.out.println("Inner"+str);
}
public String getStr(){
return str;
}
}
public static void main(String[] args){
A a=new A();
A.C cc=a.new C();
a.str="6666";
System.out.println(cc.getStr());
}}
找印结果:
Outer:22332
Inner22332
6666
可以看出,属性是共享的,也就是说,内部类是外部类的一部分
内部类的方法可以访问它所在的外部类中的所有域,包括私有型别的;
对于同一个包中的其它类它是隐藏的;
匿名的内部类可以让我们很方便的定义事件响应(call back),这在GUI编程中很常见内部可以访问外部类的属性和方法,他们是共同来使用得
答:使用内部类是也是通过外部类.内部类来使用得,你如果定义成这样
A a=new A();
A.C cc=a.new C();
那他们就是共享使用a的,