In Chapter 7, you saw that classes consist of fields and methods. Fields hold the state of the object, and methods define the object’s behavior.
In this chapter, you’ll explore how methods work in more detail. You’ve already seen how to create methods, and in this chapter you’ll learn about method overloading, a technique that allows you to create more than one method with the same name. This enables your clients to invoke the method with different parameter types.
This chapter also introduces properties. To clients of your class, properties look like member variables, but properties are implemented as methods. This allows you to keep your data members safe from outside interference, which is called data hiding, while providing your clients with convenient access to the state of your class.
Chapter 7 described the difference between value types (such as
long) and reference types. The most common value types are the “built-in” or “primitive” types, and the most common reference types are the user-defined types. This chapter explores the implications of passing value types to methods and shows how you can pass value types by reference, allowing the called method to act on the original object in the calling method.