内部类

原创 2011年01月21日 21:39:00

        1.在类中定义的类, 就是内部类
 2.内部类和普通类的不同:
  类名是: 外部类名.内部类名
  创建方式: 先要创建外部类对象, 才能创建内部类对象. 例如: Outer.Inner inner = new Outer().new Inner();
  应用场景: 在某种情况下, 一个类的创建, 需要另一个类的对象的时候, 就可以声明为内部类.
 3.内部类使用外部类的成员:
  访问外部类变量: 外部类名.this.变量名
  访问外部类方法: 外部类名.this.方法名
  内部类可以访问外部类的成员, 因为内部类创建的时候, 肯定会有外部类对象.
  外部类不能访问内部类成员, 因为创建外部类的时候, 可能没有内部类.
  如果外部类一定要访问内部类的话, 可以先创建一个内部类, 再调用其成员.
  
二.方法中的内部类
 1.当一个类只在某个类的一个方法中使用的时候, 就可以定义在那个方法中.
 2.方法中的内部类只能在方法中访问
 3.方法中的内部类, 必须先定义才能使用. 使用的代码必须在定义的后面.
 4.方法中的内部类, 要访问方法中的局部变量, 这个变量要声明为final.
              因为在方法结束的时候, 栈空间释放, 普通变量都会被销毁.
 而内部类对象可能还有其他引用可以到达, 对象仍然可用, 如果这个时候变量被销毁        了, 程序就会出错。
  
三.静态内部类
 1.静态内部类, 在外部类被加载之后就能用. 不需要创建外部类对象
 2.静态内部类中可以定义静态成员
 3.静态内部类中不可以访问非静态成员
 
四.匿名内部类
 1.当某个类的子类只在方法中使用的时候, 我们可以将这个类定义在方法中.
 2.当这个类又只使用一次的时候, 我们可以不给它定义名字. 使用匿名内部类的形式
 3.匿名内部类的定义格式:  new 父类名(){类定义}
        4.匿名内部类程序不能写构造函数。

Java 内部类与外部类的关系

内部类分为:非静态内部类、静态类内部类、匿名内部类和局部内部类。            内部类可以直接访问外部类的私有属性,这是由于这个原因。        1、非静态内部类对象会持有外部类的对象。其...
  • lmj121212
  • lmj121212
  • 2016年11月23日 21:39
  • 792

JAVA和C++内部类

JAVA和C++内部类的异同
  • qq78442761
  • qq78442761
  • 2016年11月21日 22:52
  • 450

成员内部类.局部内部类.静态内部类.匿名内部类的区别

一 对于非静态内部类,不能有静态成员,例如变量,方法等。静态内部类的非静态成员可以访问外部类的静态变量,而不可访问外部类的非静态变量。非静态内部类的非静态成员可以访问外部类的非静态变量。 成员内部类...
  • dipang00
  • dipang00
  • 2016年10月17日 11:51
  • 754

内部类和外部类之间互相访问

内部类与外部类之间的成员互相访问  内部类可以访问外部类的任何成员,包括private成员。  外部类访问内部类的成员需要创建内部类的对象,之后可以访问内部类的任何成员,包括private成员,需...
  • wangkjs
  • wangkjs
  • 2015年08月11日 11:43
  • 1094

Java内部类总结 (吐血之作)

内部类是指在一个外部类的内部再定义一个类。内部类作为外部类的一个成员,并且依附于外部类而存在的。 内部类可为静态,可用protected和private修饰(而外部类只能使用public和缺省的包访...
  • a564663276
  • a564663276
  • 2013年05月23日 11:29
  • 48172

创建内部类的实例方法

方法1:在外部类类初始化内部类实例 class Start { public static void main(String [] args) { MyOuter outer=new My...
  • leafinsnowfield
  • leafinsnowfield
  • 2015年08月09日 10:42
  • 2024

c++内部类和外部类(java)

(1)简介: 内部类其实就是一种在类声明里面定义的一种局部数据类型。(非常类似于struct Node声明的),这和java的还有存在区别的。 ---- 内部类的声明有public和private...
  • u010700335
  • u010700335
  • 2014年11月23日 12:15
  • 1225

java内部类有什么好处?为什么需要内部类?

提起Java内部类(Inner Class)可能很多人不太熟悉,实际上类似的概念在C++里也有,那就是嵌套类(Nested Class),关于这两者的区别与联系,在下文中会有对比。内部类从表面上看,就...
  • a564663276
  • a564663276
  • 2013年05月23日 10:27
  • 6861

java静态内部类

转载:http://www.cnblogs.com/Alex--Yang/p/3386863.html    http://book.51cto.com/art/201202/317517.htm ...
  • a465456465
  • a465456465
  • 2015年07月01日 11:25
  • 759

java中的外部类和内部类

1.概念  内部类:顾名思义
  • wuzhoudao
  • wuzhoudao
  • 2014年06月17日 19:09
  • 981
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:内部类
举报原因:
原因补充:

(最多只允许输入30个字)