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修饰符; 匿名内部类就是一个普通的实现类 里面方法属性不限量。可重载可自定义等等。
版权声明
本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。