Day10
一、内部类
- 内部类:类里面嵌套一个类==>类似于身体与心脏
内部类的语法:
public class 外部类名{ public class 内部类名{ 类内语句 } }
- 特点:
1.内部类可以获取外部类的属性与方法(包括私有的)
2.外部类获取不到内部类的属性与方法
(1)公有的内部类:
获取内部类的语法是:外部类名 . 内部类 对象的名称 = new 外部类(). new内部类()
(2)私有的内部类:内部类只能本类访问,外部类和其他类都访问不了
注意:变量重名的情况,如果外部类的变量与内部类的变量重名
- 访问外部类的变量的语法: 类名.this.变量名
3.静态内部类:加上静态关键字static,一般会去掉访问修饰符
静态内部类的语法:外部类.内部类 对象名 = new 外部类.内部类()
4.方法内部类
- 语法:访问修饰符 返回值 方法名称(参数列表){ class 类名{ } }
注意点:
- 不能有访问修饰符
- 生命周期随着方法的开始而开始,结束而结束
- 在方法里的内部类的方法,不能直接调用,但是可以间接调用,在外部类的方法里实例化这个对象(内部类),然后调用其方法(内部类)
5.匿名内部类:(no name)一般是在继承或实现的基础上建立匿名内部类
- 匿名内部类的语法:new 抽象类或接口 { //必须实现的方法 }
二、访问修饰符
- public > protected > 默认 > private
- 在开发里,如果想对外提供使用的定义public,只想本类自己使用的定义private
三、总结
今天总结了昨天所学的内容,包含着
1.抽象:
抽象类: 必须使用这个关键abstract 不能够被实例化
抽象方法: (1) 必须使用这个关键abstract;(2) 没有方法体 抽象方法必须都在抽象类里
抽象类: 一般是父类, 有些具体的功能是抽象的概念
2.多态: 一种事物多钟形态(对象的多态性)
(1)必须在继承里;(2)一般有重写
3.(1)多态中访问变量: (编译看左边,运行看左边)
(2)多态中访问方法:(编译看左边,运行看右边)
(3)向上转型: 父类名称 对象名= new 子类名称 (自动类型转换)
(4)解析: 父类的引用 执行 子类的具体对象
(5)弊端: 不能够访问到子类独有的方法
(6)产生一个错误 : 类转换类型 instanceof (避免)
(7)向下转型: 子类名称 子类对象=(子类名称)向上转型的对象名
(8)多态的两种体现形式:以父类作为参数;以父类作为返回值
3.接口(关键字interface)
(1)定义接口的语法: 访问修饰符 interface 接口名称{ }
// 接口里都是抽象方法 ,不能有普通方法.
(2)实现接口的语法 : implements Pager,Link (implements 接口1,接口2)
(3)接口里没有变量, 都是常量
(4)接口里的方法都是抽象方法
(5)接口里没有构造方法
4.注意点
(1)类与类 之间关系:可以单继承 , 不可以多继承
(2)类与接口的关系: 可以实现多个接口
(3)接口与接口 关系: 可以单继承 , 不可以多继承
(4)抽象类 与接口的关系 抽象类:是最原始的状态 接口: 就是定义了一些约束。
(5)实现与继承可以混合使用
另外,今天还完成了一个小项目,汽车租赁系统的代码构造,让我们充分地理解了java的三大特性:封装、继承、多态