内部类
内部类,在类的内部再定义类,外面的类为外部类,里面定义的类为内部类。
内部类的分类:成员内部类(和属性、方法平行,声明在类里面,方法外面)、局部内部类(声明在类的方法里)。
成员内部类:
是外部类的一个成员 可以有修饰符(4种),可以用static、final修饰
具体类的特点 可以用abstract修饰,可以在内部类的内部定义成员、方法、构造器
1 public class TestInnerClass 2 { 3 public static void main(String[] args) 4 { 5 // 创建静态内部类的对象,可以直接通过外部类调用静态内部类的构造器 6 P.Dog dog = new P.Dog(); 7 // 创建非静态的内部类的对象,必须先创建外部类的对象,通过外部类的对象调用内部类的构造器 8 P.Bird bird = new P().new Bird(); 9 } 10 } 11 12 class P 13 { 14 String name; 15 16 void show() 17 { 18 19 } 20 21 class Bird 22 { 23 String name; 24 25 public void info() 26 { 27 show(); 28 } 29 30 public void setName(String name) 31 { 32 System.out.println(name); 33 System.out.println(this.name); 34 System.out.println(P.this.name); 35 } 36 } 37 38 static class Dog 39 { 40 41 } 42 } 43 44 class OuterClass 45 { 46 47 public Comparable getComparable() 48 { 49 // 常常使用一个方法,使其返回某个类或者接口的对象,而这个类或者接口在方法内部创建 50 class MyComparable implements Comparable 51 { 52 53 @Override 54 public int compareTo(Object o) 55 { 56 return 0; 57 } 58 } 59 return new MyComparable(); 60 } 61 62 public Comparable getComparable1() 63 { 64 // 返回匿名内部类的对象 65 66 return new Comparable() { 67 68 @Override 69 public int compareTo(Object o) 70 { 71 return 0; 72 } 73 }; 74 }
                    
                
                
            
        
浙公网安备 33010602011771号