构造方法
构造方法有什么用?
构造方法可以对对象的属性进行初始化
构造方法的书写注意要点
1、构造方法名与类名相同
2、没有返回值类型
3、没有return
使用构造函数需要注意什么?
1、当没有定义新的有参数的构造函时,建立对象时系统会调用默认参数构造函数
2、当建立新的有参数构造函数时候,空参数构造函数无法使用
3、建立新的有参数构造函数后,需要写空参数构造函数,防止建立新的对象出错
构造方法的重载和有参数构造方法代码展示
public Person(){
name = "zhangsan";
age = 18;
}
public Person(String name,int age) {
//给类的成员变量进行赋值
this.name = name;
this.age = age;
}
static关键字
静态的特点?
1、可以被类名直接调用
2、随着类的加载而加载
3、优先于对象存在
4、被所有对象共享
静态变量的好处?
由于是被所有对象共享,节省空间
静态的应用场景?
比如饮水机,它是被所有人共享的,这就是静态的表现
静态变量和局部变量的区别?
1、调用方式
成员变量:对象调用
静态变量:类名、对象调用
2、生命周期
成员变量:随着对象的建立而建立
静态变量:随着类的加载而出现
3、内存中的位置
成员变量:堆
静态变量:方法区中的静态区
4、所属不同
成员变量:依赖对象存在,叫实例变量
静态变量:依赖类存在,叫类变量
一个类文件的书写格式
1、私有的成员变量
2、构造方法
3、set和get方法
4、成员函数
书写格式代码示范:
class Rect{
//私有成员变量
private int width; //宽
private int height; //高
//构造方法
public Rect() {
}
public Rect(int width,int height) {
this.width = width;
this.height = height;
}
//set和get方法
public void setWidth(int width) {
this.width = width;
}
public int getWidth() {
return this.width;
}
public void setHeight(int height) {
this.height = height;
}
public int getHeight() {
return height;
}
//成员函数
public int getGirth() {
return (this.height+this.width)*2;
}
public int getArea() {
return (this.height*this.width);
}
}
画出下列代码在内存中的实现图
代码:
public class Demo04静态变量 {
public static void main(String[] args) {
//不从内存角度看
SuperStar g1 = new SuperStar();
g1.name = "成龙";
SuperStar.country = "中国";
g1.sayhi();
SuperStar g2 = new SuperStar();
g2.name = "维兹卡利法";
SuperStar.country = "美国";
g2.sayhi();
}
}
class SuperStar{
String name;
static String country;
public void sayhi() {
System.out.println(name +"--"+country);
}
}
画图: