FANDOM


The introduction to object-oriented concepts in the lesson titled Object-oriented Programming Concepts used a bicycle class as an example, with racing bikes, mountain bikes, and tandem bikes as subclasses. Here is sample code for a possible implementation of a Bicycle class, to give you an overview of a class declaration. Subsequent sections of this lesson will back up and explain class declarations step by step. For the moment, don't concern yourself with the details.

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

}

A class declaration for a MountainBike class that is a subclass of Bicycle might look like this:

   public class MountainBike extends Bicycle {
   // 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 inherits all the fields and methods of Bicycle and adds the field seatHeight and a method to set it (mountain bikes have seats that can be moved up and down as the terrain demands).

Community content is available under CC-BY-SA unless otherwise noted.