package eclipsedbug;
class Person5{
int age;
String name;
static int weight;
void setName(String name){
this.name =name;
}
void setAge(int age){
this.age=age;
}
static void setWeight(int a){
weight=a;
}
}
public class Test{
public static void main(String [] args){
Person5 p1=new Person5();
Person5 p2=new Person5();
p1.setName("AAA");
p2.setAge(6);
p1.setWeight(10);
}
}
程序运行过程,找到main函数作为程序入口,当调用p1.setName("AAA")时,在栈内存中存储this变量和name变量并和setName函数
本身关联,this变量内容就是调用该函数的对象引用,name变量存储的就是传入的参数值,当运行this.name时
this指向的是p1这个对象,因为是p1在调用该函数,将name赋值给this.name,name就是存储在setName在栈内存中存储的局部变量值
,此时便将p1对象的name值AAA,可以这样理解,类中的函数就是对对象的成员变量进行操作,至于对哪个对象的成员变量操作取决于是哪个
对象在调用这个类中的函数,对于对象中的静态变量则不需要对象来操作,而是通过静态函数来操作。这样每个对象的成员变量都可以又xiangying的
函数来对其操作。
class Person5{
int age;
String name;
static int weight;
void setName(String name){
this.name =name;
}
void setAge(int age){
this.age=age;
}
static void setWeight(int a){
weight=a;
}
}
public class Test{
public static void main(String [] args){
Person5 p1=new Person5();
Person5 p2=new Person5();
p1.setName("AAA");
p2.setAge(6);
p1.setWeight(10);
}
}
程序运行过程,找到main函数作为程序入口,当调用p1.setName("AAA")时,在栈内存中存储this变量和name变量并和setName函数
本身关联,this变量内容就是调用该函数的对象引用,name变量存储的就是传入的参数值,当运行this.name时
this指向的是p1这个对象,因为是p1在调用该函数,将name赋值给this.name,name就是存储在setName在栈内存中存储的局部变量值
,此时便将p1对象的name值AAA,可以这样理解,类中的函数就是对对象的成员变量进行操作,至于对哪个对象的成员变量操作取决于是哪个
对象在调用这个类中的函数,对于对象中的静态变量则不需要对象来操作,而是通过静态函数来操作。这样每个对象的成员变量都可以又xiangying的
函数来对其操作。