类变量又叫静态变量,申明需加Static关键字,值为类私有,所有实例共有,一变全变。
实例变量也叫对象变量,为实例私有,只在实例内发生改变,与其它实例无关。
如下示例:
package object;
/* 测试类变量与实例变量的区别 */
public class VariableStatic{
//声明变量
static String school = "一中"; //静态变理
private String name = "张三";
void setSchool(String school){
this.school = school;
}
String getSchool(){
return school;
}
void setName(String name){
this.name = name;
}
String getName(){
return name;
}
public static void main(String[] args){
//根据类定义两个实例
VariableStatic s1 = new VariableStatic();
VariableStatic s2 = new VariableStatic();
//先显示两实例的值
System.out.println("----begin -----");
System.out.println("s1.school = "+s1.getSchool());
System.out.println("s1.name = "+s1.getName());
System.out.println("s2.school = "+s2.getSchool());
System.out.println("s2.name = "+s2.getName());
//改变实例1的值,看结果如何
System.out.println("----Set s1 -----");
//改变实例1的school,name
s1.setSchool("二中");
s1.setName("李四");
System.out.println("s1.school = "+s1.getSchool());//结果:二中
System.out.println("s1.name = "+s1.getName());//结果:李四
System.out.println("s2.school = "+s2.getSchool());//结果:二中
System.out.println("s2.name = "+s2.getName());//结果:张三
//改变实例2的name
System.out.println("----Set s2 -----");
s2.setName("王五");
System.out.println("s1.school = "+s1.getSchool());//结果:二中
System.out.println("s1.name = "+s1.getName());//结果:李四
System.out.println("s2.school = "+s2.getSchool());//结果:二中
System.out.println("s2.name = "+s2.getName());//结果:王五
/* 结论:
类变量又叫静态变量,申明需加Static关键字,值为类私有,所有实例共有,一变全变。
实例变量也叫对象变量,为实例私有,只在实例内发生改变,与其它实例无关 */
}
}