<< Chapter < Page | Chapter >> Page > |
You can learn more about an assembly here . Frankly, I'm not absolutely certain at this time how to interpret the access levels of internal and protected internal . However, I believe that an assembly in C# is similar to a package in Java, and if so, thenI do know how to interpret these two access levels.
To a first approximation, you can probably guess what public and private mean. Public members are accessible by all code that has access to an object of the class. Private members are accessible only by members belonging to the class.
The protected keyword is used to provide inherited classes with special access to the members of their base classes.
In general, the user interface for a class consists of the public methods.
For a properly designed class, the class user stores, reads, and modifies values in the object's data by calling the public methods on a specific instance (object) of the class. (This is sometimes referred to assending a message to the object asking it to change its state).
Normally, if the class is properly designed and the implementation is hidden, the user cannot modify the values contained in the private instance variables ofthe object without going through the prescribed public methods in the interface.
C# has a special form of method, often called a set Accessor method. The use of this type of method makes it appear that an assignment is being madeto store a value in a private instance variable belonging to an object when in fact, the assignment operation is automatically converted to a call to a set Accessor method. I discuss this more fully in my earlier tutorial titled Learning C# and OOP, Properties, Part 1 . I will also show an example of a set Accessor method later.
C# also has a special form of method often called a get Accessor method that operates like a set Accessor method but in the reverse direction. A get Accessor method makes it appear that the value of a private instance variable can be obtained by referencing the name of the objectjoined to the name of the variable. In fact, that reference is automatically converted to a call to a get Accessor method.
An object-oriented design is not a good design by default. In an attempt to produce good designs, experienced object-oriented programmers generally agree oncertain design standards for classes. For example, the data members (instance variables) are usually private unless they are constants. The user interfaceusually consists only of public methods and includes few if any data members.
Of course, there are exceptions to every rule. One exception to this general rule is that data members that are intended to be used as symbolic constants aremade public and defined in such a way that their values cannot be modified.
Notification Switch
Would you like to follow the 'Xna game studio' conversation and receive update notifications?