一.问题导航
1.类的五大成员 |
2.什么是内部类 |
3.什么时候用到内部类 |
4.内部类的特点 |
5.内部类的分类 |
6.获取成员内部类对象 |
二.初识内部类
1.类的五大成员
属性 |
方法 |
构造方法 |
代码块 |
内部类 |
2.什么是内部类
在一个类的里面,再定义一个类 |
3.什么时候用到内部类
B类表示的事物是A类的一部分,且B单独存在没有意义 |
4.内部类的特点
内部类表示的事务是外部类的一部分 |
内部类单独出现没有任何意义 |
内部类可以直接访问外部类的成员,包括私有 |
外部类要访问内部类成员,必须创建对象\ |
/**--------------------测试类---------------------
* 内部类
* 需求:写一个Javabean类描述汽车。
* 属性:汽车的品牌,车龄,颜色,发动机的品牌,使用年限
*/
package com.cn.inter;
public class Test {
public static void main(String[] args) {
Car c =new Car();
c.carBrand="奥迪";
c.carAge=1;
c.carColor="红色";
c.show();
}
}
//-------------Car类-----------------
package com.cn.inter;
public class Car {
String carBrand;
int carAge;
String carColor;
//方法里面有一个隐藏的this,当当前方法被调用的时候this才会有值
//虚拟机会把调用者的地址值赋值给这里的this
public void show(Car this)
{
Engine e=new Engine();
System.out.println(carBrand);//外部类使用自己的成员变量
//System.out.println(engineBrand);当外部类直接使用内部类的成员变量会报错
System.out.println(e.engineBrand);
}
public class Engine {
private String engineBrand;
private int useAge;
public void show() {
System.out.println(engineBrand);//内部类使用自己的成员变量
//内部类可以直接访问外部类的成员,包括私有
System.out.println(carBrand);//内部类使用外部类的成员变量
}
}
}
三.成员内部类
1.内部类的分类
成员内部类 | 写在成员位置,类中方法外,属于外部成员 修饰成员变量的都可以用来修饰成员内部类 |
静态内部类 | 用static关键字修饰的内部类 |
局部内部类(写在方法里) | |
匿名内部类(没有名字) |
2.获取成员内部类对象