本文将讲述有关内部类的知识点
内部类:在一个类的里面再定义一个类
public class Outer{
public class Inner{
···
}
}
需求:写一个JavaBean类描述汽车
属性:汽车品牌、颜色,发动机品牌、使用年限
这时候我们定义成员属性的时候,除了carName、carColour,还有engineName、engineAge如果我们写一个Car类的话,后面两个属性就没办法定义在这个类中,只能重新写一个Engine类,但是由于发动机又是车的一部分,所以要把Engine类放到Car类中,这时候Engine类就是内部类了
public class Car{
String carName;
String carColour;
class Engine{
String engineName;
int engineAge;
}
}
外部类名.内部类名 对象名 = 外部类对象.内部类对象;
Outer.Inner oi = new Outer().new Inner();
out.this.变量名
public class Outer{
private int a = 10;
class Inner{
int a = 20;
System.out.println(Outer.this.a);
System.out.println(this.a);
System.out.println(a);
}
}
输出的结果为:10、20、30

外部类.内部类Outer.this外部类.内部类
外部类.内部类 变量 = new 外部类.内部类构造器;
调用非静态方法的格式:先创建对象,用对象调用
调用静态方法的格式:外部类名.内部类名.方法名()
class 外部类名 {
数据类型 变量名;
修饰符 返回值类型 方法名(参数列表) {
// …
class 内部类 {
// 成员变量
// 成员方法
}
}
}
下一篇文章中我们将介绍匿名内部类相关知识点,也是在编写程序时非常重要的一个知识