JAVA内部类简介说明
下文笔者讲述Java内部类的简介说明,如下所示
何为内部类
内部类 将一个类定义在另一个类内部。 我们将这种类称之为"内部类"
内部类修饰符简介
外部类只能使用public、default修饰 内部类可以使用private、public、protect、default(即全部修饰符)修饰 内部类可以直接访问外部类的属性和方法,包括private修饰的 如果内外有同名,内调外,加上类名.this.方法或者属性名来调用:例
public class Outer {
private int a=1;
public class Inner{
private int a=2;
public void show(){
System.out.println(Outer.this.a);
}
}
}
内部类class文件说明
一个类中总共有几个类就会有几个.class文件
内部类的class文件使用外部类名加上$符号修饰
public class Outer{
class inner{
}
}
实例化
内部类可以看作是外部类的一个成员,
在成员内部类中访问外部类的成员方法和属性:
外部类名.this.成员方法(或者属性)
在内部类之外创建成员内部类的实例:
外部实例对象名.内部类名 实例名 = new 内部类构造方法
class Outer {
private int a=1;
class Inner{
private int a=2;
public void show(){
System.out.println(Outer.this.a);
}
}
}
public class test {
public static void main(String[] args) {
Outer.Inner inner=new Outer().new Inner();
}
}
静态内部类
使用static修饰的内部类叫静态内部类
使用方法和调用限制和静态方法相同
即静态内部类只能调用外部类的静态属性和方法
对静态内部类的调用可以视为对一个静态方法的调用
class Outer {
private static int a=1;
static class Inner{
private int a=2;
public void show(){
System.out.println(Outer.a);
}
}
}
匿名内部类
没有名称的内部类 形式上是直接new接口或者抽象类,实际上是产生一个匿名的实现类。 new匿名内部类的前提是必须继承一个父类或者实现一个接口; 匿名内部类中不能使用static修饰符; 匿名内部类就是一个普通的实现类 里面方法属性不限量。可重载可自定义等等。
版权声明
本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。


