我想获取一个类生成的值,让另一个类使用它并实时更新它。这就是我对生成数字的类所做的:
System.ArgumentException : Member 'System.Type' is declared in another module and needs to be imported
然后我打电话给
public Integer red(int red){
this.red = red;
return red;
}
在我做的其他课程中:
private int red;
但它告诉我无法应用它。如果我将它设置为0,它总是保持为零,而另一个类不能改变它。我怎样才能使这项工作正确?
答案 0 :(得分:3)
如何从另一个类编辑一个类值?
我假设您正在询问如何变异和访问类的私有变量。你可以使用getter和setter:
例如:
class GUI{
private int red;
public int getRed(){ //you can name it as red() as you wish
return red;
}
public void setRed(int red){ //you can name is as red(int red)
this.red = red;
}
}
从其他班级访问:
public class TestRunner{
public static void main(String[] args){
GUI gui = new GUI();
gui.setRed(val); //edit gui's red value (val is an int)
int color = gui.getRed(); //retrieve red from gui object
}
}
答案 1 :(得分:0)
您没有在红色功能中传递任何值。执行此操作然后使用setter函数设置值,并使用getter查找最新值。
答案 2 :(得分:0)
制作一个像Gui类中提到的像Pritam这样的setter方法。
public void setRed(Integer red) {
this.red = red;
}
然后你需要实例化一个Gui类的对象。
Gui objGui = new Gui();
然后在该对象上使用setter函数。
objGui.setRed(red);
答案 3 :(得分:0)
您将红色变量设置为private access member。此变量的范围仅在您的gui类中。以下两个选项可以改变这种情况:
添加Setter和Getter方法
这可能是访问类中私有变量的最常用方法。通过创建setter和getter方法,您将能够将新值“设置”为红色变量并“获取”新的或当前的红色值。一个例子:
public void setRed(int red){
this.red = red;
}
public int getRed() {
return red;
}
更改访问成员
另一种选择是将访问成员从private int red
更改为public static int red
。但是我并不真的建议这样做,因为红色值将在所有gui类实例中保持不变。除非你有充分的理由使用相同的变量,否则创建setter和getter就是解决方案。