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

The public access modifier

A public instance variable can be accessed by any code in any method in any object that can obtain a reference to the object to which thevariable belongs. However, you must first gain access to the object in order to gain access to the variable. Normally you gain access to the object using areference to the object and then gain access to a member of the object such as a variable or method. This is indirection .

The private access modifier

A private instance variable can be accessed by any code in any method that is defined in the class of the object to which the variablebelongs.

The protected access modifier

A protected instance variable can be accessed by the same methods that can access a private instance variable plus methods in subclasses of the class of the object to which the instance variablebelongs.

I'm not going to try to explain the scope of internal and protected internal instance variables for the reasons that I discussed earlier.

Local variables

A local variable is declared inside a method or constructor. The lifetime of a local variable is limited to the time that control remains within the block ofcode in which the variable is declared. The scope of the variable is limited to the code block in which it is declared and then only to the statements followingthe declaration statement.

Class variables

A class variable belongs to a static class. I believe that the lifetime of a class variable is the same as the lifetime of the program in which the class isloaded.

It is not necessary to instantiate an object of the static class in order to access the variable. Assuming that you have access rights to the variable, youcan access it simply by joining the name of the class to the name of the variable using the dot operator.

More bad programming practice

I personally consider it bad programming practice to use class variables in most cases unless the variables are actually constants. However, there are a fewsituations where you have no choice but to use a non-constant class variable.

Reference variables

A reference variable contains a reference to an object or contains null. You typically use the value stored in a reference variable to locate an object inmemory. Once you locate the object, you typically use the dot operator along with the name of a variable or a method to ask the object to do something. Thisis called indirection .

Primitive variables

Primitive variables contain primitive values. No indirection is required to access the primitive value stored in a primitive variable.

An analogy

An analogy that I often use to explain the difference between a reference variable and a primitive variable goes as follows.

A primitive variable is analogous to your wallet.

If you get robbed and the robber takes your wallet, he has your money because the wallet contains your money just like a primitive variable contains aprimitive value.

A reference variable is analogous to your check book.

If the robber takes your checkbook, he doesn't have your money -- not yet anyway. The checkbook doesn't contain your money. Instead, it contains areference to your bank where your money is stored. A reference variable doesn't contain an object; it contains a reference to an object. Furthermore, two ormore reference variables can contain references to the same object but this is usually not a good idea.

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