JAVASE-------构造方法+static关键字+Math类+代码块
构造方法
构造方法
创建一个类的对象 使用关键字new 用构造方法来完成对类的实例化
作用:
就是用来对类进行实例化的
格式:
构造方法的方法名跟类名相同,没有返回值,连void都不写
当定义一个类之后,这个类中,默认就存在有空参的构造方法
一旦我们写了有参构造,那么默认空参构造就没了,如果还想借助空参构造创建对象,建议手动把空参构造写出来
static关键字
static
静态的
可以修饰成员变量和成员方法
修饰成员变量,此变量就为一个共享变量,就会被这个类的所有对象共享
特点
- 随着类的加载而加载,比对象存在的早
- static所修饰的成员是优先于对象存在的
- 被类的所有对象共享
- 被静态所修饰的成员,是属于类的,建议使用类名直接调用,可以使用对象名来调用,但是不推荐
- 静态变量也称为类变量
静态变量
静态变量通过类名直接调用,不需要new对象再去通过对象名调用
当修饰一个方法时,该方法就成了静态方法
静态方法
在静态方法里,不能调用非静态方法
在静态方法里,调用不到非静态成员
静态方法只能访问静态所修饰的成员,不能访问非静态成员
非静态方法中,既可以访问非静态的成员,也可以访问静态成员
在静态方法中,不能存在this关键字 this代表的是该类的对象,对象是后有的
静态变量与成员变量
所属不同
- 静态变量属于类,所以也称为类变量
- 成员变量属于对象,所以也称为实例变量(对象变量)
内存中位置不同 - 静态变量存储于方法区的静态区
- 成员变量存储于堆内存
内存出现时间不同 - 静态变量随着类的加载而加载,随着类的消失而消失
- 成员变量随着对象的创建而存在,随着对象的消失而消失
调用不同 - 静态变量可以通过类名调用,也可以通过对象调用,推荐使用类名调用
- 成员变量只能通过对象名调用
Math类
该类包含用于类包含用于执行基本数学运算的方法
特点
由于Math类在java.lang包下,所以不需要导包。
没有构造方法,因为它的成员全部是静态的。
生成随机数
生成10个0-1之类的随机数
代码块
代码块
代码块就是被一对大括号{}括起来代码
分类
总共有4种:
局部代码块 构造代码块 静态代码块 同步代码块
局部代码块 :
在方法中出现;限定变量生命周期,及早释放,提高内存利用率
构造代码块 :
在类中方法外出现;多个构造方法方法中相同的代码存放到一起,每次调用构造都执行,并且在构造方法前执行
静态代码块 :
在类中方法外出现,加了static修饰
在类中方法外出现,并加上static修饰;用于给类进行初始化,在加载的时候就执行,并且只执行一次。
局部代码块:
构造代码块:
静态代码块图:
执行顺序
静态代码块>构造代码块>构造方法
演示: