410 likes | 541 Views
Object Oriented Programming F3031. INTRODUCTION TO OOP. INTRODUCTION TO OOP. Objectives: Know the concept of OOP Know the difference between functional programming and OOP Know basic terminology in OOP Know the importance of OOP Know four design principles of OOP
E N D
Object Oriented ProgrammingF3031 INTRODUCTION TO OOP
INTRODUCTION TO OOP Objectives: • Know the concept of OOP • Know the difference between functional programming and OOP • Know basic terminology in OOP • Know the importance of OOP • Know four design principles of OOP • Know OOP programming languages
INTRODUCTION TO OOP • Object oriented programming is introduced as a new programming concept which should help one in developing high quality software. • It attempts to solve the problem with only one approach by dividing the problems in sub-modules and using different objects • Objects of the program interact by sending messages to each other.
INTRODUCTION TO OOP • Programming with objects is quite like working with real world objects. • It groups operations and data into modular units called objects. • These objects can be combined into structured networks to form a complete program, similar to how the pieces in a puzzle fit together to create a picture.
INTRODUCTION TO OOP • By breaking down complex software projects into small, self-contained and modular units, object orientation ensure that changes to one part of software project will not affect other portions of the software.
STRUCTURED vs. OO PROGRAMMING STRUCTURED PROGRAMMING: MAIN PROGRAM GLOBAL DATA FUNCTION 1 FUNCTION 2 FUNCTION 3 FUNCTION 4 FUNCTION 5
Structured Programming There are features of structured programming: • Emphasis is on doing things (algorithms) • Using function • Function & program is divided into modules • Every module has its own data and function which can be called by other modules. • Most of the functions share global data
Structured Programming(2) • Data move openly around the system from function to function • Functions transform data from one form to another • Employs top down approach in program design.
Object 2 Object 1 Data Data Function Function Object 3 Data Function OBJECT ORIENTED PROGRAMMING
OBJECT ORIENTED PROGRAMMING There are features of object oriented programming: • Emphasis is on data rather than procedure • Programs are divided into what are known as objects • Data structures are designed such that they characterize the objects. • Functions that operate on the data of an object are tied together in the data structure
OBJECT ORIENTED PROGRAMMING(2) • Data is hidden and cannot be accessed by external functions. • Objects may communicate with each other through functions. • New data and functions can be easily added whenever necessary • Follows bottom-up approach in program design.
Why OO is chose? Current problem of software: • Software is difficult to develop, maintain and modify. • Most software is over budget and delivered late. • Programmers still have to create software from the ground-up. OO introduces techniques that help: • Developing a more cost-effective and efficient software that will be delivered on time. • Adapt quickly to new changes or client demand.
Object-Oriented Programming Languages Pure OO Languages Simula • Simulation programming language • Found in the late 1960’s • By O.J. Dahl and Kristen Nygaard Smalltalk • Introduced in the early 1970’s • By Alan Kay • First successful object oriented language.
Object-Oriented Programming Languages Hybrid OO Languages C++, Eiffel, etc • Emerged in the mid 1980’s
The advantages of using OOP. OOP offers several advantages to both program designer and the user. Object orientation contributes to the solution of many problems associated with the development and quality software and lesser maintenance cost. The principles advantages are : • Through inheritance, we can eliminate redundant code and extend the use of existing class • We can build programs from the standard working modules that communicate width one another, rather than having to start writing the code from scratch. This leads to saving development time and higher productivity.
The principle of data hiding helps the programmer to build secure programs that cannot be invaded by code in other parts of program. • It is easy to partition the work in a project based on objects. • Object oriented system can be easily upgraded from small to large systems.
BASIC TERMINOLOGY OF OBJECT ORIENTED PROGRAMMING • Object • Class • Message • Object Communication
BASIC TERMINOLOGY OF OBJECT ORIENTED PROGRAMMING(2) The key concepts are: • Object -Directly relate to the real world entities. -Can be a person, thing or concept (a noun). -Like a “black box”, therefore all the implementation is hidden.
BASIC TERMINOLOGY OF OBJECT ORIENTED PROGRAMMING(3) • Object has a • Attribute - description of objects in a class • Method - an action performed by an object (a verb) • Identity (unique name)
BASIC TERMINOLOGY OF OBJECT ORIENTED PROGRAMMING(4) Example for attributes and methods Attributes: • manufacturer’s name • model name • year made • color • number of doors • size of engine • etc.
BASIC TERMINOLOGY OF OBJECT ORIENTED PROGRAMMING(5) Methods: • Define data items (specify manufacturer’s name, model, year, etc.) • Change a data item (color, engine, etc.) • Display data items • Calculate cost • etc.
BASIC TERMINOLOGY OF OBJECT ORIENTED PROGRAMMING (6) • Class • A generic definition for a set of similar objects. • Provides the specifications for the objects’ behaviors and attributes. • An abstraction of a real world entity.
BASIC TERMINOLOGY OF OBJECT ORIENTED PROGRAMMING(7) Object vs Class • object is created from a class. • object is considered as an instance of a class. • class is considered as a template from which objects are instantiated • can create an object or many objects from a class.
BASIC TERMINOLOGY OF OBJECT ORIENTED PROGRAMMING(8) Object vs Class Diagram 2: MyCar as an Object Diagram 1: Class Car
BASIC CONCEPT OF OBJECT ORIENTED PROGRAMMING(9) Messages Requests for the receiver objects to carry out the indicated method or behavior and return the result of that action to the sender objects
BASIC TERMINOLOGY OF OBJECT ORIENTED PROGRAMMING(10) • Object Communications • Objects communicate by sending messages
Design Principles of OOP Four main design principles of Object-Oriented Programming(OOP): • Abstraction • Encapsulation • Polymorphism • Inheritance
Abstraction • Data abstraction is a process to delete all unnecessary attributes and remain the necessary attributes to describe an object. • Object in a program is an abstraction from a real object (in real world). • Attributes characteristics, which can be seen. • Behaviours actions that are done to an object. • Figure 1.1 shows how data abstraction is done for class Student and Figure 1.2 for class Box.
Abstraction(2) CHARACTERISTIC/ATRRIBUTES BEHAVIOUR/METHOD OBJECT STUDENT CLASS STUDENT NAME, MATRIK NUMBER, ADDRESS, IC NUMBER ABSTRACTION CALCULATE_MARK (), DETERMINE_GRED(), PRINT_RESULT() FIGURE 1.1
Abstraction(3) CHARACTERISTIC/ATRRIBUTES BEHAVIOUR/METHOD OBJECT BOX CLASS BOX OBJECT BOX ABSTRACTION Length, width, depth Calculate_Volume() Calculate_Area() FIGURE 1.2
Abstraction(3) • Focus only on the important facts about the problem at hand • To design, produce and describe so that it can be easily used without knowing the details of how it works. Analogy: • When you drive a car, you don’t have to know how the gasoline and air are mixed and ignited. • Instead you only have to know how to use the controls. • Draw map
Encapsulation • Encapsulation is a process of tying together all data and methods that form a class and control the access to data by hiding its information. • It enables access to object just by using methods of that object. • It is one of the security features in object-oriented programming (OOP). • Figure 1.3 shows the concept of encapsulation for a class Student and Figure 1.4 for class Box.
Encapsulation(2) Student private : intmatricNum inticNum char name[30] char address[100] public : double calculate_mark() void determine_mark() void print_result() Box private : float length float width float depth public : float calculate_volume() float area() FIGURE 1.3 FIGURE 1.4
Encapsulation(3) • Also known as data hiding • Only object’s methods can modify information in the object. • Process of hiding the implementation details of an object. • Access to manipulate the object data is through its interface (operations/ functions). • Protects an object’s internal state from being corrupted by other programs.
Encapsulation(4) • Program maintenance is easier and less expensive because changes in the object data or implementation is only modified in one place • Allows objects to be viewed as black boxes.
Polymorphism • the same word or phrase can mean different things in different contexts • Analogy: • In English, bank can mean side of a river or a place to put money • move -
Inheritance • Inheritance—a way of organizing classes • Term comes from inheritance of traits like eye color, hair color, and so on. • Classes with properties in common can be grouped so that their common properties are only defined once. • Superclass – inherit its attributes & methods to the subclass(es). • Subclass – can inherit all its superclass attributes & methods besides having its own unique attributes & methods.
Superclass Vehicle An Inheritance Hierarchy Subclasses Automobile Motorcycle Bus Sedan Sports Car Luxury Bus School Bus What properties does each vehicle inherit from the types of vehicles above it in the diagram?