内部类
内部类包括:成员内部类(最常见)
含义在类的内部再定义一个类
1.成员内部类:
内部类访问外部类的成员时候:
外部类.this.变量名;
实例化一个内部类时候
外部类对象.new 内部类名();
//外部类HelloWorld
public class HelloWorld{
//外部类的私有属性name
private String name = "imooc";
//外部类的成员属性
int age = 20;
//成员内部类Inner
public class Inner {
String name = "爱慕课";
//内部类中的方法
public void show() {
// 重点看这里--内部类访问外部类的成员时候:外部类.this.变量名;
System.out.println("外部类中的name:" + HelloWorld.this.name);
System.out.println("内部类中的name:" + name );
System.out.println("外部类中的age:" + age);
}
}
//测试成员内部类
public static void main(String[] args) {
//创建外部类的对象
HelloWorld o = new HelloWorld ();
//重点看这里:----创建内部类的对象
Inner inn = o.new Inner();
//调用内部类对象的show方法
inn.show();
}
}
tjwe riroutweoiriuryoiew635+6
2.静态内部类:
//外部类
public class HelloWorld {
// 外部类中的静态变量score
private static int score = 84;
private int sa=99;
// 创建静态内部类
public static class SInner {
// 内部类中的变量score
int score = 91;
public void show() {
System.out.println("访问外部类中的静态成员-score:" + HelloWorld.score );
System.out.println("访问内部类中的非静态成员-sa:" +new HelloWorld().sa );
System.out.println("访问内部类中的score:" + score);
}
}
// 测试静态内部类
public static void main(String[] args) {
// 直接创建内部类的对象
SInner si=new SInner();
// 调用show方法
si.show();
}
}
3.匿名内部类
被匿名内部类访问的局部变量可以用final修饰,即便没有final修饰被访问过一次之后也不能再赋其他值;