Java 如何在另一种方法中引用一种方法?为什么我只能在if语句中定义一个变量一次?
我正在努力使上述代码正常工作。首先,我想将布尔“add”从第一个方法引用到第二个方法,我该怎么做呢?此外,我在这一行上得到了一个“nota statement”错误Java 如何在另一种方法中引用一种方法?为什么我只能在if语句中定义一个变量一次?,java,android,Java,Android,我正在努力使上述代码正常工作。首先,我想将布尔“add”从第一个方法引用到第二个方法,我该怎么做呢?此外,我在这一行上得到了一个“nota statement”错误 public void toggleoperator(View v){ ToggleButton oprtoggle = (ToggleButton) findViewById(R.id.operatortoggle); boolean add = ((oprtoggle.isChecked())); if
public void toggleoperator(View v){
ToggleButton oprtoggle = (ToggleButton) findViewById(R.id.operatortoggle);
boolean add = ((oprtoggle.isChecked()));
if (add){
oprtoggle.setTextOn("Add");
int x = 1;
} else {
oprtoggle.setTextOff("Subtract");
int x = -1;
}
public void sumNumbers(View v){
EditText input1 = (EditText) findViewById(R.id.input1);
int calc1 = Integer.parseInt(String.valueOf(input1.getText()));
EditText input2 = (EditText) findViewById(R.id.input2);
int calc2 = Integer.parseInt(String.valueOf(input2.getText()));
int totaladd = calc1 + calc2;
int totalsubtract = calc1 - calc2;
if (add) {
String result = String.valueOf(totaladd);
} else {
String result = String.valueOf(totalsubtract);
}
EditText output1 = (EditText)findViewById(R.id.output);
output1.setText(result);
}
帮忙?请你也解释一下,否则我就不学了 如果您试图用另一种方法访问某个变量,由于作用域的原因,它将无法工作 基本上,如果在方法中定义变量,它将仅对该方法可用。解决方法之一是在方法外部定义变量,以便该类中的所有方法都可以访问它们。另一个解决方案是返回变量,以便其他方法可以通过调用您的方法来访问它们 我建议阅读以下内容:
这是:如果希望add boolean可以从这两个方法中访问,那么应该将其创建为类变量,而不是函数变量,或者通过参数将其传递给第二个函数
String result = String.valueOf(totalsubtract);
我不会说这是有史以来最好的示例代码,但是它是功能性的,应该可以解决您的问题
此外,我想指出,如果只需要其中一种方法,那么加法和减法都可以进行,这是微不足道的。这就是我改变计算方式的原因。如果你想引用另一个方法中的一个方法,你只需调用第一个方法中的第二个方法
class Clazz {
//Declares the variable at class scope (this should be false by default)
boolean add;
//Sets the value of the "add" boolean
public void toggle () {
add = toggle.isChecked();
}
public void secondMethod () {
int diff = 0;
if (add) {
//make "diff" a positive value, based on what's entered.
} else {
//make "diff" a negative value, based on what's entered.
}
Display.setText(new String(diff));
}
}
Java中的字段具有称为范围的内容。在方法或循环中定义的局部字段的范围在方法或循环结束时耗尽。
如果你想让整个类都能访问一个字段,你需要在方法之外定义它,你不需要立即初始化这个字段,你可以把它委托给构造函数或方法
public void methodA(){
methodB();
Object o = new Object();
methodC(o);
}
public void methodB(){
//do something
}
public void methodC(Object o){
o.doSomething();
}
在继续之前,我会退一步,学习一些Java基础知识。您不能从任何其他地方引用方法的局部变量,它们是定义它们的方法的局部变量。此外,不能引用块外部块中定义的变量。这是基本的Java范围101。在不了解基本知识的情况下,事情将以指数级的速度发展。你能推荐一些好的资源吗?我觉得如果我自己编写代码并在编写过程中得到帮助,我会学到很多东西,而阅读Java文档会让我感到困惑。
public class Clazz{
public int i;
public Clazz(int i){
this.i = i;
}
public void setI(int i){
this.i = i;
}
}