5.1.1 类声明

5.1.1 类声明

类是Java的核心和本质,它是Java语言建立的基础,因为类定义了对象的本性。既然类是面向对象程序设计Java语言的基础,因此想要在Java程序中实现的每一概念,都必须封装在类之中。创建类通过关键字class进行。类定义的一般格式如下所示:

img136

1.类的修饰符用来说明类的特殊性质

它可分为三种:

1)访问控制符:public 、protected和private

public 、protected和private分别表示公共的、保护的和私有的。具体含义在5.3节作详细介绍。

2)抽象类说明符:abstract

抽象类定义了其他类的共同属性和行为。抽象类用作基类、派生出同一种类的特定类。抽象类还定义了其派生类的公共属性。

用abstract关键字说明的类不能定义实例(对象)。

例:创建抽象基类Shape

img137

也能说明抽象的方法。抽象方法的访问范围是public的。下列代码为Shape类说明了一个抽象方法。

img138

以上给出的抽象方法calculateArea()被Shape类的子类继承的。

子类Rectangle、Circle和Hexagon实现该方法的方式是不同的。

img139

在上例中,calculateArea()方法在Circle类中被覆盖。如果该方法没有被覆盖,该类会从其父类继承抽象方法。含有一个抽象方法的类就是抽象类。因此,不能创建Circle类的对象。所以在Circle类中必须覆盖calculateArea()方法。

3)最终类说明符:final

一个叫Password的类验证用户的登录。不希望任何人通过扩展类来改变它的功能。为了阻止继承,可以使用final说明符。例如:

img140

在JDK包中也能找到final类。例如,java.lang.String类已经被定义成final。这样做是因为安全性原因,确保了任何引用String类的方法均能得到实际的String类而不是被修改过的版本。

当类型说明符为final时,表示该类为最终类,最终类不能用来再派生子类。

2.class关键字

class关键字,在它的后面,应跟随新数据类型的名称。(注意不要把class写成Class)。父类名跟在extends 关键字后面,用来说明当前类是哪个已经存在类的子类,存在继承关系。继承是类与类之间的一种非常重要的关系。

3.接口名

接口名跟在implements关键字后面,用来说明当前类中实现了哪个接口定义的功能和方法。

接口是Java语言用来实现多重继承的一种特殊机制,我们将在后面详细介绍它的使用方法。