1. 题目描述
定义一个Father和Child类,并进行测试.
要求如下:
1)Father类为外部类,类中定义一个私有的String类型的属性name,name的值为“zhangjun”。
2)Child类为Father类的内部类,其中定义一个introFather()方法,方法中调用Father类的name属性。
3)定义一个测试类Test,在Test类的main()方法中,创建Child对象,并调用introFather ()方法。
2. 考点如下
2.1 内部类的简单定义
在类里面定义的类称为内部类,内部类是外部类的一个成员。
2.2 内部类与外部类的关系
内部类可以直接访问外部类的元素(包括私有域),但是外部类不能直接访问内部的元素。
2.3 创建内部类
在这里给大家写一下两种内部类的创建方式:
a. 在外部类外部创建内部类语法
外部类.内部类 内部类对象 = new 外部类().new 内部类();
举例:
Outter.Inner in = new Outter().new Inner();
b. 在外部类内部创建内部类语法
在外部类内部创建内部类,就像普通对象一样直接创建
Inner in = new Inner();
3. 题目解答
本道题主要是在外部类的外部创建内部类,所以使用第一种方法创建内部类。
class Father{
private String name = "zhangjun";
// 内部类
class Child{
public void introFather(){
System.out.println(name); // 调用Father类的name属性
}
}
}
public class Test{
public static void main(String[] args){
Father.Child child = new Father().new Child();
child.introFather();
}
}
运行结果如下: