【JavaSE系列-基础篇2】——面向对象编程概念之类

来源:互联网 发布:域名转让协议 编辑:程序博客网 时间:2024/06/08 07:03

类是创建对象的原型或者蓝图。本节定义了一个类,用于对现实世界对象的状态和行为进行建模。它有意地集中在基础上,显示一个简单类的状态和行为。

在现实世界中,你经常会发现许多独立的对象都是一样的。可能有成千上万的自行车存在,所有的都是相同的型号和品牌。每个的自行车都是有相同的蓝图或者是包含相同的组件创建的。在面向对象的术语中,我们说你的自行车是自行车物体的一个实例。类是创建单个对象的蓝图。

以下的自行车类是自行车的一种可能实施方式:

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);    }}

Java编程语言的语法对于你来说可能是新的,但是类的设计是基于在前面的自行车对象章节中讨论过了。节奏,速度和档位代表着对象的状态,方法(提高速度,改变档位,改变节奏)定义与外界的交互。

你可能注意到了,自行车类,不包含main方法。这是因为它不是一个完成的应用程序。这只是可能在一个应用程序中用到的自行车的蓝图。创建和使用自行车对象的职责属于你的应用程序中的其他类。这里有一个BicycleDemo类,创建了两个独立的Bicycle对象,并调用他们的方法:

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();    }}

该测试的输出打印两辆自行车的踏板节奏,速度和档位:

cadence:50 speed:10 gear:2cadence:40 speed:20 gear:3
原创粉丝点击