===============原创内容=================
Java Package 与 C++ namespace对比
根据我以前使用C++的经验,和看了上面Java package的说明,有以下几点感受:
- Java package 相当于C++中的 namespace
- 使用方式,package是在Java文件头用 import的方式引入,namespace是在c++文件中使用using namespace 名字;的方式使用。
- Java Package是为了管理多个类,namespace也是同样的作用。
===============转载内容=================
Java中的包:
包的作用:
- 区分相同名字的类。
- 控制访问范围。
- 良好的管理大量的类。
打包命令
package com.name
命名规范
小写字母
1、java.lang包:java的核心类库,包含了运行java程序必不可少的系统类,如基本数据类型、基本数学函数、字符串处理、线程、异常处理类等,系统缺省加载这个包
2、java.io包:java语言的标准输入/输出类库,如基本输入/输出流、文件输入/输出、过滤输入/输出流等等
3、java.util包:包含如处理时间的date类,处理变成数组的Vector类,以及stack和HashTable类
4、java.awt包:构建图形用户界面(GUI)的类库,低级绘图操作Graphics类,图形界面组件和布局管理如Checkbox类、Container类、LayoutManger接口等,以及界面用户交互控制和事件响应,如Event类
5、java.awt.image包:处理和操纵来自于网上的图片的java工具类库
6、java.wat.peer包:很少在程序中直接用到,使得同一个java程序在不同的软硬件平台上运行
7、java.applet包
8、java.net包:实现网络功能的类库有Socket类、ServerSocket类
9、java.corba包和java.corba.orb包
10、java.lang.reflect包:提供用于反射对象的工具
11、java.util.zip包:实现文件压缩功能
12、java.awt.datatransfer包:处理数据传输的工具类,包括剪贴板,字符串发送器等
13、java.awt.event包
14、java.sql包:实现JDBC的类库
15、java.rmi 提供远程连接与载入的支持。
16、java.security 提供安全性方面的有关支持。
我们可以引用这些包,也可以创建自己的包。
1、包的声明
为了声明一个包,首先必须建立一个相应的目录结构,子目录与包名一致。然后在需要放入该包的类文件开头声明包,形式为:
package 包名;
这样,在这个类文件中定义的所有类就都被装入到您所希望的包中了,例如:
package bookexample; class A{ …… } class B extends A{ …… } public class OverrideExample{ …… }
不同的程序文件内的类也可以同属于一个包,只要在这些程序文件前都加上同一个包的说明即可。
2、包的使用
在Java中,为了装载使用已编译好的包,通常可使用以下3种方法:
(1) 在要引用的类名前带上包名作为修饰符。例如:
bookexample.A objA = new bookexample.A();
其中bookexample是包名,A是包中的类名,objA是类的对象。
(2) 在文件开头使用import引用包中的类。例如:
import bookexample.A; class Example{ A objA = new A(); }
同样,bookexample是包名,A是包中的类,objA是创建的A类对象。
(3) 在文件前使用import引用整个包。例如:
import bookexample.*; class Example{ A objA=new A(); }
bookexample整个包被引入,A是包中的类,objA是创建的A类对象。
在使用包时,可以用点“.”表示出包所在的层次结构,用“.*”表示该目录结构下的所有内容。
需要指出的是,java.lang这个包无需显式引用,它总是被编译器自动调入。使用包时还要特别注意系统classpath路径的设置情况,它需要将包名对应目录的父目录包含在classpath路径中,否则编译时会出错,提示用户编译器找不到指定的类。