内部类(2019年10月25日)

java文件里面必须有且只有一个public的class,并且名字跟文件名一样,

如果一个文件有很多类,而且每个类前面都没写public ,那么会在和类名相同的类前默认加上一个public

1       Outer o= new Outer();
2       Inner i= o.new Inner();
3       i.method(); //等同于 Inner i= new Outer().new Inner();

内部类分为:成员内部类,静态内部类,临时内部类,匿名内部类

  成员内部类:地位就相当于类中的属性,在编译之后产生的名字为:外部类名$内部类名

  静态内部类:在成员内部类前面加上一个static ,里面的内容要都是静态的,调用的话也要是静态的

  临时内部类:这个类是放在外部内的方法中的,地位就相当于方法中的临时变量,使用范围本方法中。

  匿名内部类(用的最多):在new对象的语句中的参数列表结束后再加上一个括号{  },这个里面可以写方法(重载外部类的方法),也可以写自己的属性,在编译之后的命名方式:外部类名$1...(因为是匿名的,所以和成员内部类相比他只能写1,2这些数字表示一个一个的匿名类)

如果我们需要在内部类中调用和内部类本身名称相同的属性,那么我们需要用外部类点this的方法来调用(方法也同理)

posted @ 2019-10-25 17:24  小星星i  阅读(87)  评论(0编辑  收藏  举报