1:Java 类的定义形式
一个完整的 Java 类通常由下面六个部分组成:
包定义语句
import 语句
类定义{
成员变量
构造方法
成员方法
}
其中:只有类定义和“{}”是不可或缺的,其余部分都可以根据需要来定义。
下面分别来学习各个部分的基本规则,看看如何写 Java 的类。
2: 包
2.1:包 是什么
在 Java 中,包是类、接口或其它包的集合,包主要用来将类组织起来成为组,从而对类进行管理。
2.2:包 能干什么
包对于下列工作非常有用:
(1):包允许您将包含类代码的文件组织起来,易于查找和使用适当的类。
(2):包不止是包含类和接口,还能够包含其它包。形成层次的包空间。
(3):它有助于避免命名冲突。当您使用很多类时,确保类和方法名称的性是非常困难的。包能够形成层次命名空间,缩小了名称冲突的范围,易于管理名称。
为便于管理数目众多的类,Java 语言中引入了“包”的概念,可以说是对定义的 Java类进行“分组” ,将多个功能相关的类定义到一个“包”中,以解决命名冲突、引用不方便、安全性等问题。
就好似当今的户籍制度,每个公民除有自己的名字“张三” 、 “李四”外还被规定了他的户籍地。假定有两个人都叫张三,只称呼名字就无法区分他们,但如果事先登记他们的户籍分别在北京和上海,就可以很容易的用“北京的张三” 、 “上海的张三”将他们区分开来。如果北京市仍有多个张三,还可以细分为“北京市.海淀区的张三” 、 “北京市.西城区.平安大街的张三”等等,直到能惟一标识每个“张三”为止。
JDK 中定义的类就采用了“包”机制进行层次式管理,下图显示了其组织结构的一部分:
从图中可以看出,一个名为 java 的包中又包含了两个子包:io 包和 lang 包。lang 包中包含了 System, String, Object 三个类的定义。事实上,Java 包中既可以包含类的定义,也可以包含子包,或同时包含两者。
简而言之: 从 逻辑 上 讲 , 包 是一 组 相 关类 的集 合 ; 从 物 理 上 讲 , 同 包即 同 目 录。
2.1:JDK 中常 用的 包
java.lang----包含一些 Java 语言的核心类,包含构成 Java 语言设计基础的类。在此包中定义的最重要的一个类是“Object” ,代表类层次的根,Java 是一个单根系统,最终的根就是“Object” ,这个类会在后面讲到。
Java 并不具有“自由”的方法,例如,不属于任何类的方法,Java 中的所有方法必须始终属于某个类。经常需要使用数据类型转换方法。Java 在 Java.lang 包中定义了“包装对象”类,使我们能够实现数据类型转换。如 Boolean、Character、Integer、Long、Float 和Double,这些在后面会讲到。
此包中的其它类包括:
? Math——封装最常用的数学方法,如正弦、余弦和平方根。
? String,StringBuffer——封装最常用的字符串操作。
你不必显示导入该包,该 Java 包通常已经导入。
java.awt----包含了构成抽象窗口工具集(abstract window toolkits)的多个类,这些类被用来构建和管理应用程序的图形用户界面(GUI)。
javax.swing----完全 Java 版的图形用户界面(GUI)解决方案,提供了很多完备的组件,可以应对复杂的桌面系统构建。
java.net----包含执行与网络相关的操作的类,如 URL, Socket, ServerSocket 等。
java.io----包含能提供多种输入/输出功能的类。
java.util----包含一些实用工具类,如定义系统特性、使用与日期日历相关的方法。还有重要的集合框架。
2.2:Java 中 如何 表达 包 ——package 语 句
Java 语言使用 package 语句来实现包的定义。package 语句必须作为 Java 源文件的第一条语句, 指明该文件中定义的类所在的包。 若缺省该语句, 则指定为无名包, 其语法格式为:
package pkg1[.pkg2[.pkg3…]]; //“[]”表示可选Java 编译 器 把包对 应 于 文 件系 统 的目 录管 理,因此包也可以嵌套使用,即一个包中可以含有类的定义也可以含有子包,其嵌套层数没有限制。package 语句中,用‘.’来指明包的层次;
Java 语言要求包声明的层次和实际保存类的字节码文件的目录结构存在对应关系, 以便将来使用该类时能通过包名(也就是目录名)查找到所需要的类文件。简单地说就是包的层次结构需要和文件夹的层次对应。
注意:每 个源文 件 只 有一 个 包 的 声 明, 而 且包 名 应 该 全部 小 写 。
具体来说,程序员要做以下工作:
2.3:编译和 生 成 包
如果在程序 Test.java 中已定义了包 p1,就必须将编译生成的字节码文件 Test.class 保存在与包名同名的子目录中,可以选用下述两种方式之一:
采用下述命令编译:
javac Test.java
则编译器会在当前目录下生成 Test.class 文件, 再在适合位置手动创建一个名为 p1 的子目录,将 Test.class 复制到该 p1 目录下。
采用简化的编译命令,就是可以带包编译
javac -d destpath Test.java
归入该包的类的字节代码文件应放在 java 的类库所在路径的 destpath 子目录下。 现在包的相对位置已经决定了,但 java 类库的路径还是不定的。事实上,java 可以有多个存放类库的目录,其中的缺省路径为 java 目录下的 lib 子目录,你可以通过使用-classpath 选项来确定你当前想选择的类库路径。 除此之外, 你还可以在 CLASSPATH 环境变量中设置类库路径。 destpath 为目标路径, 可以是本地的任何绝对或相对路径。 则编译器会自动在 destpath目录下建立一个子目录 p1,并将生成的.class 文件自动保存到 destpath/p1 下。例如:
javac -d .\ Test.java
javac -d C:\test\ Test.java
2.4:带包 运行
运行带包的程序,需要使用类的全路径,也就是带包的路径,比如上面的那个程序,就使用如下的代码进行运行:
java p1.Test
2016年计算机二级考试Java入门教程:Java类的基本构成.doc