Chapter 6. Building Your Own Types with Object-Oriented Programming

This chapter is about making your own types using object-oriented programming (OOP). You will learn about all the different categories of members that a type can have, including fields to store data and methods to perform actions. You will use OOP concepts such as aggregation and encapsulation. You will also learn about C# 7 language features, such as tuple syntax support and out variables.

This chapter will cover the following topics:

  • Talking about OOP
  • Building class libraries
  • Storing data with fields
  • Writing and calling methods
  • Controlling how parameters are passed
  • Splitting classes using partial
  • Controlling access with properties and indexers

Talking about OOP

An object in the real world is a thing, such as a car or a person. An object in programming often represents something in the real world, such as a product or bank account, but can also be something more abstract.

In C#, we use class (usually) or struct (rarely) to define each type of object. You can think of a type as being a blueprint or template for an object.

  • Encapsulation is the combination of the data and actions that are related to an object. For example, a BankAccount type might have data, such as Balance and AccountName, as well as actions, such as Deposit and Withdraw. When encapsulating, you often want to control what can access those actions and the data.
  • Composition is about what an object is made of. For example, a car is composed of different parts, such as four wheels, several seats, an engine, and so on.
  • Aggregation is about what is related to an object. For example, a person could sit in the driver's seat and then becomes the car's driver.
  • Inheritance is about reusing code by having a subclass derive from a base or super class. All functionality in the base class becomes available in the derived class.
  • Abstraction is about capturing the core idea of an object and ignoring the details or specifics. Abstraction is a tricky balance. If you make a class more abstract, more classes would be able to inherit from it, but there will be less functionality to share.
  • Polymorphism is about allowing a derived class to override an inherited action to provide custom behavior.
..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset
3.129.211.165