2012年计算机二级Java类学习教程

来源:计算机等级考试    发布时间:2012-08-29    计算机等级考试视频    评论

6.2 类

  类是组成Java程序的基本要素。它封装了一类对象的状态和方法,是这一类对象的原型。在前几章的例子中,我们已经定义了一些简单的类,如Hellowo rldApp类 。

  public class HelloWorldApp{

  public static void main( String args[ ] ){

  System.out.println("Hello World !");

  }

  }

  可以看出,一个类的实现包含两部分的内容:

  classDeclaration {

  classBody

  }

  下面我们分别对每一部分详细讲述。

  6.2.1 类 声 明

  一 个 最 简 单 的 类 声 明 如 下 :

  class className {

  ……

  }

  例如:

  class Point{

  ……

  }

  同 时 ,在 类 声 明 中 还 可 以 包 含 类 的 父 类 ,类所实现的接口以及修饰符public、abstract或final。我们将分别在后面的几节中介绍 。

  6.2.2 类 体

  类 体 中 定 义 了 该 类 所 有 的 变 量 和 该 类 所 支 持 的 方 法 。 通 常 变 量 在 方 法 前 定 义 (并 不 一 定 要 求 ),如 下 所 示 :

  class className {

  memberVariableDeclarations

  methodDeclarations

  }

  下例定义了一个Point类 ,并且声明了它的两个变量x、y坐标,同时实现init()方法对x、 y赋 初 值 。

  例 6.1

  class Ponit {

  int x,y;

  void init(int ix, int iy){

  x=ix;

  y=iy;

  }

  }

  类中所定义的变量和方法都是类的成员。 对类的成员可以设定访问权限,来限定其它对象对它的访问,访问权限所以有以下几种:private, protected, public, friendly。 我们将在§6.6中详细讨论。同时对类的成员来说,又可以分为实例成员和类成员两种。 我们在§6.8中详细讨论 。

  6.2.3 成 员 变 量

  最 简 单 的 成 员 变 量 的 声 明 为 :

  type variableName;

  如 在 例 6.1中 所 声 明 的 变 量 ,int x,y;

  成员变量的类型可以是Java中的任意数据类型包括简单类型、数组、类和接口 。在一个类中,成员变量应该是唯一的,但是成员变量的名字可以和类中某个方法的名字相同,例如 :

  class Point{

  int x,y;

  int x(){

  return x;

  }

  }

  其 中 ,方 法 x()和 变 量 x具 有 相 同 的 名 字 。

  类的成员变量和在方法中所声明的局部变量是不同的,成员变量的作用域是整个类,而局部变量的作用域只是方法内部。对一个成员变量,我们还可以限定它的访问权限(见6.6),用static限定它为类变量 (见 6.7),或者用以下的修饰符限定:final:用来声明一个常量,如 :

  class FinalVar{

  final int CONSTANT = 50;

  ……

  }

  例中声明了常量CONSTANT, 并赋值为50。 对于用fina限定的常量 ,在程序中不能改变它的值 。通常常量名用大写字母 。

  6.2.4构造方法

  构造方法是一种特殊的方法。Java中的每个类都有构造方法,用来初始化该类的一个 新的对象。构造方法具有和类名相同的名称,而且不返回任何数据类型,在构造方法的实现中,也可以进行方法重写。

  例6.5

  class point {

  int x,y;

  point (){

  x=0; y=0;

  }

  point (int x, int y){

  this.x=x; this.y=y;

  }

  }

  上 例中,我们对类Point实现了两个构造方法,方法名均为Point,与类名相同。而且我们使 用了方法重写,根据不同的参数分别对点的x、y坐标赋与不同的初值 。

  回忆在例6.2中,我们曾用init()方法对点的x、y坐标进行初始化。 二者完成相同的功能,那么用构造方法的好处在哪里呢?

  当 用 运 算 符 new为 一 个 对 象 分 配 内 存 时 ,要 调 用 对 象 的 构 造 方 法 ,而当创建一个对象时,必须用new为它分配内存。因此用构造方法进行初始化避免了在生成对象后每次都要调用对象的初始化方法。如果没有实现类的构造方法,则Java运行时系统会自动提供缺省的构造方法,它没有任何参数 。

  另外,构造方法只能由new运算符调用。我们将在§6.3中进行详细介绍。对构造方法同样也有访问权限的限制(见§6.6)。

  6.2.5 finalize()方法

  在对对象进行垃圾收集前,Java运行时系统回自动调用对象的finalize()方法来释放系统资源,如打开的文件或socket。 该方法的声明必须如下所示 :

  protected void finalize() throws throwable

  finalize()方 法 在 类 java.lang.Object中实现。如果要在一个所定义的类中实现该方法以释放 该类所占用的资源(即要重载父类的finalize()方法),则在对该类所使用的资源进行翻译后,一 般要调用父类的finalize()方法以清除对象使用的所有资源,包括由于继承关系而获得的资源。通常的格式应为:

  protected void finalize () throws throwable{

  …… // clean up code for this class

  super. finalize();

  }

  该例中,通过super来调用其父类的 finalize()方法,有关super我们将在§6.4中讲述,对类java.lang.Ob-ject,我们也将在§6.4中讲述。

视频学习

我考网版权与免责声明

① 凡本网注明稿件来源为"原创"的所有文字、图片和音视频稿件,版权均属本网所有。任何媒体、网站或个人转载、链接转贴或以其他方式复制发表时必须注明"稿件来源:我考网",违者本网将依法追究责任;

② 本网部分稿件来源于网络,任何单位或个人认为我考网发布的内容可能涉嫌侵犯其合法权益,应该及时向我考网书面反馈,并提供身份证明、权属证明及详细侵权情况证明,我考网在收到上述法律文件后,将会尽快移除被控侵权内容。

最近更新

社区交流

考试问答