<< Chapter < Page
  Xna game studio     Page 6 / 12
Chapter >> Page >

The methods in the interface should control access to, or provide a pathway to the private instance variables.

Not bound to the implementation

The interface should be generic in that it is not bound to any particular implementation. Hence, the class author should be able to change theimplementation without affecting the using programs so long as the interface doesn't change.

In practice, this means that the signatures of the interface methods should not change, and that the interface methods and their arguments should continueto have the same meaning even if the author of the class changes the internal implementation.

Preview

I will present and explain a simple C# console program named Probs01 that illustrates encapsulation and C# properties in the remainder of this module. Theoutput from the program is shown in Figure 1 .

Figure 1 . Output from the program named Props01.

text: Quit color: Redcolor: Bad color height: 20double height: 40 height: 0

Discussion and sample code

Will explain in fragments

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

Two classes

The program contains two separate class definitions. One class, named TargetClass , illustrates encapsulation and properties. The other class named Props01 instantiates an object of TargetClass and exercises its interface. For simplicity, both classes were defined in thesame physical file, but that is not a requirement.

Will switch between classes

In an attempt to help you understand how the program works, I will switch back and forth between the two classes showing the cause and effect relationshipbetween the code in one class and the code in the other class.

Listing 1 . Beginning of the class named Props01.

using System; namespace Props01{class Props01{ static void Main(string[]args){ TargetClass obj = new TargetClass();//Access a public instance variable obj.text = "Quit";Console.WriteLine("text: " + obj.text);

The declarations

The first two statements in Listing 1 apply equally to both classes. The first statement "uses" the namespace named System . This eliminates the requirement to qualify every reference to the Console class with the name of the namespace containing the Console class.

The second statement in Listing 1 establishes the namespace for the new program code, which is actually the name of the folder containing the sourcecode file.

Beginning of the class named Props01

The class definition for the class named Props01 begins with the keyword class shown in Listing 1 .

As you will see when we get to the end of the explanation, the only thing that is contained in this class is the Main method. The required signature for the Main method is shown in Listing 1 . I'm not going to explain all of the ramifications for the syntax of the method signature. At this point, I will simply tell you to memorize thesyntax.

The first statement in the Main method uses the new operator to instantiate an object of the class named TargetClass and save a reference to that object in a local reference variable named obj . This reference will be used later to access the object.

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