在main方法之前在java中声明一个类

时间:2015-05-26 04:38:14

标签: java class netbeans

对于这么简单的问题感到抱歉,但我刚开始使用Java而且我还没有能够解决这个问题。我直接从书中复制了这段代码,但它没有成功运行。我正在使用NetBeans。我得到了类和Vehicle和Class VehicleDemo类旁边的红灯说 "重复类:javaapplication3.Vehicle。"文件名是JavaApplication3。输出是这样的:

错误:发生了JNI错误,请检查您的安装并重试 线程" main"中的例外情况java.lang.IncompatibleClassChangeError:javaapplication3.Vehicle和javaapplication3.Vehicle $ VehicleDemo不同意InnerClasses属性

package javaapplication3;

/**
*
* @author cs
*/


class Vehicle {
  int passengers;
  int fuelcap;
  int mpg;
}

class VehicleDemo {
   public static void main(String[] args) {
      Vehicle minivan = new Vehicle();
      int range;

      minivan.passengers = 7;
      minivan.fuelcap = 16;
      minivan.mpg = 21;

    range = minivan.fuelcap * minivan.mpg;
    System.out.println("Minivan can carry " + minivan.passengers + " with a   range of " + range);                                                            
    }
 }

5 个答案:

答案 0 :(得分:1)

  

文件名是JavaApplication3

1)文件名必须是VehicleDemo.java 2)class VehicleDemo {应为public class VehicleDemo {

由于您的软件包名称是“JavaApplication3”,因此您的文件夹必须是“JavaApplication3”,但是如果您在其中创建了一个项目并通过向导给出了软件包名称,NetBeans会负责处理它。

答案 1 :(得分:0)

删除此行:

private class Listener implements ActionListener {
    public void actionPerformed(ActionEvent action) {
        if(getBackground().equals(Color.RED))
            setBackground(Color.GREEN);
        else if(getBackground().equals(Color.GREEN))
            setBackground(Color.BLUE);
        else if(getBackground().equals(Color.BLUE))
            setBackground(Color.GRAY);
        else
            setBackground(Color.RED);
    }
}

或只是把//评论这一行

答案 2 :(得分:0)

提供应用程序名称:Application3.java

package com.docmgmt.test;
class Vehicle {

      int passengers;
      int fuelcap;
      int mpg;
    }

class Application3 {

    public static void main(String[] args) {
        Vehicle minivan = new Vehicle();
        int range;

        minivan.passengers = 7;
        minivan.fuelcap = 16;
        minivan.mpg = 21;

        range = minivan.fuelcap * minivan.mpg;
        System.out.println("Minivan can carry " + minivan.passengers
                + " with a   range of " + range);
    }

}

输出:

小型货车可以携带7,范围336

答案 3 :(得分:0)

从我的观点来看,最佳实践是,作为初学者,您可以从简单的文本编辑器和命令提示符或终端开始,这可以让您学习更多东西而不是使用IDE。

当您按照上述方法操作时,您可以随时注释复制源时可能存在的包行(前几行)。 例: //包*****;

答案 4 :(得分:0)

我认为问题是代码不完整,并且不包括要编译的源代码的所有细节。

您的代码似乎缺少实际类的声明,这是.java文件的名称。假设您的文件名为someClass.java,在实现内部类之前,您需要声明该类的主体。因此,假设您的文件名为someClass.java

,请确保您拥有这样的正文
public class someClass{
...
}
class innerClass{

}