static关键字
在所有定义的方法上以及属性上都可以使用static关键字定义。
1.1 static属性
范例:定义一个人的类,并设置所在国家
代码
class Person{
private String name;
private int age;
String con = "US"; // 为方便操作,暂时不封装
public Person(String name,int age){
this.name = name;
this.age = age;
}
public String getInfo(){
return "name = " + this.name + ", age = " + this.age + " , contry = " + this.con;
}
}
public class TestDemo
{
public static void main(String[] args){
Person p1 = new Person("Jack",10);
Person p2 = new Person("Tom",11);
Person p3 = new Person("Sandy",12);
System.out.println(p1.getInfo());
System.out.println(p2.getInfo());
System.out.println(p3.getInfo());
}
}
输出结果
name = Jack, age = 10 , contry = US
name = Tom, age = 11 , contry = US
name = Sandy, age = 12 , contry = US
此时每个对象的con被重复保存,如果假设现在国家的名称突然改变,而按照以上存储模式,假设当前Person类已经产生了10亿个对象,就要改10亿次。传统的属性所具备的特征就是保存在对内存之中,且每一个对象独享此属性。
这不适合当前环境,所以最好的做法是将con属性变为共享属性,只要一次修改就可以影响所有的对象,魔术共享属性只要在属性前加static关键字即可。
代码
class Person{
private String name;
private int age;
static String con = "US";
public Person(String name,int age){
this.name = name;
this