In This Chapter
Letting the class protect itself through access control
Introducing the property, a specialized kind of method
Allowing an object to initialize itself via the constructor
Defining multiple constructors for the same class
Constructing static or class members
A class must be held responsible for its actions. Just as a microwave oven shouldn't burst into flames if you press the wrong key, a class shouldn't allow itself to roll over and die when presented with incorrect data.
To be held responsible for its actions, a class must ensure that its initial state is correct and then control its subsequent state so that it remains valid. C# provides both these capabilities.
Simple classes define all their members as
public. Consider a
Bank Account program that maintains a
balance data member to retain the balance in each account. Making that data member
public puts everyone on the honor system.
I don't know about your bank, but my bank isn't nearly so forthcoming as to leave a pile of money and a register for me to mark down every time I add money to or take money away from the pile. After all, I may forget to mark my withdrawals in the register.
Controlling access avoids little mistakes, such as forgetting to mark a withdrawal here or there, and manages to avoid some truly big mistakes with withdrawals.
I know exactly what you procedural types out there are thinking: "Just make a rule that other classes ...