<< Chapter < Page | Chapter >> Page > |
For example, you might incorporate a Cockpit object, a LandingGear object, a Propeller object, etc. Then, (even though it wouldn't be good grammar), you could say than an object ofyour Airplane class "has a" Cockpit object, "has a" LandingGear object, etc. This is often referred to as a HASA relationship. For example, an airplane ISA airship andHASA cockpit.
A little earlier I explained an airship hierarchy involving an Airship class, a Balloon class, and an Airplane class. I will present and explain a sample program that implements that hierarchy. The output from the program is shown in Figure 1 . I will refer back to Figure 1 in the paragraphs that follow.
Figure 1 . Output from the program named Airship01.
Balloon
range = 5 milesaltitude = 500 feet
passenger capacity = 5lift media = Hot Air
Airplanerange = 5000 miles
altitude = 35000 feetcargo capacity = 20000 pounds
engine type = jet
I will explain this program in fragments. A complete listing of the program is provided in Listing 4 near the end of the module.
This program consists of four class definitions:
The Airship class defines properties that are common to machines that fly:
The Balloon class extends the Airship class and defines properties that are peculiar to airships that are lighter than air:
The Airplane class extends the Airship class and defines properties that are peculiar to airplanes:
The Driver class instantiates objects of the Balloon class and the Airplane class and exercises their set and get methods.
Listing 1 shows the Airship class in its entirety.
Listing 1 . The Airship class.
//Define common properties in the base class.
class Airship {private int rangeData = 0;
private int altitudeData = 0;public int range {
get {return rangeData;
}//end getset {
rangeData = value;}//end set
}//end range propertypublic int altitude {
get {return altitudeData;
}//end getset {
altitudeData = value;}//end set
}//end altitude property}//end class Airship
There is nothing in Listing 1 that you haven't seen in earlier modules. This class provides set and get methods for two properties named range and altitude .
Listing 2 shows the Balloon class in its entirety.
Listing 2 . The Balloon class.
//Define unique properties in the subclass.
class Balloon : Airship {private int passengerCapacityData;
private String liftMediaData;public int passengerCapacity {
get {return passengerCapacityData;
}//end getset {
passengerCapacityData = value;}//end set
}//end passengerCapacity propertypublic String liftMedia {
get {return liftMediaData;
}//end getset {
liftMediaData = value;}//end set
}//end liftMedia property}//end Balloon class
The only thing in Listing 2 that is new to this module is the colon that appears between the words Balloon and Airship on the second line. This is the C# way of specifying that the class named Balloon extends or inherits from the class named Airship . In this case, the Balloon class is the subclass or derived class and the Airship class is the superclass or base class, depending on which flavor of jargon you prefer.
Notification Switch
Would you like to follow the 'Xna game studio' conversation and receive update notifications?