面向对象
构造方法概述和作用
* 给对象的数据(属性)进行初始化。
构造方法格式特点
* 方法名与类名相同(大小也要与类名一致)。
没有返回值类型,连void 都没有。
没有具体的返回值return。
构造方法快捷键:
alt + shift + s +c 生产空参构造
alt + shift + s +o 生产有参构造
alt + shift + s +r 生产set和get方法
重载:
相同,与返回值类型无关(构造方法没有返回值),只看传参数列表。
注意事项:
没有给出构造方法,系统将自动提供一个无参数构造方法。
给出了构造方法,系统将不再提供一个无参数构造方法。(建议永远自己给出无参构造方法)
不能用对象调用
创建一个对象的步骤:
1.构造class加载进内存。
2.声明一个该类型的引用
3.在堆内创建对象
4.给对象中属性默认初始化值
5.属性进行显示初始化(如果没有这步,直接进行第六步)
6.构造方法进栈,对对象中的属性赋值,构造方法弹栈
7.将对象的地址值赋值给引用
面向对象(static关键字)
特点:
1.随着类的加载而加载。
优先于对象存在。
3.被类的所有对象共享。
4.可以通过类名调用
注意事项:
没有this关键字的。
* 静态是随着类的加载而加载,this是随着对象的创建而存在。
* 静态比对象先存在。
2.静态只能访问静态。
静态变量跟成员变量的区别:
* 静态变量也叫类变量,成员变量也叫对象变量。
1.所属不同
* 静态变量属于类,所以也称为类变量。
* 成员变量是属于对象,所以也成为实例变量( 对象变量)。
2.内存中位置不同
* 静态变量存储于方法区的静态区。
* 成员变量存储于堆内存。
3.内存出现时间不同
* 静态变量随着类的加载而加载,随着类的消失而消失。
* 成员变量随着对象的创建而存在,随着对象的消失而消失。
4.调用不同
* 静态变量可以通过类名调用,也可以通过对象调用。
* 成员变量只能通过对象名调用。
如果一个类的所有方法都是静态的,需要再多做一步,私有构造方法,
目的是不让其他类创建本类对象。
直接用类名 . 调用即可
Math类的随机数功能:
Math.random()会生产大于等于0.0并且小于1.0的伪随机数