java面向对象

2020-06-07  本文已影响0人  极速魔法

文章内容输出来源:拉勾教育0基础java训练营2期

类名由多个单词组成,每个单词首字母大写

可变长参数

格式 如 int… args, 位置在参数列表末尾,最多声明一个

args.length // 可变长参数的长度
args[i] // 取第 i 个可变长参数

方法的调用分配内存空间,栈帧。存储方法的参数,局部变量等。

方法重载,与参数的顺序,类型,个数相关,返回类型无关。

this当前正在调用的对象

this(args),传入其他构造方法的参数,调用构造方法,写在构造方法第一行

构造块和静态代码块

构造块 { },构造方法之前执行,成员变量的初始化。

静态代码块static { },随着类的加载执行一次,早于构造块执行。

子类继承父类后的执行顺序

构造子类对象必须先构造父类对象,

  1. 执行时先加载到方法区,此时先执行父类的静态代码块,再执行子类的静态代码块 //类的加载
  2. 先执行父类的构造块,然后执行父类的构造方法体 // 构造父类对象
  3. 执行子类的构造块,然后执行子类的构造方法体 // 构造子类对象

继承

子类实例化会自动调用父类的无参数构造方法,初始化父类的成员变量。相当于调用super(),写在第一行。

重写 返回值可以返回父类或者子类型 ,返回权限相同或者变大,继承看做子类对父类的扩展

权限修饰符

默认 本类和同一个包中的类可以访问,访问范围

final

final修饰的类无法被继承,修饰的方法无法重写

abstract

抽象类无法实例化,是抽象方法没有方法体,需要继承抽象类重写抽象方法,
static修饰的静态方法无法被重写,private修饰方法表示私有无法重写,final方法无法重写。
抽象方法 因此无法用 private,static,final修饰

抽象类和接口都可以有/static 方法/

内部类

获取外部类实例,外部类.this
静态内部类不能访问外部非静态成员,此时类加载完成对象还未实例化。
局部内部类只有class,没有修饰符。参考局部变量
局部内部类变量使用 外部方法的局部变量必须是 final。部内部类会拷贝一份外部方法的局部变量使用,不允许外部方法的局部变量改变。

枚举

枚举实现接口 可以重写一次接口方法,也可以重写多次

上一篇下一篇

猜你喜欢

热点阅读