内部类和外部类的实例变量可以共存

Posted borter

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了内部类和外部类的实例变量可以共存相关的知识,希望对你有一定的参考价值。

成员内部类:作为外部类的一个成员存在,与外部类的属性、方法并列。

内部类和外部类的实例变量可以共存。

在内部类中访问实例变量:this.属性

在内部类访问外部类的实例变量:外部类名.this.属性。

 

成员内部类的优点:

⑴内部类作为外部类的成员,可以访问外部类的私有成员或属性。(即使将外部类声明为PRIVATE,但是对于处于其内部的内部类还是可见的。)

⑵用内部类定义在外部类中不可访问的属性。这样就在外部类中实现了比外部类的private还要小的访问权限。

注意:内部类是一个编译时的概念,一旦编译成功,就会成为完全不同的两类。

对于一个名为outer的外部类和其内部定义的名为inner的内部类。编译完成后出现outer.class和outer$inner.class两类。

 

 1 package TomText;
 2 //用其创建对象,并对创建的对象个数计数。
 3 public class TomText_41 {
 4     private static int i;
 5     private String name;
 6     private int age;
 7     TomText_41(String n,int a){
 8             name=n;
 9             age=a;
10             i++;
11             speak();
12     }
13     void speak(){
14             System.out.println("我是第"+i+"个人,名叫"+name+",年龄"+age+"岁");
15     }
16     public static void main(String [ ] args){
17         TomText_41 p1=new TomText_41("李大强",20);
18         TomText_41 p2=new TomText_41("张晓明",22);
19         TomText_41 p3=new TomText_41("王金宝",18);
20     }
21 
22 }

以上是关于内部类和外部类的实例变量可以共存的主要内容,如果未能解决你的问题,请参考以下文章

java 内部类和外部类的关系

JAVA 中外部类可以访问非静态内部类的私有属性???

内部类和 外部类相互访问

内部类和外部类之间的相互调用

内部类和静态内部类有什么区别?

在静态方法中new 一个内部类对象和new 一个外部类对象的区别