Object Oriented Concepts
Object Orientation An Object oriented approach views systems and programs as a collection of interacting objects. An object is a thing in a computer system that is capable of responding to messages
The Idea of OOP The idea of OOP is to try to approach programming in a more natural way by grouping all the code that belongs to a particular object—such as a checking account or a customer—together
Objects Core to the idea of OOPs is the concept of an object. An object is anything that is relevant to your program A customer, an employee, Inventory, a database, a button, a form, a sale are all potential objects
Benefits of Objects More natural way to look at things Re-usability
Objects/Classes A class is a description of an object. This description can include attributes which describe the class It can also include “methods” which describe things the object can do. In programming an object is an actual instance of a class
Messages Object communicate among themselves by means of messages The also maintain “associative relationships” among themselves
A Class Diagram
Principles of OOP Abstraction Encapsulation Inheritance Polymorphism
Abstraction The idea of abstraction is that a class represents an “abstract” version of an object A customer class presents the abstract idea of what a customer is A sale class represents an abstract idea of what a sale is
Encapsulation Encapsulation refers to the idea that a class should contain all the properties and methods of an object It also means you should be able to use the object without knowing the details of how it is structured internally
Inheritance Inheritance means you can derive a new object from an existing one It also means that the new object will have access to (will inherit) the properties and methods from the parent object
Inheritance Generalization/ Specialization
Polymorphism Polymorphism means that objects descended from a particular types will behave appropriately For example (a listbox and a button are both descended from the same class called control—but they each will behave differently) Polymorphism is primarily implemented through overriding and overloading functions and operators
Relations Classes relate to each other in various ways We have already looked at inheritance Classes can also have a “binary” relation, in which one class calls another There is also a relation called composition in which one class is contained as a field in another class
Example of Composition