Chapter 5. Holding a Class Responsible

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.

Restricting Access to Class Members

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.

Warning

I know exactly what you procedural types out there are thinking: "Just make a rule that other classes ...

Get C# 2010 All-in-One For Dummies® now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.