JAVA基础:构造方法、静态变量

来源:互联网 发布:ipad版淘宝不支持横屏 编辑:程序博客网 时间:2024/06/05 09:18

构造方法


作用:对对象属性(成员变量)进行初始化;
写法:
1、构造方法的方法名与类名完全相同(大小写也完全相同)
2、不是返回属性型(没有void)
3、没有返回值(不能用return)
例题:

public static void main(String[] args) {    Pen pen = new Pen();    pen.color =  "红色";    pen.size = 10;    pen.sayhi();}

}
class Pen{
String color;
int size;
//无参数构造
public Pen(){
}
//有参构造
public Pen(String color,int size) {
//给类的成员变量赋值
this.color = color;
this.size = size;
}
public void sayhi(){
System.out.println(“颜色是:” + color + ” “+ “尺寸是:” + size);
}

}

正常打印: console:颜色是:红色 尺寸是:10


如果成员变量不给赋值就打印的情况:
public static void main(String[] args) {
Pen pen = new Pen();
pen.color = “红色”;
pen.size = 10;
pen.sayhi();

}

}
class Pen{
String color;
int size;
//无参数构造
public Pen(){
}
//有参构造
public Pen(String color,int size) {
//给类的成员变量赋值
this.color = color;
this.size = size;
}
public void sayhi(){
System.out.println(“颜色是:” + color + ” “+ “尺寸是:” + size);
}

}
成员变量不给赋值: console:颜色是:null 尺寸是:0

console:颜色是:null 尺寸是:0 null和0是系统无参数构造给的初始值

如果使用有参构造:

public static void main(String[] args) {    Pen pen = new Pen("红色",10);    pen.sayhi();}

}
class Pen{
String color;
int size;
//无参数构造
// public Pen(){
// }
//有参构造
public Pen(String color,int size) {
//给类的成员变量赋值
this.color = color;
this.size = size;
}
public void sayhi(){
System.out.println(“颜色是:” + color + ” “+ “尺寸是:” + size);
}

}
使用有参数构造: console: 颜色是:红色 尺寸是:10 可以赋予成员变量初始值


构造方法的注意事项
构造方法的注意事项
1、如果你没写任何构造方法 那么系统会给你提供一个无参数的构造方法
2、如果你写了有参数的构造方法 这是系统就不在为你提供免费的构造方法
3、如果你想写有参数的构造方法 建议你把无参数的构造方法也写上


静态变量
先看代码:
public class Demo04 {
public static void main(String[] args) {
Star g1 = new Star();
s1.name = “约翰列侬”;
Star.country = “英国”;
s1.sayhi();

    Star s2 = new Star();    s2.name = "吉米佩吉";    Star.country = "英国";    s2.sayhi();}

}

class Star{

String name;**static** String country;public void sayhi(){    System.out.println(name + "--" + country);}

}
打印结果 console : 约翰列侬–英国
吉米佩吉–英国

static 放在成员变量的前面 此成员变量就成为了类里面的静态变量,那么看一下静态变量的详细内容
静态变量
静态变量调用
1、可以使用对象去调用(但是不推荐)
2、静态变量用类名去调用
(静态变量不依赖对象 因为静态变量被加载的时候 对象还没有创建)

思考:静态变量的特点、好处、应用场景与成员变量的区别?
特点:1、随着类的加载而加载
2、创建优先于对象存在
3、是类的创建出来对象 共享的部分
4、可以使用类名去调用
好处:节省内存空间

应用场景:
例:公路与汽车
公路相当于静态变量,汽车是成员变量

静态变量与成员变量的区别

1、所属不同
成员变量:属于对象的 又叫对象变量(实例变量)
静态变量:属于类的 又叫类变量

2、内存中的存储位置不同
成员变量:存储在堆内存
静态变量:存储在方法区的静态区

3、加载到内存中的时机不同(声明周期不同)
成员变量:随着对象的创建而创建,随着对象的消失而消失
静态变量:随着类的加载而讯在

4、调用方法不同
成员变量:只能使用对象去调用
静态变量:可以用对象去调用 但是一般用类去调用

内存表现步骤
1、类加载到方法区
2、加载到方法区的同时 静态变量被加载到方法区的静态区
3、main函数入栈
4、创建在堆内存中 创建对象
5、把地址初值给main函数的对象保存
6、main函数出栈
7、程序结束

阅读全文
0 0
原创粉丝点击