Java-无法从静态上下文引用非静态方法

Java-无法从静态上下文引用非静态方法,java,Java,每次我试图编译我的程序时,我都会遇到这样一个错误:“不能从静态上下文引用非静态方法primeNum(int)” 在这个程序中,我必须编写一个确定一个数字是否为素数的方法,并在一个确定1到100之间的所有素数的应用程序中使用这个方法 这是我的密码: import java.io.*; import java.util.Scanner; public class Program7 { public static void main (String args[]) { Scanner scanner

每次我试图编译我的程序时,我都会遇到这样一个错误:“不能从静态上下文引用非静态方法primeNum(int)”

在这个程序中,我必须编写一个确定一个数字是否为素数的方法,并在一个确定1到100之间的所有素数的应用程序中使用这个方法

这是我的密码:

import java.io.*;
import java.util.Scanner;
public class Program7

{
public static void main (String args[])
{
Scanner scanner = new Scanner(System.in);

int x, r=0, prime;
int num[]= new int[100];

while (r<100){
  prime=primeNum(x);
  System.out.println(prime);
  r++;
  }
}

public int primeNum (int x){

for(i=1; i<=x; i++){
  if(x%i==0)
  count++;
  return x;
  }
  if(count==2)
  System.out.println();
  }
}
import java.io.*;
导入java.util.Scanner;
公共课程7
{
公共静态void main(字符串参数[])
{
扫描仪=新的扫描仪(System.in);
整数x,r=0,素数;
int num[]=新int[100];

虽然(rYes),但不能从静态上下文调用非静态方法。 您有两个选择:

声明primeNum()static

static int primeNum (int x){
创建primeNum的实例并通过该引用调用primeNum:

PrimeNumClass primeNumObj = new PrimeNumClass();
int returnVal = primeNumObj.primeNum(x);

在匆忙发帖时,你忽略了查看所有相关的问题和答案。把头转向屏幕右侧。@SotiriosDelimanolis他没有问任何问题。而且,错误的意思就是它所说的。
main
static
,你试图调用非静态方法
primeNum
从那里开始。另请参见官方教程。它简明且编写良好,将在这里为您提供所需的信息。我相信这是编程101,适用于所有OOP编程语言。这样想吧。Program7是自包含的,主方法是静态的;因此,该类中引用的所有方法都是如果要在main中使用,那么它们必须是静态的。我很确定类遵循相同的概念。System.out.println()