我一直在寻找一个我理解这个问题的答案。我正在编写一个程序,用户输入一个数字,然后程序打印出数字,如果它是奇数,甚至是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;
}
}
真的不确定如何解决这个问题。我尝试将“静态”放入所有方法中,但随后变量都被搞砸了。
注意:它应该打印为“Number:Even:Multiple”。
答案 0 :(得分:0)
使您的变量和方法保持静态,这将解决您的问题。只需确保您了解静态和非静态之间的区别。静态变量和方法由特定类的所有对象(实例)共享,而非静态变量和方法特定于特定类的每个实例。对于你正在做的事情,使你的变量和方法都是静态的是正确的事情。或者您可以在main方法中创建全局变量作为非静态变量,并将它们传递给需要它们的每个方法。