Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/371.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java导入语句中出现错误_Java - Fatal编程技术网

Java导入语句中出现错误

Java导入语句中出现错误,java,Java,下面是我的代码中的导入语句。am导入的类在同一个包中comm package comm; import WikiLinksReducer; import WikiPageLinksMapper; import XmlInputFormat; import RankCalculateMapper; import RankCalculateReduce; import RankingMapper; 编译代码时,我遇到以下错误: WikiPageRanking.java:2: '.' expecte

下面是我的代码中的导入语句。am导入的类在同一个包中
comm

package comm;
import WikiLinksReducer;
import WikiPageLinksMapper;
import XmlInputFormat;
import RankCalculateMapper;
import RankCalculateReduce;
import RankingMapper;
编译代码时,我遇到以下错误:

WikiPageRanking.java:2: '.' expected
import WikiLinksReducer;
                   ^
WikiPageRanking.java:2: ';' expected
import WikiLinksReducer;
                    ^
WikiPageRanking.java:3: class, interface, or enum expected
import WikiPageLinksMapper;
   ^
WikiPageRanking.java:4: '.' expected
import XmlInputFormat;
                 ^
WikiPageRanking.java:4: ';' expected
import XmlInputFormat;
                  ^
WikiPageRanking.java:5: class, interface, or enum expected
import RankCalculateMapper;
   ^
WikiPageRanking.java:6: '.' expected
import RankCalculateReduce;
                      ^
WikiPageRanking.java:6: ';' expected
import RankCalculateReduce;
                       ^
WikiPageRanking.java:7: class, interface, or enum expected
import RankingMapper;

您不需要在与当前类相同的包中导入类,它们是自动导入的。

import语句用于从您的类所在的包以外的包中导入类。如果使用的其他类在同一个包中,则不需要导入包。

我希望这可以作为一个可靠的答案

Java包是一种管理文件命名和可见性的机制

默认情况下,包中的类将彼此具有“知识”,并且它们与外部类中的类是唯一的,外部类似乎具有相同的名称。包名称确保命名约定仍然是唯一的。Java包有更多细微差别,比如限制包内和包之间的可见性。有一个更详细的教程

关于制作一个简单的示例,请注意以下几点:

  • 关键字package和包名称必须是第一条语句
  • 包名通常由目录结构镜像
  • 默认情况下,Java将使用当前工作目录作为执行的起点。这意味着可以找到子目录
  • 您应该在工作目录上方的目录中执行程序,或者设置
    CLASSPATH
    变量以包含到包目录的路径
  • 每个文件都需要编译(显然)
  • 编译后,可以在包目录上方的目录中运行程序,但请记住,必须将包名+“.”添加到类名中
  • 您可以在同一个包中导入类文件,但不需要这样做

  • 目录结构示例:
    文件夹: AccountBalance.java
    package-mypackage;
    导入mypackage.Thing;//不必要的导入,注意:名称需要与包一起限定
    类别帐户余额{
    公共静态void main(字符串参数[]){
    Balance Balance=新余额(“杰克”,123);//相同的软件包-->无需导入
    balance.show();
    事物=新事物(“吉尔”);
    System.out.println(thing.getName());
    }
    }
    
    Balance.java
    package-mypackage;
    阶级平衡{
    字符串名;
    双平衡;
    余额(字符串名称,双余额){
    this.name=名称;
    这个平衡=平衡;
    }
    无效显示(){
    如果(余额>0){
    系统输出打印(“-->”);
    System.out.println(name+“:$”+余额);
    }
    }
    }
    
    java
    package-mypackage;
    阶级事务{
    字符串名;
    事物(字符串名称){
    this.name=名称;
    }
    公共字符串getName(){
    返回此.name;
    }
    }
    

    编译和执行步骤: 执行说明:
  • 可以在一行中编译多个类,如果存在多个文件的相互依赖关系,则必须编译。您完全可以将所有这些类放在同一个
    AccountBalance.java
    文件中,只需执行
    javaccountbalance.java
    即可进行编译,但随着文件的增长,这些类会变得杂乱无章
  • 运行应用程序需要
    mypackage.AccountBalance
    正确地“命名”所有内容<代码>帐户余额从运行时的角度看不存在。
    mypackage.AccountBalance.java也没有
  • C:\java\mypackage
    C:\java\mypackage\AccountBalance.java
    C:\java\mypackage\Balance.java
    C:\java\mypackage\Thing.java
    
    C:\java\mypackage> javac AccountBalance.java Balance.java Thing.java 
    C:\java\mypackage> cd ..
    C:\java> java mypackage.AccountBalance