1.成员内部类
- 成员内部类 的修饰符:public 、[default] 、protected 、private
- 成员内部类中属性不能是static Inner classes cannot have static declarations
- 访问内部类的属性和方法
//外部类
public class Outter{
//外部类的属性
private String name;
private static int age;
//外部类的方法
public void show1(){}
public static void show2(){}
//成员内部类声明开始
public class MemberInnerClass{
public String name;
public int age;
public void show3(){}
}
//成员内部类声明结束
}
(1) 创建外部类对象,再创建内部类对象,再访问
class Test{
public static void main(String[] args) {
//创建外部类对象
Outter o=new Outter();
//创建内部类对象
Outter.MemberInner inner=o.new MemberInner();
inner.show3();
System.out.println(inner.age);
System.out.println(inner.name);
}
}
(2)在内部类中访问外部类的属性,属性名不同,直接访问,属性名相同,要用this
class MemberInner{
public String name;
public int age;
public void show3(){}
public void show4(String name){
//局部变量
System.out.println(name);
// 内部类中的name属性
System.out.println(this.name);
System.out.println(MemberInner.this.name