JAVASE-------构造方法+static关键字+Math类+代码块

构造方法

构造方法

创建一个类的对象 使用关键字new 用构造方法来完成对类的实例化

作用:

​ 就是用来对类进行实例化的

格式:

​ 构造方法的方法名跟类名相同,没有返回值,连void都不写

当定义一个类之后,这个类中,默认就存在有空参的构造方法

一旦我们写了有参构造,那么默认空参构造就没了,如果还想借助空参构造创建对象,建议手动把空参构造写出来
在这里插入图片描述
在这里插入图片描述

static关键字

static

静态的

可以修饰成员变量和成员方法

修饰成员变量,此变量就为一个共享变量,就会被这个类的所有对象共享

特点
  • 随着类的加载而加载,比对象存在的早
  • static所修饰的成员是优先于对象存在的
  • 被类的所有对象共享
  • 被静态所修饰的成员,是属于类的,建议使用类名直接调用,可以使用对象名来调用,但是不推荐
  • 静态变量也称为类变量
静态变量

静态变量通过类名直接调用,不需要new对象再去通过对象名调用

当修饰一个方法时,该方法就成了静态方法

静态方法

在静态方法里,不能调用非静态方法

在静态方法里,调用不到非静态成员

静态方法只能访问静态所修饰的成员,不能访问非静态成员

非静态方法中,既可以访问非静态的成员,也可以访问静态成员

在静态方法中,不能存在this关键字 this代表的是该类的对象,对象是后有的

静态变量与成员变量

所属不同

  • 静态变量属于类,所以也称为类变量
  • 成员变量属于对象,所以也称为实例变量(对象变量)
    内存中位置不同
  • 静态变量存储于方法区的静态区
  • 成员变量存储于堆内存
    内存出现时间不同
  • 静态变量随着类的加载而加载,随着类的消失而消失
  • 成员变量随着对象的创建而存在,随着对象的消失而消失
    调用不同
  • 静态变量可以通过类名调用,也可以通过对象调用,推荐使用类名调用
  • 成员变量只能通过对象名调用

Math类

该类包含用于类包含用于执行基本数学运算的方法

特点

​ 由于Math类在java.lang包下,所以不需要导包。
​ 没有构造方法,因为它的成员全部是静态的。

生成随机数

生成10个0-1之类的随机数
在这里插入图片描述

代码块

代码块

代码块就是被一对大括号{}括起来代码

分类

总共有4种:

​ 局部代码块 构造代码块 静态代码块 同步代码块

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

​ 构造代码块 :
​ 在类中方法外出现;多个构造方法方法中相同的代码存放到一起,每次调用构造都执行,并且在构造方法前执行
​ 静态代码块 :
​ 在类中方法外出现,加了static修饰
​ 在类中方法外出现,并加上static修饰;用于给类进行初始化,在加载的时候就执行,并且只执行一次。

局部代码块:
在这里插入图片描述

构造代码块:
在这里插入图片描述

静态代码块图:
在这里插入图片描述

执行顺序

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

演示:
在这里插入图片描述