试题 百文网手机站

计算机二级入门教程:Java类的基本构成

时间:2021-03-17 14:10:37 试题 我要投稿

计算机二级入门教程:Java类的基本构成

  本文是百分网小编搜索整理的计算机二级入门教程:Java类的基本构成,包括了Java 类的定义形式、包、import等,供参考复习!想了解更多相关信息请持续关注我们应届毕业生考试网!

  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: est Test.java

  2.4:带包 运行

  运行带包的程序,需要使用类的全路径,也就是带包的路径,比如上面的那个程序,就使用如下的代码进行运行:

  java p1.Test

  3:import

  为了能够使用某一个包的成员,我们需要在 Java 程序中明确导入该包。使用“import”语句可完成此功能。在 java 源文件中 import 语句应位于 package 语句之后,所有类的定义之前,可以有 0~多条,其语法格式为:

  import package1[.package2…].(classname|*);

  java 运行时环境将到 CLASSPATH + package1.[package2…]路径下寻找并载入相应的字节码文件 classname.class。 “*”号为通配符,代表所有的类。也就是说 import 语句为编译器指明了寻找类的途径。

  例,使用 import 语句引入类程序:TestPackage.java

  java 编译器默认为所有的 java 程序引入了 JDK 的 java.lang 包中所有的类(import java.lang.*;) ,其中定义了一些常用类:System、String、Object、Math 等。因此我们可以直接使用这些类而不必显式引入。但使用其它非无名包中的类则必须先引入、后使用。

  3.1:Java 类 搜寻方 式

  程序中的 import 语句标明要引入 p1 包中的 Test 类, 假定环境变量 CLASSPATH 的值为

  “.;C:jdk6lib;D:ex” , java 运行环境将依次到下述可能的位置寻找并载入该字节码

  文件 Test.class:

  .p1Test.class

  C:jdk6libp1Test.class

  D:exp1Test.class

  其中, “.”代表当前路径,如果在第一个路径下就找到了所需的类文件,则停止搜索。

  否则依次搜索后续路径,如果在所有的路径中都未找到所需的类文件,则编译或运行出错。

  4: 访问修饰 符

  Java 语言允许对类中定义的各种属性和方法进行访问控制, 即规定不同的保护等级来限制对它们的使用。为什么要这样做?Java 语言引入类似访问控制机制的 目的 在 于实 现 信息的 封 装 和 隐藏。 Java 语言为对类中的属性和方法进行有效地访问控制, 将它们分为四个等级:private, 无修饰符, protected, public,具体规则如下:

  变量和方法可以处于四个访问级别中的一个:公共,受保护,无修饰符或私有。类可以在公共或无修饰级别。

  变量、方法或类有缺省(无修饰符)访问性,如果它没有显式受保护修饰符作为它的声明的一部分的话。这种访问性意味着,访问可以来自任何方法,当然这些方法只能在作为对象的同一个包中的成员类当中。

  以修饰符 protected 标记的变量或方法实际上比以缺省访问控制标记的更易访问。 一个protected 方法或变量可以从同一个包中的类当中的任何方法进行访问, 也可以是从任何子类中的任何方法进行访问。 当它适合于一个类的子类但不是不相关的类时, 就可以使用这种受保护访问来访问成员。