黑马程序员技术交流社区
标题:
内部类创建对象问题
[打印本页]
作者:
执笔梦
时间:
2013-11-22 21:54
标题:
内部类创建对象问题
public class InnerClass {
public static void main(String[] args) {
Out.Inner i = new Out().new Inner();
i.print();
}
}
class Out{
String str = "cc";
class Inner{
String str = "诗诗";
public void print()
{
System.out.println("外部类变量:"+Out.this.str);// 在this前加上外部类名,打印外部类变量
System.out.println("内部类变量:"+this.str);// // 用this关键字打印内部类的变量
}
}
}
Out.Inner i = new Out().new Inner();
//在这只 是创建内部类对象,还是创建内部类和外部类的对象。
作者:
何丛
时间:
2013-11-22 22:22
加了几句代码
public class InnerClass {
public static void main(String[] args) {
Out.Inner i = new Out().new Inner();
i.print();
}
}
class Out{
String str = "cc";
//加入构造函数
Out(){
System.out.println("out");
}
class Inner{
String str = "诗诗";
//加入构造函数
Inner(){
System.out.println("inner");
}
public void print()
{
System.out.println("外部类变量:"+Out.this.str);// 在this前加上外部类名,打印外部类变量
System.out.println("内部类变量:"+this.str);// // 用this关键字打印内部类的变量
}
}
}
复制代码
运行截图
QQ截图20131122221645.png
(1.47 KB, 下载次数: 24)
下载附件
2013-11-22 22:17 上传
由运行结果可知,先创建外部对象,然后再创建内部对象
其实内部类是外部类的成员,拿非静态的成员变量来说,也要先有类的对象才有成员变量,非静态的外部类也是一样的,非方法中的内部类楼主可以将它当成一般的成员一样来考虑
作者:
hurryup
时间:
2013-11-23 01:01
应当先外部后内部,你可以这么想,没有外部类怎么可能有内部类呢?内部类只是外部类的一个成员。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2