内部类

就是类里面的类

使用内部类
public class neibu { public static void main(String[] args) { /** *如何实例化成员内部类 */ //创建实例(静态德成员内部类) Person.gou go =new Person.gou(); go.chi(); //非静态的加载的晚,所以要先把类实例 Person p =new Person(); Person.niao nia = p.new niao(); nia.changge(); /** *如何在成员内部类中区别调用外部类的结构 */ nia.display("马鸟"); } } class Person{ String name ="小红"; int age; public void eat(){ System.out.println("人"); } //静态成员内部类 //静态的加载时间比非静态早,所以无法调用非静态 static class gou{ String name; public void chi(){ System.out.println("吃骨头"); } } class niao{//非静态内部类 String name ="麻雀"; public niao(){ } public void changge(){ System.out.println("我是一只小小鸟"); Person.this.eat();//调用外部类的非静态属性 } public void display(String name){ System.out.println(name); System.out.println(this.name); System.out.println(Person.this.name); } } public void method(){ //局部内部嘞 class AA{ } } {//代码块,局部内部类 class BB{ } } public Person(){//构造器,局部内部类 class CC{ } } }
局部内部类的使用:见《InnerClassTest.java》
public class InnerClassText { //局部内部类的使用:见《InnerClassTest.java》 public static void main(String[] args) { } public void method() { //局部内部嘞 class AA { } } //返回一个实现了Comparable接口的对象 public Comparable getComparable(){ //创建一个实现了Comparable接口的类:局部内部类 //方法一 // class MyComparable implements Comparable{ // // @Override // public int compareTo(Object o) { // return 0; // } // } // return new MyComparable(); // //方法二 return new Comparable() { @Override public int compareTo(Object o) { return 0; } }; } }
浙公网安备 33010602011771号