Math、代码块、继承

Math

public static double random() {
    return RandomNumberGeneratorHolder.randomNumberGenerator.nextDouble();
} // 取值范围[0,1)

若要取值[1,10]: (int)(Math.random() * 10 )+ 1

代码块

        使用{}括起来的代码,可分为 局部代码块,构造代码块,静态代码块,同步代码块

        局部代码块: 在方法中;限定变量生命周期,及早释放,提高内存利用率

        构造代码块: 在类中方法外;多个构造方法中相同的代码存放到一起,每次调用构造都执行,并且在构造方法前执行

        静态代码块: 在类中方法外,加static修饰;给类进行初始化,在加载的时候就执行,并且只执行一次

面试题? 静态代码块 构造代码块 构造方法的执行顺序?

                 静态代码块>构造代码块>构造方法

ba11419bb08b70d59533e49e23ab3a4e8af.jpg

 

继承

    继承是类与类之间的关系,让子类自动具备定义在父类中的属性和行为,从而达到代码复用的目的 

 格式: 通过extends关键字可以实现类与类的继承,class 子类名 extends 父类名

    extends: 单继承有且只有一个父类; 不写extends,也会有一个默认的父类(Object, java中的根类)

        这个类被称为父类,基类或者超类;这多个类可以称为子类或者派生类

类与类的关系:  is a 继承; has a 组合

继承的内存实现:  首先调用父类的构造方法,然后再调用子类的构造方法,构成一个完整的对象

    特点: 1 来自父类的属性和行为,都会无条件的继承,但是,能否访问到,是看父类中定义的修饰符

                2 父类的构造方法不会被子类继承

                原因: 2.1 语法上,构造方法要求与类名保持一致,所以一个子类不可能有一个构造方法的名字是父类的类名

                        2.2 逻辑上,构造方法是用来产生对象的,子类不可能拥有产生父类对象的方法

            3 只能单继承,但是支持多层继承

继承的优点: 结构清晰;缺点: 子类的丰富度不够,灵活性不够,所以Java中可以使用接口类,进行弥补

    

    0c54d2817506487b2e4798bf2679e7d78c9.jpg

继承中成员方法的关系

    子类拥有父类相同的行为,被称为方法覆盖,方法重写

        特点: 1 方法名不能变 2 参数列表相同 3 返回类型相同 4 访问修饰符不能比父类的低

        5 重写后的方法不能抛出比重写前更多的异常

 

转载于:https://my.oschina.net/u/2954646/blog/3073084

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值