* 类的第5个成员:内部类
* 1.相当于说,我们可以在类的内部再定义类。外面的类:外部类。里面定义的类:内部类
* 2.内部类的分类:成员内部类(声明在类内部且方法外的)
vs 局部内部类(声明在类的方法里)
* 3.成员内部类:
*
3.1是外部类的一个成员:①可以有修饰符(4个)②static final
③可以调用外部类的属性、方法
*
*
3.2具体类的特点:①abstract ②还可以在其内部定义属性、方法、构造器
*
* 4.局部内部类:
*
* 5.关于内部类,大家掌握三点:
*
①如何创建成员内部类的对象(如:创建Bird类和Dog类的对象)
*
②如何区分调用外部类、内部类的变量(尤其是变量重名时)
* ③局部内部类的使用
(见TestInnerClass1.java)
*
1 public class TestInnerClass { 2 public static void main(String[] args) { 3 //创建静态内部类的对象:可以直接通过外部类调用静态内部类的构造器 4 Person.Dog d = new Person.Dog();//Person.new Dog(); 5 //Person.Bird b = new Person.Bird(); 6 //创建非静态的内部类的对象:必须先创建外部类的对象,通过外部类的对象调用内部类的构造器 7 Person p = new Person(); 8 Person.Bird b = p.new Bird();//new p.Bird(); 9 b.info(); 10 b.setName("杜鹃"); 11 } 12 } 13 14 class Person{ 15 String name = "韩梅梅"; 16 int age; 17 //成员内部类(非static的) 18 class Bird{ 19 String name = "黄鹂"; 20 int id; 21 22 public Bird(){ 23 24 } 25 public void setName(String name){ 26 System.out.println(name);//杜鹃 27 System.out.println(this.name);//黄鹂 28 System.out.println(Person.this.name);//韩梅梅 29 } 30 public void info(){ 31 show(); 32 } 33 } 34 //成员内部类(静态内部类) 35 static class Dog{ 36 37 } 38 39 public void show(){ 40 System.out.println("我是show()方法"); 41 } 42 43 public void method1(){ 44 class A{ 45 46 } 47 } 48 }
时间: 2024-12-07 02:37:28