public class Trans{
int i=47;
public void call(){
System.out.println("调用call()方法");
for(i=0,i<3,i++){
System.out.print(i+"");
if(i==2){
System.out.println("\n");
}
}
}
public Trans(){
}
public static void main(String[] args){
Trasns t1=new Trans();
Trasns t2=new Trans();
t2.i=60;
System.out.println("第一个实例对象调用变量i结果:"+t1.i++);
t1.call();
System.out.println("第二个实例对象调用变量i结果:"+t2.i);
t2.call();
}
}
输出结果:
第一个实例对象调用变量i结果:47
调用call()方法
0 1 2
第二个实例对象调用变量i结果:60
调用call()方法
0 1 2
public class Trans{
static int i=47;
public void call(){
System.out.println("调用call()方法");
for(i=0,i<3,i++){
System.out.print(i+"");
if(i==2){
System.out.println("\n");
}
}
}
public Trans(){
}
public static void main(String[] args){
Trasns t1=new Trans();
Trasns t2=new Trans();
t2.i=60;
System.out.println("第一个实例对象调用变量i结果:"+t1.i++);
t1.call();
System.out.println("第二个实例对象调用变量i结果:"+t2.i);
t2.call();
}
}
输出结果:
第一个实例对象调用变量i结果:60
调用call()方法
0 1 2
第二个实例对象调用变量i结果:3
调用call()方法
0 1 2
更改静态变量,所有对象实例都有影响。更改成员变量,只有当前成员实例有影响。
静态变量相当于全局变量,一个程序就有一个,成员变量则是有几个实例,就有几个拷贝,互不干扰。
静态属性在类加载器加载的时候就会初始化(开辟内存),此时还没有调用构造器(new),所以它为该类所拥有,对任何该类实例对象内存可见。
而非静态属性是在类实例化时初始化(new关键字生成对象),new每次生成对象内存地址不一样,所以修改不会影响到别人。
修改代码如下:
1.
for(int j=0,j<3,j++){
System.out.print(j+"");
if(j==2){
System.out.println("\n");
}
}
2.
t2.i=60; //这一句放在t1.call()之后。
静态成员变量属于类属性,没有对象也可以用。有对象就属于那一类对象共用。
成员变量属于对象属性,有对象才能使用。