<< 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.

Preview

The airship hierarchy

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

Discussion and sample code

Will explain in fragments

I will explain this program in fragments. A complete listing of the program is provided in Listing 4 near the end of the module.

Four class definitions

This program consists of four class definitions:

  • Airship
  • Balloon
  • Airplane
  • Driver

The Airship class defines properties that are common to machines that fly:

  • Range
  • Altitude

The Balloon class extends the Airship class and defines properties that are peculiar to airships that are lighter than air:

  • Passenger capacity
  • Lift Media (hot air, helium, or hydrogen)

The Airplane class extends the Airship class and defines properties that are peculiar to airplanes:

  • Cargo capacity
  • Engine type

The Driver class instantiates objects of the Balloon class and the Airplane class and exercises their set and get methods.

The Airship class

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 .

The Balloon class

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 new material

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.

Get Jobilize Job Search Mobile App in your pocket Now!

Get it on Google Play Download on the App Store Now




Source:  OpenStax, Xna game studio. OpenStax CNX. Feb 28, 2014 Download for free at https://legacy.cnx.org/content/col11634/1.6
Google Play and the Google Play logo are trademarks of Google Inc.

Notification Switch

Would you like to follow the 'Xna game studio' conversation and receive update notifications?

Ask