原文链接地址:
原文:
What Is a Class?
A class is a blueprint or prototype from which objects are created. This section defines a class that models the state and behavior of a real-world object. It intentionally focuses on the basics, showing how even a simple class can cleanly model state and behavior.
什么是类?
类是对象的蓝图或者原型。这一部分会详细说明类是怎样模拟现实世界中对象的状态和行为的。它是基础,它会告诉你就是一个简单的类也能很好地模拟对象的状态和行为。
类是对象的蓝图或者原型。这一部分会详细说明类是怎样模拟现实世界中对象的状态和行为的。它是基础,它会告诉你就是一个简单的类也能很好地模拟对象的状态和行为。
在现实世界中,你会发现很多独特的对象具有相同的种类。比如成千上万辆自行车,制作方法和模型都是相同的。每一个辆自行车都是从相同的设备和图纸中制造出来的,所以具有相同的组件。在面向对象的术语中,我们就说这辆自行车是自行车这个对象的中的一个实例。类就是对象的蓝图。
下面给出自行车这个类的用法:
class Bicycle {
int cadence = 0;
int speed = 0;
int gear = 1;
void changeCadence( int newValue) {
cadence = newValue;
}
void changeGear( int newValue) {
gear = newValue;
}
void speedUp( int increment) {
speed = speed + increment;
}
void applyBrakes( int decrement) {
speed = speed - decrement;
}
void printStates() {
System.out.println( "cadence:"+cadence+ " speed:"+speed+ " gear:"+gear);
}
}
int cadence = 0;
int speed = 0;
int gear = 1;
void changeCadence( int newValue) {
cadence = newValue;
}
void changeGear( int newValue) {
gear = newValue;
}
void speedUp( int increment) {
speed = speed + increment;
}
void applyBrakes( int decrement) {
speed = speed - decrement;
}
void printStates() {
System.out.println( "cadence:"+cadence+ " speed:"+speed+ " gear:"+gear);
}
}
上面的Java语法可能对于来说是很新鲜的,但是这个类的设计是基于前面所讨论的自行车对象。字段cadence,speed和gear都是对象的状态,方法changeCadence,changeGear,seepUp等等定义了与外界的交互。
你可能注意到自行车类不包含main方法。这是因为上面的不是一个完整的应用程序,它仅仅是可能会在自行车对象中被使用的蓝图。它的功能是创建一个自行车的新对象,这个对象可以在其他的程序中使用。
下面这个BicycleDemo类就是创建两个单独的自行车对象,还要调用它们的方法:
class BicycleDemo {
public static void main(String[] args) {
// Create two different Bicycle objects
Bicycle bike1 = new Bicycle();
Bicycle bike2 = new Bicycle();
// Invoke methods on those objects
bike1.changeCadence(50);
bike1.speedUp(10);
bike1.changeGear(2);
bike1.printStates();
bike2.changeCadence(50);
bike2.speedUp(10);
bike2.changeGear(2);
bike2.changeCadence(40);
bike2.speedUp(10);
bike2.changeGear(3);
bike2.printStates();
}
}
public static void main(String[] args) {
// Create two different Bicycle objects
Bicycle bike1 = new Bicycle();
Bicycle bike2 = new Bicycle();
// Invoke methods on those objects
bike1.changeCadence(50);
bike1.speedUp(10);
bike1.changeGear(2);
bike1.printStates();
bike2.changeCadence(50);
bike2.speedUp(10);
bike2.changeGear(2);
bike2.changeCadence(40);
bike2.speedUp(10);
bike2.changeGear(3);
bike2.printStates();
}
}
其打印的结果是:
cadence:50 speed:10 gear:2
cadence:40 speed:20 gear:3
本文转自 sundunjam 51CTO博客,原文链接:http://blog.51cto.com/sunspot/132583,如需转载请自行联系原作者