JAVA内部类:成员内部类
内部类,顾名思义就是定义在类中的类,按照定义的位置,分为成员内部类和局部内部类
一、成员内部类
1. 类的成员有属性和方法,如果内部类定义的位置与外部类的属性或方法同级,则该内部类被称之为成员内部类。
成员内部类,也是外部类的一个成员。
public class Outter{
private String name;
//成员内部类
class Inner{
}
}
2. 成员内部类,可以自由地使用外部内的成员(属性和方法),包括私有属性和方法。
public class Outter{
private String name;
class Inner{
public void method(){
System.out.println(name);//使用外部类的属性
}
}
}
3. 访问内部类
通过建立外部类对象来访问内部类
Outter.Inner inn = new Outter().new Inner();
inn.method();
4. 内部类的编译文件
如上面这个例子,在bin目录下会内部类编译文件为
Outter$Inner.class文件
$符号代表后面的类为前面类的内部类
如果这样:
public class Outter{
class Inner01{
class Inner02{}
}
}
内部类中还有一个内部类,则编译文件有:
Outter.class
Outter$Inner01.class
Outter$Inner01$Inner02.class
5. 内部类中同名变量的调用
public class Outter{
int i = 1;
class Inner{
int i = 2;
public void method(){
int i = 3;
System.out.println(i); //这里打印的是3,方法内的变量,就近调取
System.out.println(this.i); //这里打印的是2,this代表Inner这个类对象,访问类的属性用this
System.out.println(Outter.this.i);//这里打印的是1,通过外部类类名访问外部类对象this访问自已的属性。
}
}
}
二、局部内部类
浙公网安备 33010602011771号