In the previous two chapters, you investigated a number of core syntactical constructs that are commonplace to any .NET application you may be developing. Here, you will begin your examination of the object-oriented capabilities of C#. The first order of business is to examine the process of building well-defined class types that support any number of constructors. Once you understand the basics of defining classes and allocating objects, the remainder of this chapter will examine the role of encapsulation. Along the way you will understand how to define class properties as well as the role of static members, object initialization syntax, read-only fields, constant data, and partial classes.