您的位置:首页 > 编程语言 > Java开发

JAVA学习笔记(三十一)

2011-09-24 12:35 253 查看
包及访问控制权限

1.1 大型程序开发

在java中,可以将一个大型项目的类分别独立出来,分门别类的寻到文件里,在将这些文件一起编译执行,如此的程序代码更易于维护。

多人开发共同开发一个项目的时候,为了避免名称重复而采用的措施,,就要用包。

1.2 包的概念

paceage是在使用多个类或者接口时候,为了避免名称重复而采用的措施,直接在程序中加入package关键字即可。

包的定义格式:

package 包名称.子包名称

package liuchao.demo01;//定义一个包

class Demo

{

public String getInfo(){

return "hello world!";

}

};

public class PackageDemo01

{

public static void main(String args[]){

System.out.println(new Demo().getInfo());

}

}

实际上定一包之后,类名称就是:包名称.类名称.

所谓的包实际上就是一个文件夹,一个*.class文件要保存在一个文件夹中。

既然包本身就是文件夹所以在java编译指令中提供了专门的打包编译指令。

在编译的时候加上参数。

打包编译:

javac -d . PackageDemo01.java

此时生成*.class文件之后,就可以直接访问了。

执行:>java liuchao.demo01.PackageDemo01

必须加上包名称

1.3 包的导入

当一个包的class文件需要使用另一个包的class文件时候就需要包的导入。

包的导入需要import语句完成

语法:import 包名称.子包名称.类名称;->手工导入所需要的类

import 包名称.子包名称.*;->由jVM自动加载所需要的类

如果一个类需要被外包访问,则此类一定需要定义为:public class

而且在一般开发中对于一个*.java文件中往往都只定义一个类:public class 。

问题:那么两种导入语句,哪一个性能更高呢?

import 包名称.子包名称.类名称;->手工导入所需要的类

import 包名称.子包名称.*;->由jVM自动加载所需要的类

实际上来说这两种的性能都是一样的,因为如果使用后者,是由JVM帮助用户判定需要导入的类,不需要的类,是不会被加载进来的。

1.4 系统常见包

java.lang 基本包

java.lang.reflect 反射机制的包 java.lang的子包

java.util 工具包 一些常用的类库都在此包中。

java.sql 数据库操作包 提供了各种数据库操作的类和接口

java.net 完成网络编程

java.io 输入输出处理

java.awt GUI

java.swing 此包用于建立图形用户界面

java.text 提供了一些文本的处理类库

1.5 jar命令的使用

一般情况下将这些由*.class文件压缩成一个jar(java archive file)文件供客户使用,如果要生成jar文件,直接使用JDK中bin目录里的jar.exe就可以将所有的类文件进行压缩。

直接输入jar即可

jar命令的主要参数:

“C”:创建新的文档

“V":生成详细的输出信息

”F“:指定存档的文件名

1.6 访问控制权限

在java中存在四种访问权限

private:可以定义方法,属性,定义的方法和属性不能被类的外部所看到。

default :可以在本包中的任意地方访问

protected: 保护,不同包的非子类不可以访问

public :公共的,都可以访问
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: