9.JavaSE_包的定义与使用_包的导入_系统常用包_访问控制权限_jar命令

1、包的定义与使用(文件夹)—package
包实际上就是一个文件夹。如:package www.roman.java;(在java文件首行使用即可)
package www.roman.java;//包的定义与使用
public class Test{
	public static void main(String[] args){
		System.out.println("hello world");
	}
}
//一旦程序出现包名称,那么*.class必须存在相应目录下。在JDK编译时使用配置参数

①.编译时需加上-d选项。
②打包编译命令:javac -d . 类名.java
-d:表示生成目录,根据package定义生成。
. :表示在当前所在目录生成子目录。

2、包的导入:import

编写简单Java类,本类需要被其他程序类所使用。

package www.roman.java.util;

public class Message{
	public void print(){
		System.out.println("[Message] Hello Package");
	}
}

导入包

package www.roman.java.test;
import www.roman.java.util.Message;//导入程序类

public class Test{
	public static void main(String[] args){
		Message msg = new Message();
		msg.print();
	}
}

正常情况下,Test类引用Message类,那么首先应编译Message类,而后才是Test类。此时,最好的方法是:
自动匹配编译顺序(在当前目录下按照主类的使用情况自动编译):javac -d . ./*.java


注意:类使用class和public class的区别:
①public class:文件名称必须与类名称保持一致,如果希望一个类被其他包访问,则必须定义为public class。
②class:文件名称可以与类名称不一致,在一个*.java中可以定义多个class,但是这个类不允许被其他包访问。


import 包.类---->只会导入一个类。
import 包.*------>导入包中的多个类。(这种 * 并不意味着将包中所有的类都导入,而是根据你的需求导入)


不同包但是类名相同时:

package www.roman.java.test;
public class Message{
	public void print(){
		System.out.println("[Message] Hello Java");
	}
}

Test同时导入两个包:

package www.roman.java.test;
import www.roman.java.util.*;//导入程序类
import www.roman.java.message.*;//导入程序类

public class Test{
	public static void main(String[] args){
		Message msg = new Message();
		msg.print();
	}
}

这时直接使用Message类会产生编译上的歧义。
此时应使用全名称定义:

www.roman.java.message.Message msg = new www.roman.java.message.Message();
3、系统常用包(了解)

(1)java.lang:系统常用基础包(String、Object、包装类),JDK1.1之后自动导入。


(2)java.util(重要):Java提供的工具程序包(集合类,ArrayList HashMap),需要手工导入。


(3)juc:java.util.concurrent:并发程序包

java.lang.reflect:java反射编程包
java.net:进行网络编程开发包
java.sql:进行数据库开发的支持包
java.io:IO编程开发包
java.awt(离不开windows平台)、java.swing:UI开发包,主要进行界面开发包,目前已经不用了。

4、访问控制权限:

private < default(包访问权限,仅在同一个包下访问) < protected(继承访问权限) < public

public:可以被所有其他类访问。
protected:自身、子类及同一个包中的类可以访问。
default:同一包中的类可以访问。
private:只能被自己访问和修改。

不同包中,继承权限仅供子类使用


总结:关于权限选择
①对于封装的描述90%使用private,只有10%会使用protected,这两个都叫封装。
②属性都使用private,方法都是用public。

封装性就是指private、default、protected三种权限的使用。

5、jar命令(important)

jar本质上也是一种压缩文件,里面保存的是*.class文件。要实现某一个功能模块,应把多个类形成压缩包提供给用户。


在JDK中提供实现jar文件操作的命令,只需要输入一个jar即可。常用参数如下:
①“c”:创建新档案
②“f”:指定档案文件名
③“v”:在标准输出中生成详细输出

编译源文件并打包

package www.bit.java.util;
 
public class Message {    
	public void print(){  
		System.out.println("Hello I am Message");      		 
	  }
}
打包进行程序编译:javac -d . Message.java
将生成的程序类打包为jar文件:jar -cvf Message.jar Message.class
打开后发现有一个META-INF文件夹,里面包含版本号等信息。

此时的Message.jar就包含我们需要的程序类。
编写程序调用Message.jar

package www.roman.java.testjar;
import www.bit.java.util.Message;

public class Testjar{
	public static void main(String[]  args){
		Message msg = new Message();
		msg.print();
	}
}

要想使用jar文件,还需要配置CLASSPATH,设置jar文件的加载路径才会生效。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值