A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 执笔梦 金牌黑马   /  2013-11-22 21:54  /  1033 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

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();
//在这只 是创建内部类对象,还是创建内部类和外部类的对象。

评分

参与人数 1技术分 +1 收起 理由
To + 1

查看全部评分

2 个回复

倒序浏览
加了几句代码
  1. public class InnerClass {
  2.         public static void main(String[] args) {
  3.                         Out.Inner i = new Out().new Inner();
  4.                         i.print();
  5.         }
  6. }
  7. class Out{
  8.         String str = "cc";
  9.         //加入构造函数
  10.         Out(){
  11.                 System.out.println("out");
  12.         }
  13.         class Inner{
  14.                 String str = "诗诗";
  15.               //加入构造函数
  16.                 Inner(){
  17.                         System.out.println("inner");
  18.                 }
  19.                 public void print()
  20.                 {
  21.                         System.out.println("外部类变量:"+Out.this.str);// 在this前加上外部类名,打印外部类变量
  22.                         System.out.println("内部类变量:"+this.str);// // 用this关键字打印内部类的变量
  23.                 }
  24.         }
  25. }
复制代码
运行截图

由运行结果可知,先创建外部对象,然后再创建内部对象
其实内部类是外部类的成员,拿非静态的成员变量来说,也要先有类的对象才有成员变量,非静态的外部类也是一样的,非方法中的内部类楼主可以将它当成一般的成员一样来考虑



评分

参与人数 1技术分 +1 收起 理由
To + 1

查看全部评分

回复 使用道具 举报
应当先外部后内部,你可以这么想,没有外部类怎么可能有内部类呢?内部类只是外部类的一个成员。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马