Java 包
Java 采用包的概念来对相关的类进行管理。
包可以避免名称冲突,并且通过包名进行分类后,代码的维护性会有所提高。
包本质上就是一个个文件夹
以上都是 Java
的内置包,除了内置包,Java还支持自定义包。
Import
import
可以从指定的包中导入指定的类,如:
import java.util.Scanner;
或导入指定的包内所有内容
import java.util.*;
同个包下的类直接访问即可,无需导入。
Package
package
用于声明该代码存在于哪个包的那个位置,使用 Javac
编译时 .class
就会放在相对应的位置
一个类中只能声明一次 package
且只能在第一行代码声明
└── root
└── pack_name
└── MyPackClass.java
如:
package pack_name;
public class MyPackClass {
String str = "This is My Package Class";
}
包的命名规则及规范
命名规则:
- 只能包含数字、字母、下划线、
.
,不能以数字开头,不能是关键字或保留字
命名规范:
- 一般是
com.公司名称.项目名称.业务模块名
如: com.sina.crm.user
用户模块com.sina.crm.order
订单模块com.sina.crm.utils
工具类- 其文件分布格式是这样的:
–
└── com
└── sina
└── crm
└── user
└── ***.java...
└── order
└── ***.java
└── utils
└── ***.java
编译
发现很多教学,都是直接教使用 IDE
进行编译,并没有对手动编译进行说明,但是作为一名初学者,现阶段不建议使用集成度过高的 IDE
,你可以不使用手动编译,但你必须知道如何手动编译
对于使用了自建包的代码,有必要知道如何在不使用 IDE
的情况下手动编译
编译时需要 javac
从包开始直到源文件位置 如: com/sina/user/***.java
如果不指定编译后的位置那么会将这个源文件使用到的所有包都进行编译,并存放到对应的源文件路径下,如下图
如果使用 javac -d
指定了路径这会在指定的路径生成与源文件一样的包,里面存放编译好的 .class
文件
使用 java -d
编译需要手动编译每一个包里的类如:
CLASS_PATH 为你要将编译好的 .class 文件储存的路径
java -d CLASS_PATH com/user/Test.java com/xiaoming/Dog.java com/xiaoqiang/Dog.java
这样有些麻烦
如果你是 Linux
系统,可以使用 find
命令,找出所有是 .java
后缀的路径,然后将输出重定向到一个文件,我们再使用 javac -d CLASS_PATH @java_path.list
这是另外一种解决思路,如:
先进入到存放包的目录
cd 存放包的上一级目录
find ./ -name *.java > java_path.list
java -d CLASS_PATH @java_path.list
图解:
进入到存放包的目录
寻找 .java
源代码路径
这就是我们找到的源代码路径
开始编译
可以看到,编译完成后在你指定存放类文件的路径下会生成一个目录,我们查看一下这个目录
可以看到,它与我们原文件的储存样式是一模一样的
这是原文件
尝试运行
我们使用 java -classpath
指定我们存放类文件的路径,再在后面选择你要运行的类文件
Original: https://www.cnblogs.com/jwyqn/p/16280606.html
Author: 假文艺青年。
Title: Java 包、包的编译
原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/570030/
转载文章受原作者版权保护。转载请注明原作者出处!