20180707_05_Java中面向对象(2)代码块,继承,随机数,static关键字

代码块: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。

猜你喜欢

转载自blog.csdn.net/Lisiluan/article/details/81177471