- 公司名称倒序 + 项目名 + 模块名 + 功能名
- 采用这种方式重名的几率较低,例如com.e1yu.project.user.service
- 包名全部小写,包名也是标识符,必须遵守标识符的命名规则
- 一个包名对应一个目录
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);
}
}
声明:1. 本站所有资源来源于用户上传和网络,因此不包含技术服务请大家谅解!如有侵权请邮件联系客服!
2. 本站不保证所提供下载的资源的准确性、安全性和完整性,资源仅供下载学习之用!如有链接无法下载、失效或广告,请联系客服处理!
3. 您必须在下载后的24个小时之内,从您的电脑中彻底删除上述内容资源!如用于商业或者非法用途,与本站无关,一切后果请用户自负!
2. 本站不保证所提供下载的资源的准确性、安全性和完整性,资源仅供下载学习之用!如有链接无法下载、失效或广告,请联系客服处理!
3. 您必须在下载后的24个小时之内,从您的电脑中彻底删除上述内容资源!如用于商业或者非法用途,与本站无关,一切后果请用户自负!