黑马程序员技术交流社区

标题: 内部类的设计思想 [打印本页]

作者: 郑昌奋    时间: 2013-3-15 13:23
标题: 内部类的设计思想
本帖最后由 郑昌奋 于 2013-3-15 18:50 编辑

内部类一般是在什么时候才可以去使用或者定义,就是我们在开发的时候设计哪些逻辑思想时候才会用内部类来实现,有什么好处呢?
作者: 李思杰    时间: 2013-3-15 13:30
本帖最后由 李思杰 于 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>
复制代码

作者: 张雪萍    时间: 2013-3-15 13:32
  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的成员变量(也就是该成员变量只能在本类中使用),
但是在其子类中又想访问该成员变量,所以就要在拥有该成员变量的类中定义内部类,该内部类创建的对象就可以访问该成员变量了
以上程序你可以试试不用内部类来实现,你就发现有些麻烦了。
作者: VOIDMAIN    时间: 2013-3-15 20:46
当对象有隐私的时候就可以考虑用内部类了,相当于做一个二次封装,只留接口。




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2