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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

对内部类不是很了解,有没有同学给我具体的说一说?真心感谢!:)

5 个回复

倒序浏览
内部类,顾名思义就是定义在类内部的类。可以把它理解成一个特殊的成员,例如Integer类型变量其实就是和它是处于相同的位置(只是位置类似)。
内部类可以在类中声明类对象然后在类中使用,一般这样的内部类不需要外部其他类来访问它。内部类是一个编译时的概念,一旦编译成功,就会成为完全不同的两类。对于一个名为outer的外部类和其内部定义的名为inner的内部类。编译完成后出现outer.class和outer$inner.class两类。内部类可以访问所在外部类的全部成员。
你可以把它当成一个成员来使用。
回复 使用道具 举报
内部类定义:
如果在一个类中再定义一个类,就将在类中再定义的那个类称为内部类,内部类可分为为成员内部类,局部内部类,以及匿名内部类.
其中,内部类可以直接访问其所在外部类的私有成员变量,当然,公开变量更加可以访问了.还可以直接访问其外部类的成员方法,
内部类的实例化一定要绑定在外部类的实例上,如果在外部类中初始化一个内部类对象,那么内部类对象就会绑定在外部类对象上,
外部类中实例化内部类和其它类的初始化方式相同,都是使用new关键字.
对于内部类的详细使用方法和实例化方法,以下代码可以给你参考,嗯,是我的一个测试题
  1. //
  2. class TestA {

  3.         public static void main(String[] args) {
  4.                 OuterClass out = new OuterClass();
  5.                 // 内部类的实例一定要绑定在外部类的实例上
  6.                 OuterClass.InnerClass i = out.new InnerClass();
  7.                 i.func();
  8.         }
  9. }

  10. class OuterClass {

  11.         // 外部类的私用成员变量,内部类也可以访问
  12.         private int x = 1;

  13.         private void outMethod() {
  14.                 System.out.println("这是外部类的方法");
  15.         }

  16.         class InnerClass {
  17.                 // 内部类的私有成员变量,外部类不可以访问
  18.                 private int x = 2;

  19.                 void func() {
  20.                         int x = 3;
  21.                         // 内部类访问外部类的成员变量
  22.                         System.out.println("OuterClass的成员变量x为:" + OuterClass.this.x + ".  InnerClass的成员变量x为:" + this.x + ".  func方法内部的局部变量x为:" + x);
  23.                         // 内部类访问外部类的私有方法
  24.                         outMethod();
  25.                 }
  26.         }
  27. }
复制代码
其中输出结果为:
OuterClass的成员变量x为:1.  InnerClass的成员变量x为:2.  func方法内部的局部变量x为:3
这是外部类的方法



回复 使用道具 举报
liaorubei 发表于 2014-9-5 14:56
内部类定义:
如果在一个类中再定义一个类,就将在类中再定义的那个类称为内部类,内部类可分为为成员内部类, ...

感谢 !感谢!
回复 使用道具 举报
liaorubei 发表于 2014-9-5 14:56
内部类定义:
如果在一个类中再定义一个类,就将在类中再定义的那个类称为内部类,内部类可分为为成员内部类, ...

不错!同学,基础很好啊!
回复 使用道具 举报
liaorubei 发表于 2014-9-5 14:56
内部类定义:
如果在一个类中再定义一个类,就将在类中再定义的那个类称为内部类,内部类可分为为成员内部类, ...

豁然开朗!感谢liaorubei同学
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马