The access modifiers public and private control access to a class's variables and methods. (In Section 9.15 and Chapter 10, we will introduce the additional access modifiers internal and protected, respectively.) As we stated in Section 9.2, the primary purpose of public methods is to present to the class's clients a view of the services the class provides (the class's public interface). Clients of the class need not be concerned with how the class accomplishes its tasks. For this reason, a class's private variables and methods (i.e., the class's implementation details) are not directly accessible to the class's clients.
Figure 9.3 demonstrates that private class members are not directly accessible outside the class. Lines 911 attempt to access directly private instance variables hour, minute and second of Time1 object time. When this application is compiled, the compiler generates error messages stating that these private members are not accessible. [Note: This application assumes that the Time1 class from Fig. 9.1 is used.]
Figure 9.3. Private members of class Time1 are not accessible.
1 // Fig. 9.3: MemberAccessTest.cs 2 // Private members of class Time1 are not accessible. 3 public class MemberAccessTest 4 { 5 public static void Main( string[] args ) 6 { 7 Time1 time = new Time1(); // create and initialize Time1 object 8 9 time.hour = 7; // error: hour has private access in Time1 10 time.minute = 15; // error: minute has private access in Time1 11 time.second = 30; // error: second has private access in Time1 12 } // end Main 13 } // end class MemberAccessTest |
|
Notice that members of a classfor instance, methods and instance variablesdo not need to be explicitly declared private. If a class member is not declared with an access modifier, it has private access by default. We always explicitly declare private members.
Referring to the Current Object s Members with the this Reference |
Preface
Index
Introduction to Computers, the Internet and Visual C#
Introduction to the Visual C# 2005 Express Edition IDE
Introduction to C# Applications
Introduction to Classes and Objects
Control Statements: Part 1
Control Statements: Part 2
Methods: A Deeper Look
Arrays
Classes and Objects: A Deeper Look
Object-Oriented Programming: Inheritance
Polymorphism, Interfaces & Operator Overloading
Exception Handling
Graphical User Interface Concepts: Part 1
Graphical User Interface Concepts: Part 2
Multithreading
Strings, Characters and Regular Expressions
Graphics and Multimedia
Files and Streams
Extensible Markup Language (XML)
Database, SQL and ADO.NET
ASP.NET 2.0, Web Forms and Web Controls
Web Services
Networking: Streams-Based Sockets and Datagrams
Searching and Sorting
Data Structures
Generics
Collections
Appendix A. Operator Precedence Chart
Appendix B. Number Systems
Appendix C. Using the Visual Studio 2005 Debugger
Appendix D. ASCII Character Set
Appendix E. Unicode®
Appendix F. Introduction to XHTML: Part 1
Appendix G. Introduction to XHTML: Part 2
Appendix H. HTML/XHTML Special Characters
Appendix I. HTML/XHTML Colors
Appendix J. ATM Case Study Code
Appendix K. UML 2: Additional Diagram Types
Appendix L. Simple Types
Index