Java 对非静态方法的静态引用(在主方法中)

Java 对非静态方法的静态引用(在主方法中),java,Java,关于这个问题,我已经到处寻找我能理解的答案。我在写一个程序,用户输入一个数字,然后程序打印出这个数字,如果是奇数或偶数,或者是7的倍数 我在以下代码行中遇到此错误: 无法对非静态方法名称进行静态引用 这就是我的代码: import java.util.Scanner; public class Multiples { int number1; String evenOdd; String multipleOr; public static void main(String[] args)

关于这个问题,我已经到处寻找我能理解的答案。我在写一个程序,用户输入一个数字,然后程序打印出这个数字,如果是奇数或偶数,或者是7的倍数

我在以下代码行中遇到此错误:

无法对非静态方法名称进行静态引用

这就是我的代码:

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:偶数:多个。

将变量和方法设置为静态,这样可以解决问题。只需确保您理解静态和非静态之间的区别。静态变量和方法由特定类的所有对象实例共享,而非静态变量和方法特定于特定类的每个实例。对于你正在做的事情,让你的变量和方法都是静态的是正确的。或者,您可以在main方法中创建全局变量作为非静态变量,并将它们传递给每个需要它们的方法。

如果您将一个方法声明为静态,那么它使用的所有外部变量也应该是静态的。您可以想到的另一种方法,创建类的实例并调用该实例上的方法/操作。静态方法在所有对象之间共享,这就是您想要的吗?哇。简单到让我的变量是静态的。谢谢你,先生!欢迎光临,很高兴我能帮忙!这是完全错误的解决方案。正确的解决方案是实例化一个对象并对其调用方法。
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;
}
}