这是问题所在:
我有一个叫做的类MyClass,它是一个普通的类,有一个变量i,并且MyOtherClass里面会有一些逻辑来修改MyClass'si值,但是我不想传递i值MyOtherClass,我希望它们调用addOne,minusOne方法.如何修改MyOtherClass这样做?我可以修改构造函数MyOtherClass来满足这个要求.谢谢.
public class MyClass{
int i;
public void myMethod(){
//I would like to myOtherClass a, b can call back MyClass's addOne, and minusOne
MyOtherClass a = new MyOtherClass();
MyOtherClass b = new MyOtherClass();
a.runLogic();
b.runLogin();
}
public void addOne(){
i++;
}
public void minusOne(){
i--;
}
pubic void printI(){
System.out.print(i);
}
}
Run Code Online (Sandbox Code Playgroud)
使用的代码 MyClass
MyClass myClass = new MyClass();
myClass.myMethod();
myClass.printI();
Run Code Online (Sandbox Code Playgroud)
只需将this参数作为参数传递给其他类构造函数或runLogic方法:
public class MyClass {
private int i;
pulic void addOne() {
i++;
}
public void myMethod() {
MyOtherClass c = new MyOtherClass(this);
c.runLogic();
}
}
public class MyOtherClass {
private MyClass myClass;
public MyOtherClass(MyClass myClass) {
this.myClass = myClass;
}
public void runLogic() {
myClass.addOne();
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
54 次 |
| 最近记录: |