/*
- static,静态的,可以用来修饰属性、方法、代码块()或称作初始化块、*内部类
- static修饰属性(类变量):
- 1.由类创建的所有的对象,都共用这一个属性
- 2.当其中一个对象对此属性进行修改,会导致其他对象对此属性的一个调用。vs实例变量(非static修饰的变量,各自拥有一个)
- 3.类变量是随着类的加载而加载的,而且就这一份。
- 4.静态的变量可以直接通过“类.类变量”的形式来调用
- 5.类变量的加载是要早于对象的。可以“对象.类变量”,但是“类。实例变量”是不行的。
- 6.类变量存在于静态中。
*/
public class TestSportsMan {
public static void main(String[] args) {
SportsMan s1 = new SportsMan("卢本伟",12);
SportsMan s2 = new SportsMan("柚柚妹",12);
s1.name = "马飞飞" ;
s1.nation = "China";
System.out.println(s1);
System.out.println(s2);
System.out.println(SportsMan.nation);
}
}
class SportsMan{
//实例变量(随着对象的创建而被加载的)
String name;
int age;
//类变量
static String nation;
public String getName() {
return name;
}
public SportsMan(String name, int age) {
super();
this.name = name;
this.age = age;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public SportsMan(String name, int age, String nation) {
super();
this.name = name;
this.age = age;
this.nation = nation;
}
public String getNation() {
return nation;
}
public void setNation(String nation) {
this.nation = nation;
}
@Override
public String toString() {
return "SportsMan [name=" + name + ", age=" + age + ", nation=" + nation + "]";
}
}
内存结构: