java - 尝试在 java 中声明类时出现错误

标签 java class declare

我得到了这部分代码:

import java.util.*;
import java.io.*;
public class Oblig2 {
Meny menyen = new Meny();
public static void main (String[] args) {
Scanner input = new Scanner (System.in);
int menyvalg=0;


//Lager filen ved navn Fugleobservasjoner
try{
PrintWriter fil=new PrintWriter(new FileWriter("Fugleobservasjoner.txt"));
} catch (IOException e) {
    System.out.println("Filen finnes ikke");
    } 

//Selve menyen til programmet i en egen klasse.
class Meny {
    int menyvalg=0;
    void Meny() {
System.out.println("====== Meny for registrering av fugleobservasjoner =====");

System.out.println("\n1. Registrer en fugleobservasjon");
    System.out.println("2. Skriv ut alle fugleobservasjoner av en type");
System.out.println("3. Skriv ut alle fugleobservasjoner på ett bestemt sted");
System.out.println("4. Avslutt systemet");

System.out.println("\nVennligst velg et tall: ");
menyvalg = input.nextInt();
    }
}



//Dette er kommandoene for valget som gjøres i menyen.


    }
}

但是我在编译时不断收到错误以及指向我声明 Meny 类的部分的指针。它说 Cannot find Symbol,这表明该变量没有声明,但是我该怎么做呢? (我完全意识到可能有更好的编码方法,但这就是我到目前为止所得到的。) 编辑:编辑代码,因为我刚刚看到它没有包含所有内容...对此感到抱歉。

最佳答案

在尝试使用类Meny之前定义它,即移动

class Meny {
  ...
}

领先

Meny menyen = new Meny();

类的定义顺序对编译器很重要。此外,将 Scanner 实例声明为 Final,以便可以在内部类中引用它

final Scanner input = new Scanner(System.in);

关于java - 尝试在 java 中声明类时出现错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18989090/

相关文章:

java - 编译器在提供返回语句后要求返回语句

Java ClearSelection() 方法的问题

java - 不同包中的两个类如何隔离它们?

javascript - 如何使用declare定义dojo静态变量或静态对象

C90 : How do I globally initialize this struct in C without C99 extensions

java - 创建一个字符串缓冲区数组

java - Spark 查询 cassandra 中的集合并集

java - 升级到 Log4J2 面临异常。 [Java.lang.ClassNotFoundException : org. apache.logging.log4j.LogManager]

python - 将带有 **kwargs 错误的值线程化并传递给 TypeError

java - 类似的Java类