java面向对象
2020-06-07 本文已影响0人
极速魔法
文章内容输出来源:拉勾教育0基础java训练营2期
类名由多个单词组成,每个单词首字母大写
可变长参数
格式 如 int… args
, 位置在参数列表末尾,最多声明一个
args.length // 可变长参数的长度
args[i] // 取第 i 个可变长参数
方法的调用分配内存空间,栈帧。存储方法的参数,局部变量等。
方法重载,与参数的顺序,类型,个数相关,返回类型无关。
this当前正在调用的对象
this(args),传入其他构造方法的参数,调用构造方法,写在构造方法第一行
构造块和静态代码块
构造块 { }
,构造方法之前执行,成员变量的初始化。
静态代码块static { }
,随着类的加载执行一次,早于构造块执行。
子类继承父类后的执行顺序
构造子类对象必须先构造父类对象,
- 执行时先加载到方法区,此时先执行父类的静态代码块,再执行子类的静态代码块 //类的加载
- 先执行父类的构造块,然后执行父类的构造方法体 // 构造父类对象
- 执行子类的构造块,然后执行子类的构造方法体 // 构造子类对象
继承
子类实例化会自动调用父类的无参数构造方法,初始化父类的成员变量。相当于调用super(),写在第一行。
重写 返回值可以返回父类或者子类型 ,返回权限相同或者变大,继承看做子类对父类的扩展
权限修饰符
默认 本类和同一个包中的类可以访问,访问范围
- 本类,
- 同一个包中的类,
- 子类,
- 其他类
final
final修饰的类无法被继承,修饰的方法无法重写
abstract
抽象类无法实例化,是抽象方法没有方法体,需要继承抽象类重写抽象方法,
static修饰的静态方法无法被重写,private修饰方法表示私有无法重写,final方法无法重写。
抽象方法 因此无法用 private,static,final修饰
抽象类和接口都可以有/static 方法/
内部类
获取外部类实例,外部类.this
静态内部类不能访问外部非静态成员,此时类加载完成对象还未实例化。
局部内部类只有class,没有修饰符。参考局部变量
局部内部类变量使用 外部方法的局部变量必须是 final。部内部类会拷贝一份外部方法的局部变量使用,不允许外部方法的局部变量改变。
枚举
枚举实现接口 可以重写一次接口方法,也可以重写多次