Java基础创作日记 Day03
时间:2021年2月5日下午 晴
这几天决定看书来复习Java,瞌睡
作用:
可以用于实现接口、实现多继承(即一个类中写多个内部类,每个内部类继承一个其他的类)
在java中可以以在类中再定义类,被定义在类内部的类被称为内部类,内部类所在的类称为外部类。
根据内部类的位置、修饰符和定义的方式可以把内部类分为:1.成员内部类2.静态内部类3.方法内部类
成员内部类
不加static修饰符,同时不在类的方法中定义的内部类被称为成员内部类
成员内部类的特点:
- 在外部类中或者在外部类外要想访问成员内部类的成员,则需要通过外部类创建内部类的对象,然后通过这个实例化对象进行访问
但是内部类设置为私有的成员还是无法直接调用
通过外部类创建内部类对象的方法:外部类名.内部类名 变量名=new 外部类名().new 内部类名();
- 成员内部类可以直接访问外部类的成员
- 成员内部类中不能定义静态成员
成功报错
静态内部类
用static修饰的成员内部类
他的特点:
- 在静态内部类中,只能访问外部类的静态成员
访问非静态成员:红色的Age,报错了
可以访问静态成员: - 与成员类不同的是,静态内部类可以定义静态成员
- 创建实例对象的方法和成员内部类不太一样
外部类名.静态内部类名 变量名=new 外部类名.静态内部类名();
这个少了一个括号 - 静态内部类在外部使用方法和普通的内部类一样
方法内部类
方法内部类就是定义在外部类方法中的内部类
特点:
- 不能定义静态的方法内部类
- 方法内部类只能在当前方法中使用
使用方法:
在其所在的方法中定义内部类成功,然后再在这个方法中创建实例对象,然后调用
在其中创建其实例对象的语法:内部类名 变量名=new 内部类名();
- 方法内部类可以访问外部类的成员