【问题标题】:Why is it showing enum, interface expecting errors?为什么它显示枚举,接口预期错误?
【发布时间】:2016-09-24 05:21:31
【问题描述】:

这个程序在包概念中显示这个错误询问界面......为什么会这样?我不能在不使用接口的情况下打包吗?我也试过了..但仍然显示相同的错误..该怎么做..请帮助请点击此链接fr屏幕截图errors regaring interface and enum

package Car_package;

    public class Car {        
        public static int carnum;
        public static String carname;
        public static void display (int a, String car_name) {
            carnum = a;
            carname = car_name;
            System.out.println ("Car Number is: " +carnum);
            System.out.println ("Car Name is  : " +carname);
        }
    }

import Car_package.*;

public class CarImportPackage {
    public static void main (String[] args) {
        Car.display (777, "Ferrari");
    }
}

【问题讨论】:

  • 因为你需要把CarImportPackage类放到自己的文件中。
  • 你能解释一下吗..我无法理解这一点
  • 你符合bmw.javaCar_package.java,但你的班级名称是CarCarImportPackage。文件名和类名必须相同。

标签: java interface enums


【解决方案1】:

您误解了 java 打包。 java 包只是一个包含类的文件夹。

假设你有这个项目。所有源文件都位于 src 目录下。

src
├── a
│   ├── A.java
│   └── b
│       └── B.java
└── c
    └── C.java

包是aa.bc。 为了从另一个包中导入一个类,import 指令写在文件的顶部。

现在,如果您希望代码正常工作,那么您的架构应该是这样的:

src
├── CarImportPackage.java
└── Car_package
    └── Car.java

现在,您可以运行您的项目,它会显示所需的输出。

现在,关于约定,Java 包都是用小写字母写的,里面没有特殊字符。因此,您应该将 Car_package 重命名为其他名称,例如 car

另外,您不应该使用default 包(CarImportPackage 目前在其中)。

【讨论】:

    【解决方案2】:

    正如documentation 所说,在同一个文件中最多可以声明一个公共类。

    所以你的班级应该是这样的:

    package Car_package;
    
    public class Car {        
        public static int carnum;
        public static String carname;
        public static void display (int a, String car_name) {
            carnum = a;
            carname = car_name;
            System.out.println ("Car Number is: " +carnum);
            System.out.println ("Car Name is  : " +carname);
        }
    }
    
    /*import Car_package.*; DELETED: You don't need to import the 
    class, as it is declared in the same file */
    
    class CarImportPackage { //Remove public keyword
        public static void main (String[] args) {
            Car.display (777, "Ferrari");
        }
    }
    

    【讨论】:

    • 这个答案更适合作为评论而不是答案。如果你想让它值得回答,我建议你发布一组可以解决问题的示例代码
    猜你喜欢
    • 2016-04-09
    • 1970-01-01
    • 1970-01-01
    • 2015-02-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-01-13
    • 2014-06-20
    相关资源
    最近更新 更多