按照前面的学习运行下面代码:
package java_animal;
/**
* 宠物猫类
* @author Y
*/
public class Cat {
//成员属性:昵称、年龄、体重、品种
//修改属性的可见性---private 限定只能在当前类内访问
private String name; //String类型变量默认值是null
private int month; //int类型变量默认值是0
private double weight; //double类型变量默认值是0.0
private String species;
public int price;
public Cat(){
System.out.println("我是宠物猫");
}
//创建get/set方法,get获取,set赋值
//在get/set方法中添加对属性的限定
public void setName(String name){ //赋值不需要返回值
this.name = name;
}
public String getName(){ //获取需要返回值
return this.name;
}
public void setMonth(int month){ //赋值不需要返回值
if(month<0){
System.out.println("年龄信息错误!");
}else{
this.month = month;
}
}
public int getMonth(){ //获取需要返回值
return this.month;
}
public void setWeight(double weight){ //赋值不需要返回值
this.weight = weight;
}
public double getWeight(){ //获取需要返回值
return this.weight;
}
public void setSpecies(String species){ //赋值不需要返回值
this.species = species;
}
public String getSpecies(){ //获取需要返回值
return this.species;
}
package java_test; //定义包
import java_animal.Cat;
public class Test {
public static void main(String[] args) {
Cat one = new Cat();
one.setName("花花");
one.setMonth(2);
one.setWeight(1000);
one.setSpecies("英国短毛猫");
one.price = 2000;
Cat two = new Cat();
two.setName("凡凡");
two.setMonth(1);
two.setWeight(800);
two.setSpecies("中华田园猫");
two.price = 200;
System.out.println(one.getName()+"的价格为:"+one.price);
System.out.println(two.getName()+"的价格为:"+two.price);
}
}
输出:
我是宠物猫
我是宠物猫
花花的价格为:2000
凡凡的价格为:200
在属性price处添加static,public static int price;
,再次运行上述代码,结果为:可看到定义的宠物猫花花和凡凡的价格都为200。
我是宠物猫
我是宠物猫
花花的价格为:200
凡凡的价格为:200
那是因为:由static修饰的成员为静态成员、类成员。无论创建的类实例化出来多少对象,都会共用同一块静态空间。
static修饰的特征:
- 类对象共享;
- 类加载时产生,销毁时释放,生命周期长。
静态成员访问方式:1.对象.成员 2.类.成员,如Cat.price = 3000;