10.3内部类
来源:互联网 发布:principle软件 编辑:程序博客网 时间:2024/06/03 19:06
内部类:一个类定义在另一个类的内部,那么该类就被称作为内部类
内部类分为:成员内部类和局部内部类。
class Outer{class Inner{}}class InnerClass{public static void main(String[] args) {System.out.println("Hello World!");}}
内部类:一个类定义在另一个类的内部,那么该类就被称作为内部类。内部类的class文件名:外部类$内部类。好处:便于区分该class文件是属于哪个外部类的。内部类的类别1.成员内部类成员内部类的访问方法:方法一:在外部类提供一个方法创建内部类的对象进行访问。方法二:在其他类中直接创建内部类的对象格式: 外部类.内部类 变量名 = new 外部类().new 内部类();注意:如果是一个静态内部类,那么在其他类中创建的格式如下:外部类.内部类 变量名 = new 外部类.内部类 ();内部类的好处:内部类可以直接访问外部类的所有成员。内部类的应用场景在描述一类事物的时候,发现描述的事物A内部还存在另外一个比较复杂的事物B时候,而且这个比较复杂事物B还需要访问A事物的属性等数据,那么这个时候我们就可以使用内部类描述B事物。比如:人------>心脏class 人 {血液氧气等class 心脏{}}内部类要注意的细节:1.如果外部类与内部类存在同名的成员变量时,在内部类中默认情况下是访问内部类成员变量.在内部类中可以通过“外部类.this.成员变量名”指定访问外部类的成员。2.私有的成员内部类只能在外部类提供一个方法创建内部类的对象进行访问,不能在其他类创建对象了。3.成员内部类需要出现静态成员,那么内部类本身也需要定义为静态内部类
class Outer{//成员变量private int x =100;//成员内部类private class Inner{int i = 10;int x = 100;public void print(){int x = 200;System.out.println("成员内部类print method "+Outer.this.x);}}//在外部的方法中创建了内部类的对象,然后调用内部 方法。public void instance(){System.out.println("X= "+x);Inner inner = new Inner();inner.print();}}//其他类class InnerClass{class Inner{}public static void main(String[] args) {//方式一:Outer outer = new Outer();outer.instance();/*//方式二:Outer.Inner inner = new Outer().new Inner();inner.print();*/}}
0 0