包的概念
包主要用于将不同功能的文件进行分割。之前编译的class文件都保存在同一目录中,如果出现了同名文件,那么就会发生文件被覆盖问题,而要解决文件名冲突问题就必须设置不同的目录,所以包实际上指的就是文件夹,在Java中使用package关键字来定义包,此语句必须写在java源文件首行。
定义包
package com.miss.demo //定义程序所在的包
public class Hello{
public static void main(String args[]){
System.out.print("Hello");
}
}
当程序中出现包的定义后,如果在编译时,比必须使生成的Hello.class保存在指定目录下:com\miss\demo目录下。在JDK中提供了以下两种命令自动打包编译指令:
- 打包编译:javac -d .Hello.class
-d:生成目录,根据package定义生成
.:设置保存的路径,如果为.则表示在当前路径下生成 - 在解释程序时不需要进入包里面,应该在包外面输入类的完整名称:包.类
java com.miss.demo.Hello
包的导入
使用包可以将一个完整的程序拆分成不同文件进行分别保存,但是在不同包之间可能需要进行互相访问,此时就需要使用包的导入:import语句
package com.miss.demo1;//定义包
import com.miss.demo.Hello;//导入需要的类
import com.miss.demo.*;//使用通配符导入
public class Text{
public static void main(String args[]){
//此时可以直接使用demo中的Hello类
}
}
如果存在多个java源文件互相调用,为了解决编译顺序问题,可以使用通配符操作:javac -d . *.java
系统常见包
- java.lang:基本的包
- java.util:工具包,一些常用的类库、日期操作等
- java.text:提供文本处理类库
- java.sql:数据库操作包
- java.net:网络编程
- java.io:输入、输出及文件操作处理
- java.awt:GUL开发
- java.swing:图形界面开发,比awt要轻量
jar命令
使用jar命令针对*.class文件进行压缩,相当于打包操作。
- -c:创建一个新文件
- -v:生成标准的压缩信息
- -f:由用户自己指定一个*.java的文件名称
jar -cvf my.jar com
//就会将com目录打包压缩成一个jar文件
访问控制权限
- private:在同一类中访问
- default:在同一包中访问
- protected:在不同包的子类中访问
- public:所有都可以访问
异常
java对异常处理提供了3个关键字:try、catch、finally
try{
//可能出现异常的语句
} [catch (异常类型 对象)]{
//异常处理
} [catch (异常类型 对象)]{
//异常处理
} [finally]{
//不管是否出现异常,都执行
}
package com.miss.demo;
public class Text{
public static void main(String args[]){
try{
int i = 0/2;
} cath(ArithmenticException e){
System.out.print("出现异常了");
e.printStackTrace();//输出异常信息
}
}
}
throws关键字
throws关键字主要在方法定义上声明,表示此方法不进行异常处理,而是交给调用处处理。
class A{
public void print() throws Exception{ //此方法不处理异常
}
}
//需要要调用A类,则必须进行异常处理
//如果在主方法中使用throws则交给JVM处理
异常处理标准格式
package com.miss.demo;
class MyMath{
public static int div(int x,int y) throws Exception{
int result = 0;
try{
result = x / y;
} catch (Exception e){
throw e;
} finally {
//计算结束
}
return result;
}
}
可变参数
public static int add(int ... data){
for(int x = 0; x < data.length; x++){
System.out.println(x);
}
}
add(1,2,3);//可通过可变参数传递数组、参数等
add(new int []{1,2,3});
foreach循环
int data [] = new int []{1,2,3};
foreach(int x:data){
System.out.print(x);
}
枚举
枚举主要用于定义一组可以使用的类对象,使用enum关键字定义枚举类型。
enum Color{
RED、BLUE、GREEN;
}
Color red = Color.RED;//直接取得枚举对象