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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 沿途的记忆 中级黑马   /  2014-6-28 01:50  /  639 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

内部类的访问 基本格式?

2 个回复

倒序浏览
直接用成员 或者方法
回复 使用道具 举报
内部类的访问规则:
* 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. }
复制代码

评分

参与人数 1技术分 +1 收起 理由
菜小徐 + 1

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马