Lecture 02 Fundamentals of Object-Oriented Programming
What Are Objects? Software objects model real-world objects or abstract concepts. dog, bicycle, queue Real-world objects have states and behaviors. Dogs' states: name, color, breed, hungry Dogs' behaviors: barking, fetching How do software objects implement real-world objects? Use variables/data to implement states. Use methods/functions to implement behaviors. An object is a software bundle of variables and related methods.
Software Object Visual Representation Instance Variables Vs Instance Methods
Software Bicycle Visual Representation
What Are Classes? • A class is a blueprint or prototype defining the variables and methods common to all objects of a certain kind. • An object is an instance of a certain class. • After you have created a class, you must create an instance of it before you can use. • Class variables and class methods.
What Are Messages? Software objects interact and communicate with each other by sending messages to each other.
Components Of A Message The object to whom the message is addressed (YourBicycle) The name of the method to perform (changeGears) Any parameters needed by the method (lowerGear)
O-O Principles • Abstraction - take only important information • Encapsulation - hiding or combine data and operations on data in a single unit. • Inheritance - create new objects from existing objects. • Polymorphism-the ability to use the same expression to denote different operations.
Encapsulation • The objects' variables make up the center of the object. • Methods surround and hide the object's center from other objects. • Benefit of encapsulation: Modularity & Information Hiding. • For implementation or efficiency reasons, an object may wish to expose some of its variables or hide some of its methods.
Inheritance • Inheritance allows classes to be defined in terms of other classes. • Each subclass inherits variables and methods from its superclass. • Subclasses can add variables and methods to the ones they inherit from the superclass. • Subclasses can also override inherited methods and provide specialized implementations for those methods.
Class Hierarchy (Inheritance Hierarchy) Superclass vs Subclass. Base Class vs Derived Class.
Polymorphism and Overloading • Polymorphism allows the use of operators or functions in different ways, depending on the data they are operating on. • When an existing operator (eg. + or =) is given the capability to operate on a new data type, it is said to be overloaded. • Overloading is a kind of polymorphism; it is also an important feature of OOP. • Example of operator overloading and polymorphism) • the + operator know how to treat an integer and a float differently.
Benefits of OOP Reusability • Once written, created, and debugged, a class can be distributed to other programmers for use in their own programs. • Reusability facilitates component-based software design and implementation. • A programmer can also take an existing class and, without modifying it, add additional features and capabilities to it.
Benefits of OOP Creating New Data Types • Objects and classes give the programmer a convenient way to construct new data types. • Many features of C++ are intended to facilitate the creation of new data types. • The ability to create new data types leads to extensible languages and programs. • In C++, new data types can be built on top of existing (system or user-defined) data types.
C++ Program Structure #include <iostream.h> Header files preprocessor statements class Data int main( ) // VOID Members { ….. and Member { } Functions main( ) Variable cout << “Welcome to C++”; { …… declarations & return 0; valid C++ } statements }
Example 2 #include <iostream.h> Sum = a + b + c; int main ( ) cout << “ the sum is “<< sum; { int a , b, c, sum =0; cout << “ enter a value “<<endl; OTHER DATA TYPES cin >> a; Char int cout << “ enter b value “<<endl; long int float cin >> b; double cout << “ enter c value “<<endl; cin >> c;
Input / Output Cout - used for printing out the output Syntax : Cout << “Message if needed”<< variablename; << is called the insertion operator. Cin - used for getting a input from the keyboard Syntax: Cin >> variable name; >> is called the extraction operator
Other Points Remark statement - it is a non executable statement used for documentation // or /* statements */ escape sequences: n - new line t - horizontal tab r - carriage return a - bell - back slash ” - double quotations
Lecture02
Lecture02
Lecture02
Lecture02

Lecture02

  • 1.
    Lecture 02 Fundamentals of Object-Oriented Programming
  • 2.
    What Are Objects? Softwareobjects model real-world objects or abstract concepts. dog, bicycle, queue Real-world objects have states and behaviors. Dogs' states: name, color, breed, hungry Dogs' behaviors: barking, fetching How do software objects implement real-world objects? Use variables/data to implement states. Use methods/functions to implement behaviors. An object is a software bundle of variables and related methods.
  • 3.
    Software Object Visual Representation Instance Variables Vs Instance Methods
  • 4.
  • 5.
    What Are Classes? •A class is a blueprint or prototype defining the variables and methods common to all objects of a certain kind. • An object is an instance of a certain class. • After you have created a class, you must create an instance of it before you can use. • Class variables and class methods.
  • 6.
    What Are Messages? Softwareobjects interact and communicate with each other by sending messages to each other.
  • 7.
    Components Of AMessage The object to whom the message is addressed (YourBicycle) The name of the method to perform (changeGears) Any parameters needed by the method (lowerGear)
  • 8.
    O-O Principles • Abstraction- take only important information • Encapsulation - hiding or combine data and operations on data in a single unit. • Inheritance - create new objects from existing objects. • Polymorphism-the ability to use the same expression to denote different operations.
  • 9.
    Encapsulation • The objects'variables make up the center of the object. • Methods surround and hide the object's center from other objects. • Benefit of encapsulation: Modularity & Information Hiding. • For implementation or efficiency reasons, an object may wish to expose some of its variables or hide some of its methods.
  • 10.
    Inheritance • Inheritance allowsclasses to be defined in terms of other classes. • Each subclass inherits variables and methods from its superclass. • Subclasses can add variables and methods to the ones they inherit from the superclass. • Subclasses can also override inherited methods and provide specialized implementations for those methods.
  • 11.
    Class Hierarchy (Inheritance Hierarchy) Superclass vs Subclass. Base Class vs Derived Class.
  • 12.
    Polymorphism and Overloading •Polymorphism allows the use of operators or functions in different ways, depending on the data they are operating on. • When an existing operator (eg. + or =) is given the capability to operate on a new data type, it is said to be overloaded. • Overloading is a kind of polymorphism; it is also an important feature of OOP. • Example of operator overloading and polymorphism) • the + operator know how to treat an integer and a float differently.
  • 13.
    Benefits of OOP Reusability • Once written, created, and debugged, a class can be distributed to other programmers for use in their own programs. • Reusability facilitates component-based software design and implementation. • A programmer can also take an existing class and, without modifying it, add additional features and capabilities to it.
  • 14.
    Benefits of OOP Creating New Data Types • Objects and classes give the programmer a convenient way to construct new data types. • Many features of C++ are intended to facilitate the creation of new data types. • The ability to create new data types leads to extensible languages and programs. • In C++, new data types can be built on top of existing (system or user-defined) data types.
  • 15.
    C++ Program Structure #include <iostream.h> Header files preprocessor statements class Data int main( ) // VOID Members { ….. and Member { } Functions main( ) Variable cout << “Welcome to C++”; { …… declarations & return 0; valid C++ } statements }
  • 16.
    Example 2 #include <iostream.h> Sum = a + b + c; int main ( ) cout << “ the sum is “<< sum; { int a , b, c, sum =0; cout << “ enter a value “<<endl; OTHER DATA TYPES cin >> a; Char int cout << “ enter b value “<<endl; long int float cin >> b; double cout << “ enter c value “<<endl; cin >> c;
  • 17.
    Input / Output Cout- used for printing out the output Syntax : Cout << “Message if needed”<< variablename; << is called the insertion operator. Cin - used for getting a input from the keyboard Syntax: Cin >> variable name; >> is called the extraction operator
  • 18.
    Other Points Remark statement- it is a non executable statement used for documentation // or /* statements */ escape sequences: n - new line t - horizontal tab r - carriage return a - bell - back slash ” - double quotations