前言
本文是橙子出于兴趣爱好对Java官方教程的尝试翻译,几乎每日更新,感兴趣的朋友可以关注一下橙子;翻译过程中尽可能多的对一些关键词保留了英文原文,如果你想看最纯正的英文原版教材却又看不懂,可以试着来看一下橙子的翻译版啊,欢迎大家留言讨论,冲鸭!
更多相关文章点击阅读
Java官方教程目录2020最新版
Classes 类 & Declaring Classes 声明类
Classes 类
在之前的课程中,我们以自行车为例进行了面向对象概念的介绍,其中赛车,山地自行车和双人自行车为子类。下面是Bicycle类的一个实现样例,在后面的课程中将逐步的解释类的声明,现在不要担心细节。
public class Bicycle {
// the Bicycle class has
// three fields
public int cadence;
public int gear;
public int speed;
// the Bicycle class has
// one constructor
public Bicycle(int startCadence, int startSpeed, int startGear) {
gear = startGear;
cadence = startCadence;
speed = startSpeed;
}
// the Bicycle class has
// four methods
public void setCadence(int newValue) {
cadence = newValue;
}
public void setGear(int newValue) {
gear = newValue;
}
public void applyBrake(int decrement) {
speed -= decrement;
}
public void speedUp(int increment) {
speed += increment;
}
}
MountainBike类的类声明如下所示:
// the MountainBike subclass has
// one field
public int seatHeight;
// the MountainBike subclass has
// one constructor
public MountainBike(int startHeight, int startCadence,
int startSpeed, int startGear) {
super(startCadence, startSpeed, startGear);
seatHeight = startHeight;
}
// the MountainBike subclass has
// one method
public void setHeight(int newValue) {
seatHeight = newValue;
}
}
MountainBike继承了Bicycle类的所有字段和方法,并添加了seatHeigh字段和一种设置方法(山地自行车的座位可以根据地形要求上下移动)。
Declaring Classes 声明类
在前面我们用到的类的定义方式如下:
class MyClass {
// field, constructor, and
// method declarations
}
这是一种类声明。类主体(大括号之间的区域)包含了从类创建的对象的声明周期的所有方法:用于初始化对象的构造方法,提供类及其对象状态的字段的声明,以及实现类及其对象行为(behavior)的方法。
之前的类声明是最简短的,它仅包含类声明中必须的那些组件。你可以在类声明的开头提供有关该类的更多信息,例如其超类的名称,它是否实现任何接口等等。
class MyClass extends MySuperClass implements YourInterface {
// field, constructor, and
// method declarations
}
上面代码表示MyClass是MySuperClass的子类,并且它实现YourInterface接口。
你也可以在开始时添加像public或private之类的修饰符,因此类声明的开头可能会变得非常复杂。本课程稍后讨论修饰符public和private,这些修饰符确定其它哪些类可以访问MyClass。关于接口和继承的课程将解释如何及为什么在类声明中使用extends和implements关键字。
通常,类声明按顺序包含以下组件(components):
- 修饰符,例如public,private以及以后会遇到的其他修饰符。
- 类名称,首字母大写。
- 类的父类的名称(如果有的话),以extends关键字开头。一个类自能继承一个父类。
- 类实现的接口列表,以逗号分隔(如果有的话),并以关键字implements开头。一个类可以实现多个接口。
- 类主体,以大括号{}包围。