Java基础 package和import

鳄鱼君

发表文章数:643

热门标签

, , ,

Vieu四代商业主题

高扩展、安全、稳定、响应式布局多功能模板。

¥69 现在购买
首页 » Java » Java基础 package和import

java语言当中的包机制:
包又称为package,java引入package这种语法机制主要是为了方便程序的管理,不同功能的类被分门别类放到不同的软件包中,易维护

定义package:
在java源程序的第一行上编写package语句
package只能编写一个语句,语法结构:package 包名;

包名的命名规范:

  1. 公司名称倒序 + 项目名 + 模块名 + 功能名
  2. 采用这种方式重名的几率较低,例如com.e1yu.project.user.service
  3. 包名全部小写,包名也是标识符,必须遵守标识符的命名规则
  4. 一个包名对应一个目录
package com.e1yu.javase.day01;  //4个目录,目录之间用点隔开
public class Test 
{
    public static void main(String[] args) 
    {
        System.out.println("Hello World!");
    }
}

如果继续通过javac Test.java编译,然后使用java Test运行程序,会报错java.lang.NoClassDefFoundError。使用了package机制之后,类名不再是原来的,所以运行就会报错

这时候需要做的是,创建com文件夹,在com文件夹下创建e1yu文件夹,在e1yu文件夹下创建javase文件夹,在javase文件夹下创建day01文件夹,将class文件放在day01文件夹:

Test.java
com
-e1yu
--javase
---day01
----Test.class

然后再Test.java目录下执行java com.e1yu.javase.day01.Test,就可以,如果我们不想创建那么多文件夹可以再编译的时候自动生成:

javac -d 编译之后存放路径 java源文件路径
javac -d . *.java
将当前路径.java编译之后存放到当前路径下

运行:
JVM类加载器classloader默认从当前路径加载

创建一个Test1文件:

package com.e1yu.javase.day01;  
public class Test1
{
    public static void main(String[] args) 
    {
        // 完整类名是:
       com.e1yu.javase.day01.Test t = new com.e1yu.javase.day01.Test();
       System.out.println(t);

       // Test和Test1在同一个软件包中,可以省略包名
       Test tt = new Test();
       System.out.println(tt);
    }
}

编译和运行:

javac -d . *.java

java com.e1yu.javase.day01.Test1

现在创建一个Test2:

package com.eyujun;  
import com.e1yu.javase.day01.Test;
import com.e1yu.javase.day01.*;
public class Test2
{
    public static void main(String[] args) 
    {
        // 创建Test对象
        com.e1yu.javase.day01.Test t = new com.e1yu.javase.day01.Test();
        System.out.println(t);
        
        // 简单写法
        Test tt = new Test();
        System.out.println(tt);

    }
}

编译运行:

javac -d . *.java

java com.eyujun.Test2

import语句用来完成导入其它类,同一个包下的类不需要导入,不在同一个包下的需要手动导入。语法格式:import 类名;/import 包名.*;,import语句编写在package语句之下,class语句之上

总结:
不在java.lang包下,并且不在同一个包下,需要使用import导入

public class Test01 {
    public static void main(String[] args) {
        // Test01 类和Scanner类不再同一个包下
        // java.util就是Scanner类的包名
        java.util.Scanner s = new java.util.Scanner(System.in);
        String str = s.next();
        System.out.println("您输入的字符串是:" + str);
    }
}

现在可以使用import导入:

import java.util.Scanner;
// import java.util.*;
public class Test01 {
    public static void main(String[] args) {
        // Test01 类和Scanner类不再同一个包下
        // java.util就是Scanner类的包名
        Scanner s = new Scanner(System.in);
        String str = s.next();
        System.out.println("您输入的字符串是:" + str);
    }
}

未经允许不得转载:作者:鳄鱼君, 转载或复制请以 超链接形式 并注明出处 鳄鱼君
原文地址:《Java基础 package和import》 发布于2020-08-09

分享到:
赞(0) 赏杯咖啡

评论 抢沙发

9 + 4 =


文章对你有帮助可赏作者一杯咖啡

支付宝扫一扫打赏

微信扫一扫打赏

Vieu4.6主题
专业打造轻量级个人企业风格博客主题!专注于前端开发,全站响应式布局自适应模板。
切换注册

登录

忘记密码 ?

您也可以使用第三方帐号快捷登录

Q Q 登 录
微 博 登 录
切换登录

注册