黑马程序员技术交流社区

标题: 内部类的访问 基本格式? [打印本页]

作者: 沿途的记忆    时间: 2014-6-28 01:50
标题: 内部类的访问 基本格式?
内部类的访问 基本格式?
作者: youngkay    时间: 2014-6-28 10:45
直接用成员 或者方法
作者: 燿陚√揚葳    时间: 2014-6-28 11:27
内部类的访问规则:
* 1.内部类可以直接访问外部类的成员,包括私有
* 之所以可以直接访问外部类中的成员,是因为内部类中持有了一个外部类的引用,格式:外部类名.this
* 2.外部类要访问内部类,必须要建立内部类的对象
*
* 访问格式
* 1.当内部类定义在 外部类成员变量位置上,而且非私有,可以在外部其他类中
* 直接建立内部类对象
* 格式:外部类名.内部类名 变量名=外部类对象.内部类对象相当于
* 外部类名.内部类名  变量名=new 外部类名().new 内部类名()
* Outer.Inner io=new Outer().new Inner();
*
* 2.当内部类在乘员位置上就可以被,成员修饰符所修饰
*  比如,private,将内部类在外部类中进行封装
*  static:内部类就具备了static的特性
* 当内部类被static修饰后,只能直接访问外部类中的static成员,出现了访问局限
*
* 如何在外部其他类中,如何直接访问static内部类的非静态成员呢?
* new Outer.Inner().poth();
*
* 如何在外部其他类中,如何直接访问static内部类的静态成员呢?
* Outer.Inner.poth();
*
* 注意:当内部类定义了静态成员时,该内部类必须是静态的
* new Outer.Inner.poth();
*    当外部类中的静态方法访问内部类时,内部类必须也是静态的
* 内部类可以被私有化
*
* 当描述事物时,事物的内部还有事物,该事物用内部类来描述
* 因为内部事务,在使用外部事务的内容

具体代码如下:
  1. class Outer{
  2. static int num=3;
  3. static class Inner{//静态内部类
  4. static void poth(){
  5. System.out.println("inner.num="+num);
  6. }
  7. }
  8. class Inner2{
  9. void show(){
  10. System.out.println("inner2 show");
  11. }

  12. }
  13. void method(){
  14. Inner in=new Inner();
  15. in.poth();
  16. }
  17. public static void metood(){
  18. Inner.poth();
  19. }
  20. }
  21. public class InnerClassDemo {

  22. /**
  23. * @param args
  24. */
  25. public static void main(String[] args) {
  26. // Outer.metood();
  27. // Outer.Inner.poth();
  28. // new Outer.Inner().poth();
  29. // Outer ot=new Outer();
  30. // ot.method();
  31. // Outer.Inner io=new Outer().new Inner();
  32. // io.poth();

  33. }

  34. }
复制代码






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