对静态方法的静态引用(在主要方法中)
我已经遍寻了一个我理解这个问题的答案。我正在写在那里用户输入数字的程序,然后该程序打印出号码,如果是奇数还是偶数,以及如果它是7对静态方法的静态引用(在主要方法中)
我得到这个错误,这些多行代码:
“不能使静态参考非静态方法方法名称”
getNum();
evenOdd();
multiple();
System.out.println(number1 + " : " + evenOdd + " : " + multipleOr);
这是我的代码是:
import java.util.Scanner;
public class Multiples {
int number1;
String evenOdd;
String multipleOr;
public static void main(String[] args) {
printMsg();
System.out.println("Enter a number: ");
getNum();
evenOdd();
multiple();
System.out.println(number1 + " : " + evenOdd + " : " + multipleOr);
}
public static void printMsg() {
System.out.println("Welcome to the Multiplicity program.");
System.out.println("Enter a number and I will tell you if it is a multiple of 7 and if it is odd or even.");
return;
}
public int getNum() {
Scanner input = new Scanner (System.in);
number1 = input.nextInt();
return number1;
}
public String evenOdd(){
if (number1/2 == 0);
evenOdd = "EVEN";
if (number1/2 != 0);
evenOdd = "ODD";
return evenOdd;
}
public String multiple(){
if (number1/7 == 0);
multipleOr = "MULTIPLE";
if (number1/7 != 0);
multipleOr = "NOT";
return multipleOr;
}
}
真的不确定如何解决此问题。我试图把“静态”放入所有的方法中,但是这些变量都被搞乱了。
注:这应该打印为“编号:偶:多”。
让你的变量和方法的静态,这将解决您的问题。只要确保你了解静态和非静态之间的区别。静态变量和方法由特定类的所有对象(实例)共享,而非静态变量和方法特定于特定类的每个实例。对于你正在做的变量和方法,所有的静态变量都是正确的。或者你可以在main方法中创建全局变量作为非静态变量,并将它们传递给每个需要它们的方法。
哇。非常简单,因为我的变量是静态的。谢谢你,先生! – user2800912 2014-11-24 19:46:21
欢迎您的光临,我可以帮助您! – brso05 2014-11-24 19:46:38
这完全是错误的解决方案。正确的解决方案是实例化一个对象并调用它的方法。 – EJP 2014-11-24 19:57:31
如果要声明的方法'static',所有的外部'variable's它使用也应该是'static'。 – Compass 2014-11-24 19:43:17
您可以考虑的另一种方法是创建类的实例并在该实例上调用方法/操作。 – kosa 2014-11-24 19:44:09
静态方法在所有对象之间共享,这是你想要的吗? – Maroun 2014-11-24 19:46:21