构造方法
作用: 对 对象的属性(成员变量)进行初始化
写法:
1.构造方法的方法名与类名完全相同
2.没有返回值类型(连void都不写)
3.没有返回值
注意事项:
1.没写构造方法
系统则会提供一个无参的构造方法
2.写了有参的构造方法
系统不会提供无参的构造方法
所以在 写有参的构造方法时 最好把无参的也写上
Car c1 = new Car("奥迪",4);修改这个代码属性是不能在下一行直接写上c1 = new Car("奔驰",4);这个代码的 这样无异于谋杀上一行代码 并且浪费内存空间
我们可以这样c1.name = "奔驰";
c1.num = 4;通过赋值的操作来解决
这样修改 相对于上面的方法 更加灵活 更加节省空间
我们创建一个圆形的类 并且计算它的周长 和面积
class Circular{
private int radius; //半径
}
public Circular(int radius){
this.radius = radius;
}
public int getRadius(){
return this.radius;
}
public int setRadius(){
return this.radius;
}
public double getLength(){
return this.2 * π * radius;
}
public double getArea(){
return (this.π*radius)^2;
}
可以看到这里我在半径int radius的前面加上了private
private其实就是把构造方法私有化
也可以看到在Radius前面加上了get和set
get其实是获取的意思
set是修改
静态变量
静态变量的调用:
1:静态对象时刻使用对象去调用的(不推荐)
2:用类名去调用
public static void main(String[] args) {
Star g1 = new Star();
g1.name = "张国荣";
g1.country = "中国";
g1.sayHi();
Star g2 = new Star();
g2.name = "成龙";
g2.country = "中国";
g2.sayHi();
}
}
class Star{
String name; //姓名
String country; //国籍
public void sayHi() {
System.out.println(name + "--" + country);
}
用一张图片具体表达一下

内存表现步骤
1.类加载到方法区
2.加载到方法区的同时 静态变量被加载到方法区的静态区
3.main入栈
4.在堆内存中创建 对象
5.把地址赋值给main函数的 对象保存
6.main函数出栈
7.程序结束
静态变量与成员变量的区别:
1.所属不同:
成员变量: 属于对象的 又叫对象变量(实例变量)
静态变量:属于类 又叫类变量
2.内存中的存储位置:
成员变量: 存储在堆内存
静态变量: 存处在方法区的静态区
3.加载到内存中的时机(生命周期的不同):
成员变量: 随着对象的创建而创建
静态变量: 随着类的加载而存在
4.调用方法不同
成员变量: 只能使用对象去调用
静态变量: 可以用对象去调用 一般用类名去调用
静态方法
静态方法也叫类方法
在成员方法中 可以使用 成员变量和静态变量
静态成员方法中 不能使用成员变量 只能使用静态变量
简单点就是静态方法只能用静态变量
有关java静态代码块和构造方法相关文章可以阅读上海尚学堂《判断java静态代码块和构造方法的执行顺序》