170 likes | 182 Views
Learn about the fundamental concepts of object-oriented programming (OOP) in C++, including classes, constructors, member functions, and the advantages of OOP such as reusability, containment, and inheritance.
E N D
CPS120: Introduction to Computer Science Lecture 16A Object-Oriented Concepts
The Procedural Paradigm • The functions and algorithms are the focus, with data viewed as something for the functions to manipulate
Object-Oriented Paradigm • Data should be placed inside the objects and that these objects should communicate with each other in the form of messages
OOP • Object-oriented programming (OOP) is the process of developing programs using the object-oriented paradigm
Classes • The definition of an object is know as a class • It is similar to using basic data structures in C++ • When you declare an object, you are said to have instantiated it (given it instances) • Objects are members of a class • Paul Millis, George Bush and George Washington being members of the human being class • The design of a class is as important as its implementation
Including Classes in C++ • For classes, the #include directive uses different punctuation for header (.h) files • Quotation marks are used when the header file is a source file in the same location as the program source code • Angle brackets are used when the header file is one of the compiler's pre-compiled library functions
Using Header Files for Classes • Header files normally contain declarations of variables, functions and classes, but not implementations of the functions and classes
Designing a Class • Think in an object-oriented way • E.g. an answering machine encapsulates the functions of an answering machine with the data (messages). • The buttons are the equivalent of sending messages to the machine
Defining a Class • Functions and variables that are prototyped and declared in a class definition are called members
Public vs Private • Private cannot be accessed outside the object • Public: Can have access to all the variables and functions
Constructors • Allow all data encapsulated within an object to be initialized to preset values so that errors can be avoided
Member Functions • Provide a way for a programmer to pass data to and get data from an object • Implemented like a normal C++ function • Except -- The class name and the scope-resolution operator (: :) precede the function name • circle : : circle() // default constructor
OOP Advantages: Reusability • Reusability is a major benefit of object-oriented programming
OOP Advantages: Containment • Containment is a term used to describe an object that contains one or more objects as members (Passes the 'has-a' rule)
OOP Advantages: Inheritance • Inheritance is the term used to describe an object that inherits properties from another object (Passes the 'is-a' rule) • The class from which an object inherits properties is called a parent class or base class • The class that inherits the properties is called a child class or derived class
Multi-level Inheritance • Inheritance can be multi-level (i.e. from grandparents)
Multiple Inheritance • Objects can inherit properties form multiple objects • Multiple inheritance should be used sparingly