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

© ertrtesr 中级黑马   /  2015-10-11 12:06  /  292 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

  1. class Outer{                // 定义外部类
  2.         private String info = "hello world" ;        // 定义外部类的私有属性
  3.         public void fun(){                                                // 定义外部类的方法
  4.                 new Inner(this).print() ;                                // 通过内部类的实例化对象调用方法
  5.         }
  6.         public String getInfo(){                                // 增加了一个getter方法取得info内容
  7.                 return this.info ;       
  8.         }
  9. };
  10. class Inner{        // 定义内部类
  11.         private Outer out = null ;                                // 声明Outer对象
  12.         public Inner(Outer out){
  13.                 this.out = out ;
  14.         }
  15.         public void print(){                                // 定义内部类的方法
  16.                 System.out.println(this.out.getInfo()) ;                // 直接访问外部类的私有属性
  17.         }
  18. };
  19. public class InnerClassDemo02{
  20.         public static void main(String args[]){
  21.                 new Outer().fun() ;                                        // 调用外部类的fun()方法
  22.         }
  23. };
复制代码
谁能说明一下该代码的对象跟引用变量在在内存图中是怎么样的?

2 个回复

倒序浏览
还有其中的this指向谁
回复 使用道具 举报
初学.NET 时画的内存图,Java除了类加载和.NET有所区别,之后的过程基本是一样的,可以参考一下。
更多图片 小图 大图
组图打开中,请稍候......
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马