Day 2
学习笔记:
一、对象
对象创建格式:
类名 对象名=new 类名 () ;
二、静态对象
可被所有对象共享
使用static关键字修饰成员变量
(static只能用于修饰成员变量,不能用于修饰局部变量)
可以直接使用“类名.变量名”调用
三、静态方法
不创建对象就能直接调用
方法定义时加static关键字
可以直接使用“类名.方法名”调用
静态方法中只能访问static修饰的成员
四、静态代码块
static{
//代码
}
静态代码块只会执行一次
通常使用静态代码块对类的成员变量初始化
五、继承
1.继承的概念
使用extends关键字
若没有使用extends,默认继承Object类,Object类是所有类的父类
类只支持单继承,不允许多继承,一个类只能有一个直接父类
多个类可以继承一个父类
允许多层继承
2.重写父类方法
子类重写父类方法时,不可以使用比父类中被重写的方法更严格的访问权限
3.super关键字
super关键字用于访问父类的成员变量、成员方法和构造方法
super.成员变量
super.成员方法([参数1,参数2…])
super([参数1,参数2…]) //访问构造方法
4.final关键字
final修饰的类不能被继承
final修饰的方法不能被子类重写
final修饰的变量(成员变量和局部变量)是常量,并且只能赋值一次
六、抽象类
abstract关键字
抽象类不可以被实例化
七、接口
特殊的类,只存在常量和抽象方法,不存在变量的定义和方法实现
interface关键字
所有方法都必须是抽象的
需定义一个类,使用implements关键字实现接口中所有的方法
(一个类实现一个接口,必须实现接口中所有的方法,如果不能实现某个方法,则必须写一个空实现的方法
)
接口的特性归纳:
接口的访问限定只有public和默认
interface是声明接口的关键字,与class类似
允许接口的多重继承,通过“extends父接口名”的形式可以继承多个接口,接口之间用逗号(,)隔开
在接口中定义的常量,系统默认为是 public static final 修饰的,不需要指定
在接口中声明的方法,系统默认为是 public abstract 修饰的
接口中的方法都是抽象的,不能实例化对象
八、多态
1.对象的类型转换
“向上转型”,将子类对象当作父类类型使用(此时不需要任何显式转换,但此时不能通过父类变量调用子类中的特有方法)
instanceof关键字可以判断一个对象是否为某个类(或接口)的实例或者子类实例,语法格式如下:
对象(或者对象引用变量) instanceof 类(或接口)
2.匿名内部类
格式:
new 父类(参数列表)或 父接口(){
//匿名内部类实现部分
}
九、异常
1.异常捕获
try{
//程序代码块
}catch(异常类型(Exception类或其子类)变量名){
//对异常的处理
}finally{
//无论是否发生异常,都执行
}
2.抛出异常
抛出异常使用throws关键字对外声明该方法有可能发生的异常,若可能发生该异常,则编译失败
格式:
修饰符 返回值类型 方法名([参数1,参数2…])throws ExcepctionType1[,ExceptionType2…]{
}
十、访问控制
四种访问级别:
private(类访问级别)
default(包访问级别)
protected(子类访问级别)
public(公共访问级别)
2020.9.21