今天了解了一下static这个关键字,它是用来修饰静态变量的,其值是可以改变的。
static变量又被称为静态变量,是属于类的存在于方法区中,只有一份,存储在静态存储区内。
常常通过类名.来访问。
如果不希望static变量被修改。可以使用final修饰变量。
而const是修饰常量的,值不可以改变。
以下附上我的测试代码(java):
public class Dog {
public static int testvariable=10;
public String name;
public int age;
public double weight,height;
//构造函数
public Dog(String setname){
name =setname;
}
//设置年龄
public void setage(int setage){
age=setage;
}
//设置身高
public void setHeight(double setheight) {
height = setheight;
}
//设置体重
public void setWeight(double setweight) {
weight = setweight;
}
//输出并返回名字
public String getName(){
System.out.println("名字:"+name);
return name;
}
//输出并返回年龄
public int getAge() {
System.out.println("年龄:"+age+"岁");
return age;
}
//输出并返回身高
public double getHeight() {
System.out.println("身高:"+height+"米");
return height;
}
//输出并返回体重
public double getWeight() {
System.out.println("体重:"+weight+"Kg");
return weight;
}
public void settest(int settest){
testvariable+=settest;
}
public int getTestvariable(){
System.out.println("test:"+testvariable);
return testvariable;
}
public static void main(String[] args){
Dog mydog=new Dog("lutherky");
mydog.setage(5);
mydog.setHeight(1.2);
mydog.setWeight(25);
mydog.getName();
mydog.getAge();
mydog.getHeight();
mydog.getWeight();
mydog.settest(20);
mydog.getTestvariable();
Dog mydog2=new Dog("acekt");
mydog2.getName();
mydog2.settest(25);
mydog2.getTestvariable();
mydog2.getAge();
}
}
其中testvariable是测试static的变量。运行结果为:
可见虽然我创建了两个对象,但testvariable的值只有唯一一个,这就是静态变量。