<< Chapter < Page | Chapter >> Page > |
For our purposes, an abstract data type is a new type (not intrinsic to the C# language). It is not one of the primitive data types that are built into theprogramming language such as sbyte , short , int , long , float , double , etc.
The distinction in the previous paragraph is very important. The data representation and behavior of the intrinsic or primitive types is already knownto the compiler and cannot normally be modified by the programmer.
The representation and behavior of an abstract type is not known to the compiler until it is defined by the programmer and presented to the compiler inan appropriate manner.
C# programmers define the data representation and the behavior of a new type (present the specification to the compiler) using the keyword class . In other words, the keyword class is used to convert the specification of a new type into something that the compiler can work with; aset of plans as it were. To define a class is to go from the abstract to the concrete.
Once the new type (class) is defined, one or more objects of that type can be brought into being (instantiated, caused to occupy memory).
Once instantiated, the object is said to have state and behavior . The state of an object is determined by the current values of the data that itcontains. The behavior of an object is determined by its methods.
For example, if we think of a GUI Button as an object, it is fairly easy to visualize the object's state and behavior.
A GUI Button can usually manifest many different states based on size, position, depressed image, not depressed image, label, etc. Eachof these states is determined by data stored in the instance variables of the Button object at any given point in time. (The combination of one or more instance variables that determine a particular state is oftenreferred to as a property of the object.)
Similarly, it is not too difficult to visualize the behavior of a GUI Button. When you click it with the mouse, some specific action usually occurs.
If you dig deeply enough into the C# class library , you will find that there is a class named Button in the System.Windows.Forms namespace. Each individual Button object in a C# Windows Forms Application is an instance of the C# class named Button . A Button object has a single constructor, dozens of methods, dozens of properties, and dozens of events.
Each Button object has instance variables, which it does not share with other Button objects. The values of the instance variables define the state of the button at any given time. Other Button objects in the same scope can have different values in their instance variables.Hence every Button object can have a different state.
Each Button object also has certain fundamental behaviors such as responding to a mouse Click event or responding to a GotFocus event.
Notification Switch
Would you like to follow the 'Xna game studio' conversation and receive update notifications?