我不明白,结果为什么是10 10 能具体讲下吗程序:
public class Methodmember {
public static void main(string[] args) {
MethodDemo methodDemo = new MethodDemo();
methodDemo.scopDemo();
System.out.Println(MethodDemo.getdata());
methodDemo.setdata(100);
System.out.Println(MethodDemo.getdata());
}
}
class MethodDemo {
private int data = 10;
public void scopeDemo() {
int data = 100;
}
public int getData() {
return data;
}
public void setdata(int data) {
data = data;
this.data = data;
}
}
public class Methodmember {
public static void main(string[] args) {
MethodDemo methodDemo = new MethodDemo();
methodDemo.scopDemo();
System.out.Println(MethodDemo.getdata());
methodDemo.setdata(100);
System.out.Println(MethodDemo.getdata());
}
}
class MethodDemo {
private int data = 10;
public void scopeDemo() {
int data = 100;
}
public int getData() {
return data;
}
public void setdata(int data) {
data = data;
this.data = data;
}
}
int data = 100;
}
用是的局部变量。和实例变量(在类中定义的非静态变量)是有区别的!!
public void setdata(int data) {
data = data;
this.data = data;
}
}
中data=data相当于
int temp=this.data;
data=data; //都是局部变量
this.data=temp;
所以就是10 10
public static void main(string[] args) {
MethodDemo methodDemo = new MethodDemo();
methodDemo.scopDemo();
System.out.Println(methodDemo.getdata());
//上面的MethodDemo.getdata() 改成methodDemo.getdata()
methodDemo.setdata(100);
System.out.Println(methodDemo.getdata());
//上面的MethodDemo.getdata() 改成methodDemo.getdata()
}
}
class MethodDemo {
private int data = 10;
public void scopeDemo() {
int data = 100;
}
public int getData() {
return data;
}
public void setdata(int data) {
data = data;
this.data = data;
}
}
帮你整理了下
package db;public class Methodmember {
public static void main(String[] args) {
MethodDemo methodDemo = new MethodDemo(); methodDemo.scopeDemo();
System.out.println(methodDemo.getData());//打印出MethodDemo类的属性data初始值 methodDemo.setdata(100);
System.out.print(methodDemo.getData());//打印出MethodDemo类的属性data设置的值
}
}class MethodDemo {
private int data = 10; public void scopeDemo() {
int data = 100;//data局部变量
} public int getData() {
return data;//MethodDemo类的属性data
} public void setdata(int data) {
data = data;//MethodDemo类的属性data
this.data = data;//MethodDemo类的属性data
}
}
这个是错的,这个data不是MethodDemo类的属性data而是形参:
code:public class Methodmember {
public static void main(String[] args) {
MethodDemo methodDemo = new MethodDemo();
methodDemo.scopeDemo();
System.out.println(methodDemo.getData());
methodDemo.setdata(100);
System.out.println(methodDemo.getData());
}
}
class MethodDemo {
private int data = 10;
public void scopeDemo() {
int data = 100;
}
public int getData() {
return data;
}
public void setdata(int data) {
data = data;
System.out.println(this.data);//10
this.data = data;
}
}
data = data;//MethodDemo类的属性data(是指第一个data哈)