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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 郑昌奋 中级黑马   /  2013-3-15 13:23  /  1427 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 郑昌奋 于 2013-3-15 18:50 编辑

内部类一般是在什么时候才可以去使用或者定义,就是我们在开发的时候设计哪些逻辑思想时候才会用内部类来实现,有什么好处呢?

点评

如果你的问题已经得到解决,请将分类改为已解决,如果还有问题请继续追问!谢谢  发表于 2013-3-15 16:04

评分

参与人数 1技术分 +1 收起 理由
贾文泽 + 1

查看全部评分

3 个回复

倒序浏览
本帖最后由 李思杰 于 2013-3-15 13:39 编辑

分析事物时,发现该事物描述中还有事物,而且这个事物还在访问被描述事物的内容。这时就是还有的事物定义成内部类来描述。
比如你定义人体这个类,发现人体里面还有心脏着个类,这时就可以把心脏定义为内部类。

  1. <P>class Body
  2. {
  3. private int num = 3;</P>
  4. <P> class Heart// 内部类。
  5. {
  6.   void show()
  7.   {
  8.    System.out.println("show run..."+num);
  9.   }
  10. }</P>
  11. <P> public void method()
  12. {
  13.   Inner in = new Inner();
  14.   in.show();
  15. }
  16. }
  17. class InnerClassDemo
  18. {
  19. public static void main(String[] args)
  20. {
  21.   Body b = new Body();
  22.   b.method();
  23.   Body.Heart h = new Body().new Heart();
  24.   h.show();//直接访问外部类中的内部类中的成员。  
  25. }
  26. }</P>
复制代码

评分

参与人数 1技术分 +1 收起 理由
贾文泽 + 1 赞一个!

查看全部评分

回复 使用道具 举报
  1. class Outer{                // 定义外部类
  2.         private String info = "hello world" ;        // 定义外部类的私有属性
  3.         class Inner{        // 定义内部类
  4.                 public void print(){                                // 定义内部类的方法
  5.                         System.out.println(info) ;                // 直接访问外部类的私有属性
  6.                 }
  7.         };
  8.         public void fun(){                                                // 定义外部类的方法
  9.                 new Inner().print() ;                                // 通过内部类的实例化对象调用方法
  10.         }
  11. };
  12. public class InnerClassDemo01{
  13.         public static void main(String args[]){
  14.                 new Outer().fun() ;                                        // 调用外部类的fun()方法
  15.         }
  16. };
复制代码
内部类只要是用来访问外嵌类的私有属性,也就是说你定义一个类,其中有private的成员变量(也就是该成员变量只能在本类中使用),
但是在其子类中又想访问该成员变量,所以就要在拥有该成员变量的类中定义内部类,该内部类创建的对象就可以访问该成员变量了
以上程序你可以试试不用内部类来实现,你就发现有些麻烦了。

评分

参与人数 1技术分 +1 收起 理由
贾文泽 + 1

查看全部评分

回复 使用道具 举报
当对象有隐私的时候就可以考虑用内部类了,相当于做一个二次封装,只留接口。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马