“分享"的正确方式是什么?不同类中方法之间的变量? [英] What's the correct way to "share" variables between methods in different classes?
问题描述
我正在尝试在不同类中的方法之间共享变量,但我不知道我是否以正确的方式执行此操作.基本上,当我想在 method2 上使用变量时,我必须将它们从 Class A 通过 method1传输"到 method2,只需看看示例,因为我不知道如何正确解释这一点.
I'm trying to share variables between methods in different classes, but I don't know if I'm doing this in the correct way. Basically when I wanna use the variables on method2 I have to "transport" them throught method1 to method2 from the Class A, just take a look at the example because I don't know how to explain this properly.
这是正确的做法吗?因为有时我会通过遍历方法来执行此操作,而且看起来很丑.
Is this the correct way to do it? Because sometimes I do this over an over through methods and it looks ugly.
示例:
public class A {
int var1, var2, var3;
B b = new B();
b.method1(var1, var2, var3);
}
public class B {
public void method1(int var1, int var2, int var3){
//doSomething
method2(var2, var3);
}
public void method2(int var2, int var3){
//doSomething
}
}
顺便说一句,是否有进行代码审查的社区?我对代码很陌生,恐怕我正在创建无效的代码.
Btw, is there any community where code reviews are done? I'm pretty new to code and I'm afraid that I'm creating code that isn't effective.
感谢您的帮助!:)
推荐答案
使用 getter 和 setter 从 B 获取类 A 的变量如下..
Use getters and setters to get variable of Class A from B as following..
public class A {
private int var1, var2, var3;
public int getVar1(){
return var1;
}
public void setVar1(int var1){
this.var1 = var1;
}
public int getVar2(){
return var2;
}
public void setVar2(int var2){
this.var2 = var2;
}
public int getVar3(){
return var3;
}
public void setVar3(int var3){
this.var3 = var3;
}
}
public class B{
// Use var 1 from class A as following
A a = new A();
int x = a.getVar1(); //x has the value of Var1 now
a.setVar1(2); // var1 in class A has value 2 now.
}
使用接口而不是直接调用另一个类的方法.
Use interfaces rather than directly call a method of another class.
public class A {
private InterfaceB interfaceB;
interfaceB.method1(var1, var2, var3);
}
public interface InterfaceB{
public void method1(int var1, int var2, int var3);
public void method2(int var2, int var3);
}
public class B implements InterfaceB{
@Override
public void method1(int var1, int var2, int var3){
//doSomething
method2(var2, var3);
}
@Override
public void method2(int var2, int var3){
//doSomething
}
}
这篇关于“分享"的正确方式是什么?不同类中方法之间的变量?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!