代码块:在Java中用{}括起来的内容.
局部代码块:在类的局部位置
作用:限定当前变量的声明周期
构造代码块:在类的成员位置
特点:每次在执行构造方法之前,如果当前类中有构造代码块,优先执行构造代码块,然后在执行构造方法!
作用:可以多个构造方法中共性代码可以放到构造代码中,对象初始化
静态代码块:在类的成员位置:
特点:只执行依次,被static修饰的,都和类有关系!
关于构造代码块,静态代码块,构造方法之间的优先级?
静态代码块>构造代码块>构造方法
继承:
将多个类的共性内容抽取到一个独立的类中,让这个多个类和当前这个类产生一种关系,继承关系
格式:class 子类名 extends 父类名{}
继承的好处:
1)可以提高代码的复用性
2)便于维护和管理
3)产生的继承关系是多态的前提!
继承的特点:
1)类和类之间的关系
2)在Java中只支持单继承,不支持多继承
3)但是可以多层继承!
继承中的注意事项:
1)子类继承父类,不能直接继承被private修饰的成员
2) 子类继承父类,不能继承父类的构造方法,但是可以通过super关键字间接的访问
3) 子类继承父类,子类的构造方法(有参/无参的)都默认访问父类的无参构造方法.
4) 如果父类的无参构造方法没有给出,子类的构造方法会报错?如何解决?
A:手动给出父类的无参构造
B:间接的通过super(…)访问父类的有参构造
C:通过this():访问本类中的无参构造方法,在通过本类无参构造方法里面第一个语句super(…),访问父类的有参构造…
super(代表父类的对象)和this(代表当前类对象)的应用场景:
super.成员变量 父类的成员变量
this.成员变量 当前类的成员变量
构造方法:有参/无参
this():访问本类的无参构造方法
super():访问父类的无参构造方法
成员方法
this.成员方法;
super.成员方法;
继承:当A类是B类的一种,能体现出是一种”is a”的关系,使用继承!
不能为了部分功能而去使用继承!
关于继承中成员变量的访问特点:
子类继承父类成员变量名称不一致: 分别输出;
子类继承父类成员变量名称一致: 首先,在子类的局部位置中找,有就输出;没有,在子类的成员位置找,有就输出;还没有,直接在父类的成员位置中,有就输出,如果没有,就报错了!
static关键字:静态的,共享的意思
针对这种多个对象使用的同一个成员变量,这个时候提供一个关键字:static
static的特点:随着类的加载而加载(static跟类有关系)
1)被static修身的变量/方法,它都是优先于对象存在
2)static可以被多个对象共享
3)被static修身的变量/方法,可以类名直接调用
static关键字的注意:
1)在静态方法中,是没有this关键字被静态修饰的是随着类的加载而加载,this随着对象的创建而存在,静态优先于对象存在!被静态修饰的内容一般称为:类成员
2)访问的问题
在静态方法中:
针对成员变量:只能访问静态的成员变量
针对成员方法:只能访问静态的成员方法
在非静态方法中:
成员变量:既可以访问静态成员变量,也可以访问
非静态的成员变量:
成员方法:既可以访问静态的成员方法,也可以访问非静态的成员方法
随机数的获取:math类的randon()方法,不用导包。只要是java.lang包下的类是不需要导包的
格式:public static double random()
返回带正号的 double 值,该值大于等于 0.0 且小于 1.0。