我正在尝试编译一个小项目。它由两个类Fraction.java
组成,它代表一个数学分数,并提供一些简单计算的方法,以及Main.java
,它包含创建两个分数并进行一些计算的主要方法。项目结构如下:
MyFractionProject
|
+-------src
|
+------fractionpackage
|
+-------Fraction.java
+-------Main.java
由于两个类都在同一个包中,我不必添加包声明吗?我只需将Fraction.java
导入Main.java
,例如:
import Fraction;
public class Main {
public static void main(String[] args) {
Fraction f1 = new Fraction(...)
...
然而,这不起作用。当我尝试从MyFractionProject/src/fractionpackage
编译这两个类时,fraction类编译得很好,但是javac Main.java
给了我这个错误:
localhost:fractionpackage MyUserName$ javac Fraction.java
localhost:fractionpackage MyUserName$ javac Main.java
Main.java:1: '.' expected
import Fraction;
^
Main.java:1: ';' expected
import Fraction;
^
2 errors
我知道这是一个常见的初学者问题,但我还没有真正找到一个简洁的解释,说明哪个类必须按哪个类从哪个工作目录到哪个类文件夹进行编译。通常,受访者只是在目录或类路径中疯狂地跳转,这对初学者来说根本没用。
我以为自己已经选择了最基本的设置,即使这样做也不是很令人沮丧。有人可以看看它并给我具体说明(与各自的工作目标),这将使该项目运行?
答案 0 :(得分:0)
您不会在包中导入其他类:如果您的包p中有类C1,C2,... Cn;那么所有这些C1,...都可以互相使用而不需要任何import语句。
您只需要从不同的包中导入类。
因此当 Fraction 与 Main 在同一个包中时;然后删除那些import语句;你应该做得好!
答案 1 :(得分:0)
如果两个类都在同一个包中,那么只需为另一个类创建一个对象就不需要导入任何东西。只有在要从另一个包访问类时才必须导入类。
答案 2 :(得分:0)
我对java也是全新的,但我最初的猜测是你不必明确导入类,因为你说它们属于同一个包。所以只需删除导入分数;