尝试在java中声明一个类时出错

时间:2013-09-24 18:17:39

标签: 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类的部分的指针。它说无法找到符号,这表明该变量未被声明,但我该如何做呢? (我完全清楚可能有更好的编码方法,但这是我到目前为止所做的。) 编辑:编辑代码,因为我刚看到它没有包含所有内容...抱歉。

2 个答案:

答案 0 :(得分:3)

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

class Meny {
  ...
}

提前

Meny menyen = new Meny();

定义类的顺序对编译器很重要。另外声明Scanner实例final,以便可以在内部类

中引用它
final Scanner input = new Scanner(System.in);

答案 1 :(得分:-1)

如果这是您的完整代码,那么您将错过}关闭void Meny(),关闭}关闭class Meny,关闭另一个}关闭main()。另外,你有main()放在一个更大的班级吗? Java不允许函数在类外部。