美文网首页
package和import

package和import

作者: 许宏川 | 来源:发表于2015-06-20 14:43 被阅读226次

我们写代码的时候难免会有两个类名相同的时候,例如你和你的同事合作开发一个程序每人一个模块但是你们代码放在同一目录,你建了一类Person.java,而你的同事也需要一个Person.java怎么办?用石头剪刀布选出一人再想一个类名吗?当然不会,正常思维应该是放在不同的目录。
所以说我们希望代码管理上能有类似于“文件夹”的东西。有吗?有的。Java里这种机制,叫做包(package)。

package##

包的语法:<code>package 包名;</code>
注意package语句必须作为代码的第一行(前面可以有注释)。

直接看示例,新建文件夹叫PackageDemo,进去新建一个Person.java类:

package com.xuhongchuan.packagedemo;

public class Person {
    
    String name;
    
}

编译Person.java类,但是得改一下编译指令:
<code>javac (NAME_PART).java</code>改为<code>javac -d . $(NAME_PART).java</code>
新加的<code>-d</code>是把编译好的class文件放到指定目录,<code>.</code>是当前目录。


编译后的class会放在com\xuhongchuan\packagedemo目录下。


可以看到javac会根据你的报名创建想要的文件夹,并把class文件放在指定目录下。但是如果你不加<code>-d .</code>参数是不会的,只会和java文件放在一块。所以从现在开始编译一律使用<code>javac -d . $(NAME_PART).java</code>。

继续这个示例,回到PackageDemo目录下创建一个Test.java文件:

public class Test {
   
   public static void main(String[] args) {
       Person p = new Person();
   }
   
}

编译出错了:
<pre>
Test.java:4: 错误: 无法访问Person
Person p = new Person();
^
错误的源文件: .\Person.java
文件不包含类Person
请删除该文件或确保该文件位于正确的源路径子目录中。
1 个错误
</pre>

这是路径的问题,因为当前目录下没有Person.class。

那我们改一下:

com.xuhongchuan.packagedemo.Person p = new com.xuhongchuan.packagedemo.Person();

这样编译没问题了。
但是每次都要写一串包名好繁琐啊,这时候就需要import上场了。

import##

import可以导入指定目录下的类文件,这样就不需要每次使用这个类时要敲完整的包名。
使用方法如下:

把Test.java改为:

import com.xuhongchuan.packagedemo.Person;

public class Test {
    
    public static void main(String[] args) {
        Person p = new Person();
    }
    
}

相关文章

  • package和import

    一、包 1.作用 包的作用与Windows操作系统中的文件夹非常类似。提供类的多层命名空间,用于解决类的命名冲突、...

  • package和import

    我们写代码的时候难免会有两个类名相同的时候,例如你和你的同事合作开发一个程序每人一个模块但是你们代码放在同一目录,...

  • package 和import

    package:声明源文件所在的包,写在程序的第一行。每“.“一次,表示一层文件目录 import: 1)显示导入...

  • 包 Package和import

    包的引入是为了区别同名类的。不同的包下面可以有相同名称的类。包类似于身份证号码 注意: 1、package语句...

  • 包package和import

    package 1、为了解决类的命名冲突问题,在类名前加命名空间(包机制) 2、在java中使用paxkage语句...

  • Flutter 仿iOS自定义UIPageControl组件

    import 'package:flutter/cupertino.dart'; import 'package:...

  • Flutter 自定义 AppBar

    import 'package:flutter/cupertino.dart'; import 'package:...

  • package & import

    [参考link]

  • package,import

    package关键字的作用①为了更好的实现项目中类的管理,提供包的概念②使用package声明类或接口所属的包,声...

  • import package

网友评论

      本文标题:package和import

      本文链接:https://www.haomeiwen.com/subject/uzvsqttx.html