The following
Bicycle
class is one possible implementation of a bicycle:
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); } }
cadence
, speed
, and gear
represent the object's state,
and the methods (changeCadence
, changeGear
, speedUp
etc.) define its interaction with the outside world.
You may have noticed that the Bicycle
class does not contain a main
method.
That's because it's not a complete application; it's just the blueprint for bicycles that might be used in an application.
The responsibility of creating and using new Bicycle
objects belongs to some other class in your application.
Here's a
BicycleDemo
class that creates two separate Bicycle
objects and invokes their methods:
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:2 cadence:40 speed:20 gear:3