构造的方法作用: 用来创建对象,并初始化属性值
构造方法的特点:
1没有返回值类型 ,连void都没有
2,方法明和类名一致
注意
1.系统会默认创建一个无参的构造方法
2.如果自定义一个构造方法,系统自带的构造方法没有了
3.构造方法在整个生命周期中只会被调用一次
方法的重载(overload)
1.重载的方法要在同一类中
2.方法名相同
3.参数不相同
this 是当前对象,我们通过this来区分同名的全局变量和局部变量, 加this是全局变量,不加this的是局部变量
静态成员属于类
静态-类-对象-方法
静态属性属于本类所有对象
静态变量发在内存的类中。
全局变量放在内存的堆里与对象相关
局部变量放在在内存的栈里
静态方法不能出现this和super
静态代码块不能调用全局变量和方法
static可以修饰属性,方法,代码块。
实例方法可以同时出现this和super也不要求是第一行
final 常量,不能再次赋值,必须在声明的时候赋值,名称一般由大写字母组成
继承 inheritance 基类(父类) 派生类(子类)
继承的好处复用和扩展
子类调用父类的方法使用super,一个子类只能继承一个父类使用extends进行继承
super代表父类的对象,如果写必须写在子类构造方法第一行,不能访问私有成员
同一个构造方法不能同时出现this和super
子类不能继承父类私有的成员,子类与父类不同包不能继承,默认修饰符的成员也不能继承构造方法
Object类是所有类的祖先都直接或间接继承Object类
super关键字必须出现在子类(子类的方法和构造方法)中,而不允许在其他位置
使用super关键字可以访问父类的成员(属性、方法、构造方法)
注意访问权限的限制,如无法通过super访问private成员
重写的注意事项:
必须有继承关系
重写方法时方法名、参数列表必须相同,返回值相同或为该类型的子类,访问权限必须大于或等于父类的权限
不能继承的成员无法进行重写
执行顺序为先父类后子类,类里的顺序为先属性后方法
多态
多态的三要素:
拥有继承关系
重写了父类的方法
父类作为形参或返回值类型
多态的类型
子类到父类的转换:自动转换 无法调用子类特有的方法
父类到子类的转换:强制类型转换 将父类转换为某个子类后才能调用子类的特定方法,不是转换为真实的子类类型会出现转换异常
多态的优势:
可替换性,可扩充性,接口性,灵活性,简化性
instanceof运算符用来判断一个对象是否属于一个类或接口,返回boolean类型的值多用于if判断前提必须具有继承关系,否则会编译错误
抽象类:没有具体实例意义的类
1.抽象类无法实例化。不能new
2.抽象类中可以有抽象方法。(可有可无)
3.子类必须实现(重写)抽象方法,除非子类为抽象类
抽象方法:
1.没有方法体加abstract的方法,就是抽象方法。
2.抽象方法只能存在于抽象类中。
final:最终的
1.修饰类,类不能被继承
2.修饰方法,方法不能被重写
3.修饰属性,属性不能被重新赋值
对于复杂数据类型而言:地址不能更改,地址内的内容可以修改
static和abstract不能同时使用,static需要实现该方法而abstract没有方法体无法实现
abstract必须被子类重写而private不能被继承便不能被重写二者冲突不能同时使用
abstract必须要被子类重写而final修饰的方法不能被重写二者冲突不能同时使用
接口:接口是一个特殊的抽象类
1.接口中的属性,都是公共的静态常量(public static fianl)。可以省略,但写出来需要写全。
2.接口中的方法,在jdk1.8之后。接口中有三种方法:静态方法、默认方法、抽象方法
静态方法:通过类名调用,不能被重写
默认方法:通过对象调用,可以被重写。
抽象方法:通过对象调用,必须被实现(重写)。
3.没有构造方法。
4.接口之间可以多继承。
5.普通类只能单继承,多实现。
异常:
处理异常的三部分:tyr catch finally 必需要有try 但不能只有tyr
try:可能会出现异常
catch:捕获异常 出现异常会执行并匹配执行
finally:一定会执行,不管是否有异常出现
多重catch:
可以对异常进行异常处理
只有一个catch会被执行
必须把Exception放到最后
异常分为严重异常和非严重异常
严重异常:err 程序没办法自己解决
非严重异常:run异常 可以不进行异常处理
必须进行异常处理:checked异常
throws声明异常但不处理
调用该方法需要解决异常或继续甩锅
throw创建一个异常()里面进行异常的描述
必须要进行异常的处理
集合框架:
Collection和Map集合都继承了iterator接口
只有实现了Iterator的集合框架才能使用for-each循环进行遍历
Collection单列集合
Map集合存储一组键值对象,提供key到value的映射
Collection接口存储一组不唯一,无序的对象
List是Collection的子接口存储一组不唯一,有序对象
Set是Collection的子接口存储一组唯一,无序的对象
ArrayList在内存中是连续的所以便利元素和随机访问的效率高
LinkedList是双向链表式储存所以插入和删除元素效率高