Introduction to Object Oriented Programming “The World is Object-Oriented” -Alan Kay 1 JCa#de Moutaz Haddara Associate Professor Westerdals- Oslo School of Arts, Communication, & Technology
2 Agenda
Introduction – A Brief Programming History – OOP – Classes & Objects 3
4 Computer Programming An algorithm is a step-by-step process. A computer program is a step-by-step set of instructions for a computer. Every computer program is an algorithm.
5 Computer Programming The history of computer programming is a steady move away from machine-oriented views of programming towards concepts and metaphors that more closely reflect the way in which we ourselves see & understand the world
6 Programming Languages • Programming languages allow programmers to develop software. • The three major families of languages are: – Machine languages – Assembly languages – High-Level languages
7 Machine Languages • Comprised of 1s and 0s • The “native” language of a computer • Difficult to program – one misplaced 1 or 0 will cause the program to fail. • Example of code: 1110100010101 111010101110 10111010110100 10100011110111
8 Assembly Languages • Assembly languages are a step towards easier programming. • Assembly languages are comprised of a set of elemental commands which are tied to a specific processor. • Assembly language code needs to be translated to machine language before the computer processes it. • Example: ADD 1001010, 1011010
9 High-Level Languages • High-level languages represent a giant leap towards easier programming. • The syntax of HL languages is similar to English. • Example: grossPay = basePay + overTimePay • Interpreter – Executes high level language programs without compilation. • Historically, we divide HL languages into two groups: – Procedural languages – Object-Oriented languages (OOP)
10 Procedural Languages • Early high-level languages are typically called procedural languages. • Procedural languages are characterized by sequential sets of linear commands. The focus of such languages is on structure. • Examples include C, COBOL, Fortran, LISP, Perl, HTML, VBScript
11 Object-Oriented Languages • The focus of OOP languages is not on structure, but on modeling data. • Programmers code using “blueprints” of data models called classes. • Examples of OOP languages include C++, Visual Basic.NET and Java.
12 Early programming languages 1950s 1960s 1970s Algol68 Classic C Simula Pascal BCPL Lisp Fortran COBOL Algol60 PL1 Red==major commercial use Blue==will produce important “offspring”
13 Modern programming languages C++ Object Pascal Java95 C++98 Java04 Ada98 C# C++0x Lisp Python Smalltalk Fortran77 Ada Eiffel Simula67 COBOL89 PHP C89 Pascal PERL Visual Basic COBOL04 Javascript
• Simula is a name for two simulation programming languages, Simula I and Simula 67, developed in the 1960s at the Norwegian Computing Center in Oslo, by Ole-Johan Dahl and Kristen Nygaard. • Simula is considered the first object-oriented 14 programming language. • Simula was designed for doing simulations, and the needs of that domain provided the framework for many of the features of object-oriented languages today.
 Introduction – A Brief Programming History – OOP – Classes & Objects 15
16 OOP • OOP is mainly a program design philosophy. • OOP uses a different set of programming languages than old procedural programming languages (C, Pascal, etc.). • Everything in OOP is grouped as self sustainable "objects". Hence, you gain re-usability by means of four main object-oriented programming concepts.
17 OOP • In OOP programmers define not only the data type of a data structure, but also the types of operations/methods (functions) that can be applied to the data structure. • In this way, the data structure becomes an object that includes both data and functions (methods) in one unit. In addition, programmers can create relationships between one object and another. • For example, objects can inherit characteristics from other objects.
Object-Oriented Programming Languages 18 · Pure OO Languages Eiffel, Actor, Emerald, JADE, Obix, Ruby, Python, Scala, Smalltalk, Self. · Hybrid OO Languages Delphi/Object Pascal, C++, Java, C#, VB.NET, Pascal, Visual Basic, MATLAB, Fortran, Perl, COBOL 2002, PHP, ABAP, Ada 95.
19 OOP Key idea in object-oriented: The real world can be “accurately” described as a collection of objects that interact.
OOP Basic Terminology Object - usually a person, place or thing (a noun) Method - an action performed by an object (a verb) Property or attribute - Characteristics of certain object. Class - a category of similar objects (such as automobiles), does 20 not hold any values of the object’s attributes/properties
Introduction – A Brief Programming History – OOP – Classes & Objects 21
22 Classes and Objects • A class is a prototype, idea, and blueprint for creating objects. • An object is an instance of a class. • For example, in Java we define classes, which in turn are used to create objects • A class has a constructor for creating objects • Class is composed of three things: its name, attributes/properties, and methods.
23 Classes (objects) Objects: Instances of the class Methods: Functions of class Class Instance Properties: Belong to the object Class Properties: Belong to the class
24 Classes & Objects A class is a definition of objects with the same properties and the same methods.
25 Classes Example
26 Almost everything in the world can be represented as an object • A flower, a tree, an animal • A student, a professor • A desk, a chair, a classroom, a building • A university, a city, a country • The world, the universe • A subject such as CS, IS, Math, History, … • An information system, financial, legal, etc..
27 What Is an Object, again? An object is an instance of a class
More about objects • Informally, an object represents an entity, either 28 physical, conceptual, or software. – Physical entity – Conceptual entity – Software entity Truck Chemical Process Linked List
More formal definition of an “Object” 29 An object is a computational entity that: 1. Encapsulates some state 2. Is able to perform actions, or methods, on this state 3. Communicates with other objects via message passing
30 Classes & Objects Class PROPERTY Attribute or state METHOD Do something: function & procedure CAR PROPERTY Plate no: Color: Manufacturer: Model: Gear type: METHOD Moves forward Moves backward Moves right Moves left Stops “X” CAR AD47483 Blue Mercedes CLK Automatic
31 Classes & Objects Time hour minute void addMinutes( int m ) inTime Attributes: hour = 8 minute = 30 Methods: void addMinutes(int m) outTime Attributes: hour = 17 minute = 35 Methods: void addMinutes(int m) class objects
32 Class/Object Each copy of an object from a particular class is called an instance of the class.
33 Class/Object The act of creating a new instance of an class is called instantiation.
34 In short… • An Object is a Class when it comes alive! • Homo Sapien is a class, John and Jack are objects • Animal is a class “Snowball” the cat is an object • Vehicle is a class My neighbor's BMW is an object • Galaxy is a class, the MilkyWay is an object
35 Technical contrast between Objects & Classes CLASS OBJECT Class is a data type Object is an instance of Class. It generates OBJECTS It gives life to CLASS Does not occupy memory location It occupies memory location. It cannot be manipulated because it is not available in memory (except static class) It can be manipulated. Object is a class in “runtime”
36 Objects Need to Collaborate! • Objects are useless unless they can collaborate together to solve a problem. – Each object is responsible for its own behavior and status. – No one object can carry out every responsibility on its own. • How do objects interact with each other? – They interact through messages.
37 Object Interaction Message Object 3 Object 2 Object 1 Property Method Property Method Property Method
Example of Object Interaction • The OrderEntryForm wants Order to calculate the total NOK 38 value for the order. orderID date salesTotal tax shipDate calculateOrderTotal() Message OrderEntryForm Order The class Order has the responsibility to calculate the total NOK value.
39  OOP Basic Concepts – Encapsulation – Inheritance – Abstraction – Polymorphism
40 Encapsulation
41 Encapsulation • Is the inclusion of property & method within a class/object in which it needs to function properly. • Also, enables reusability of an instant of an already implemented class within a new class while hiding & protecting the method and properties from the client classes.
42 Encapsulation • The class is kind of a container or capsule or a cell, which encapsulate the set of methods, attributes and properties to provide its indented functionalities to other classes. • In that sense, encapsulation also allows a class to change its internal implementation without hurting the overall functioning of the system. • That idea of encapsulation is to hide how a class does its operations while allowing requesting its operations.
Example: • Let’s say we have a class called “Date” (day, month, year). And then you need to define another class called “Person” that has the following attributes (first name, last name, and birthdate). So in this case we can instantiate an object from class “Date” inside class “Person”. 43 Encapsulation in action
44 Encapsulation – Benefits  Ensures that structural changes remain local:  Changing the class internals does not affect any code outside of the class  Changing methods' implementation does not reflect the clients using them  Encapsulation allows adding some logic when accessing client's data  E.g. validation on modifying a property value  Hiding implementation details reduces complexity  easier maintenance 44
45  OOP Basic Concepts – Encapsulation – Inheritance – Abstraction – Polymorphism
46 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 in parent class. • Superclass – inherit its attributes & methods to the subclass(es). • Subclass – can inherit all its superclass attributes & methods besides having its own unique attributes & methods.
47 Inheritance • Inheritance allows child classes to inherit the characteristics of existing parent class • Attributes (fields and properties) • Operations (methods) • Child class can extend the parent class • Add new fields and methods • Redefine methods (modify existing behavior) • A class can implement an interface by providing implementation for all its methods 47
48 Inheritance • Expresses commonality among classes/objects • Allows code reusability • Highlights relationships • Helps in code organization
49 Inheritance
Derived class Derived class 50 Inheritance – Example Person +Name: String +Address: String Employee +Company: String +Salary: double Base class Student +School: String 50 +Name: String +Address: String +Name: String +Address: String
51 An Inheritance Hierarchy Vehicle Subclasses Superclass Automobile Motorcycle Bus Sedan Sports Car School Bus Luxury Bus
52 Example: Single Inheritance One class inherits from another. Account - balance - name - number + withdraw() + createStatement() Savings Checking Superclass (parent) Subclasses Inheritance Relationship Ancestor Descendents
53 Example: Multiple Inheritance • A class can inherit from several other classes. FlyingThing Animal Multiple Inheritance Airplane Helicopter Bird Wolf Horse Most modern languages don’t support multiple inheritance!
54  OOP Basic Concepts –Encapsulation – Inheritance – Abstraction – Polymorphism
55 Type of Classes Concrete Class Abstract Class Can be instantiated directly Can’t be instantiated directly
56 Abstraction • Abstraction is a design principle. • Is the process of removing characteristics from something in order to reduce it to a set of essential characteristics. • Through the process of abstraction, a programmer hides all but the relevant data about a class in order to reduce complexity and increase reusability. • Abstraction is a basic representation of a concept.
Abstraction • Abstraction allows programmers to represent complex 57 real world in the simplest manner. • It is a process of identifying the relevant qualities and behaviors an object should possess, in other word represent the necessary features without representing the back ground details • You should always use abstraction to ease reusability, and understanding for the design and enable extension. • When we design the abstract classes, we define the framework for later extensions.
58 Abstraction • An abstract class, which declared with the “abstract” keyword, cannot be instantiated. • It can only be used as a super-class for other classes that extend the abstract class. Abstract class is a design concept and implementation gets completed when it is being realized by a subclass.
59 Abstraction - type of classes Person DOB: Name: Address: Concrete Class Abstract Class Can be instantiated directly Can’t be instantiated directly Teacher Student DOB: Name: Address: GPA: Courses: Etc…: DOB: Name: Address: Specialization: Academic Title: Etc…: Can be instantiated directly
• An abstract class is a class that may not have any direct 60 Abstraction Abstract class Abstract operation Shape {abstract} draw () {abstract} Circle draw () Rectangle draw () instances. • An abstract operation is an operation that it is incomplete and requires a child to supply an implementation of the operation.
61  OOP Basic Concepts – Encapsulation – Inheritance – Abstraction – Polymorphism
• Encapsulation, Inheritance, and Abstraction concepts are very related to Polymorphism. 62 Polymorphism
63 Polymorphism • Polymorphisms is a generic term that means 'many shapes'. More precisely Polymorphisms means the ability to request that the same methods be performed by a wide range of different types of things. • In OOP, polymorphisms is a technical issue and principle. • It is achieved by using many different techniques named method overloading, operator overloading, and method overriding.
64 Polymorphism • An object has “multiple identities”, based on its class inheritance tree • It can be used in different ways
Polymorphism • In Java, two or more classes could each have a 65 method called output • Each output method would do the right thing for the class that it was in. • One output might display a number (output.number) in one class, whereas it might display a name (output.text) in another class.
66 Polymorphism • It is the ability to look at a class in its parent image. • Lets see the robot example throughout the following few slides
Polymorphism- Abstract class, again!!!! • It is a class that you cannot instantiate from, however, you use it to dominate and specify how the minimum requirements in an inherited classes should be. public abstract class Robot { public virtual abstract void Move() // abstract move needs } 67
68 public class LeggedRobot:Robot { public override void Move() { // actions of legged robot to move } }
69 public class WheeledRobot:Robot { public override void Move() { // actions of Wheeled robot to move } }
70 public void moveRobot(Robot A) { A.Move(); }
71 public moveAllRobots() { LeggedRobot lr = new LeggedRobot(); WheeledRobot wr = new WheeledRobot(); moveRobot(lr); moveRobot(wr); }
72 Polymorphism SBhiarpde Void Draw() C.Draw() T.Draw() S.Draw()
73 Concluding Remarks
74 Advantages of OOP • Code reuse & recycling • Improved software-development productivity • Improved software maintainability • Faster development • Lower cost of development • Higher-quality software • Encapsulation
75 Disadvantages of OOP • Steep learning curve • Could lead to larger program sizes • Could produce slower programs
76 OOP Suitability • Object oriented programming is good in complex projects or modular type of systems. It allows simultaneous system development teams and also could aid in agile system development environments like Xtreme Programming.
77 References MIT OpenCourseWare: http://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-01sc-introduction- to-electrical-engineering-and-computer-science-i-spring-2011/unit-1- software-engineering/object-oriented-programming Larman, C. (2012). Applying UML and Patterns: An Introduction to Object- Oriented Analysis and Design and Iterative Development, 3/e. Pearson Education India. http://docs.oracle.com/javase/tutorial/java/concepts http://en.wikipedia.org/wiki/Object-oriented_programming https://www.udacity.com/wiki/classes https://weblogs.java.net/blog/potty/archive/2014/01/20/introduction-object-oriented- programming-oop-part-i Lischner, Ray. "Introduction to Object-Oriented Programming." Exploring C++ 11. Apress, 2013. 239-244.
78 Thanks for your attention!

Introduction to Object Oriented Programming

  • 1.
    Introduction to ObjectOriented Programming “The World is Object-Oriented” -Alan Kay 1 JCa#de Moutaz Haddara Associate Professor Westerdals- Oslo School of Arts, Communication, & Technology
  • 2.
  • 3.
    Introduction – ABrief Programming History – OOP – Classes & Objects 3
  • 4.
    4 Computer Programming An algorithm is a step-by-step process. A computer program is a step-by-step set of instructions for a computer. Every computer program is an algorithm.
  • 5.
    5 Computer Programming The history of computer programming is a steady move away from machine-oriented views of programming towards concepts and metaphors that more closely reflect the way in which we ourselves see & understand the world
  • 6.
    6 Programming Languages • Programming languages allow programmers to develop software. • The three major families of languages are: – Machine languages – Assembly languages – High-Level languages
  • 7.
    7 Machine Languages • Comprised of 1s and 0s • The “native” language of a computer • Difficult to program – one misplaced 1 or 0 will cause the program to fail. • Example of code: 1110100010101 111010101110 10111010110100 10100011110111
  • 8.
    8 Assembly Languages • Assembly languages are a step towards easier programming. • Assembly languages are comprised of a set of elemental commands which are tied to a specific processor. • Assembly language code needs to be translated to machine language before the computer processes it. • Example: ADD 1001010, 1011010
  • 9.
    9 High-Level Languages • High-level languages represent a giant leap towards easier programming. • The syntax of HL languages is similar to English. • Example: grossPay = basePay + overTimePay • Interpreter – Executes high level language programs without compilation. • Historically, we divide HL languages into two groups: – Procedural languages – Object-Oriented languages (OOP)
  • 10.
    10 Procedural Languages • Early high-level languages are typically called procedural languages. • Procedural languages are characterized by sequential sets of linear commands. The focus of such languages is on structure. • Examples include C, COBOL, Fortran, LISP, Perl, HTML, VBScript
  • 11.
    11 Object-Oriented Languages • The focus of OOP languages is not on structure, but on modeling data. • Programmers code using “blueprints” of data models called classes. • Examples of OOP languages include C++, Visual Basic.NET and Java.
  • 12.
    12 Early programminglanguages 1950s 1960s 1970s Algol68 Classic C Simula Pascal BCPL Lisp Fortran COBOL Algol60 PL1 Red==major commercial use Blue==will produce important “offspring”
  • 13.
    13 Modern programminglanguages C++ Object Pascal Java95 C++98 Java04 Ada98 C# C++0x Lisp Python Smalltalk Fortran77 Ada Eiffel Simula67 COBOL89 PHP C89 Pascal PERL Visual Basic COBOL04 Javascript
  • 14.
    • Simula isa name for two simulation programming languages, Simula I and Simula 67, developed in the 1960s at the Norwegian Computing Center in Oslo, by Ole-Johan Dahl and Kristen Nygaard. • Simula is considered the first object-oriented 14 programming language. • Simula was designed for doing simulations, and the needs of that domain provided the framework for many of the features of object-oriented languages today.
  • 15.
     Introduction –A Brief Programming History – OOP – Classes & Objects 15
  • 16.
    16 OOP •OOP is mainly a program design philosophy. • OOP uses a different set of programming languages than old procedural programming languages (C, Pascal, etc.). • Everything in OOP is grouped as self sustainable "objects". Hence, you gain re-usability by means of four main object-oriented programming concepts.
  • 17.
    17 OOP •In OOP programmers define not only the data type of a data structure, but also the types of operations/methods (functions) that can be applied to the data structure. • In this way, the data structure becomes an object that includes both data and functions (methods) in one unit. In addition, programmers can create relationships between one object and another. • For example, objects can inherit characteristics from other objects.
  • 18.
    Object-Oriented Programming Languages 18 · Pure OO Languages Eiffel, Actor, Emerald, JADE, Obix, Ruby, Python, Scala, Smalltalk, Self. · Hybrid OO Languages Delphi/Object Pascal, C++, Java, C#, VB.NET, Pascal, Visual Basic, MATLAB, Fortran, Perl, COBOL 2002, PHP, ABAP, Ada 95.
  • 19.
    19 OOP Keyidea in object-oriented: The real world can be “accurately” described as a collection of objects that interact.
  • 20.
    OOP Basic Terminology Object - usually a person, place or thing (a noun) Method - an action performed by an object (a verb) Property or attribute - Characteristics of certain object. Class - a category of similar objects (such as automobiles), does 20 not hold any values of the object’s attributes/properties
  • 21.
    Introduction – ABrief Programming History – OOP – Classes & Objects 21
  • 22.
    22 Classes andObjects • A class is a prototype, idea, and blueprint for creating objects. • An object is an instance of a class. • For example, in Java we define classes, which in turn are used to create objects • A class has a constructor for creating objects • Class is composed of three things: its name, attributes/properties, and methods.
  • 23.
    23 Classes (objects) Objects: Instances of the class Methods: Functions of class Class Instance Properties: Belong to the object Class Properties: Belong to the class
  • 24.
    24 Classes &Objects A class is a definition of objects with the same properties and the same methods.
  • 25.
  • 26.
    26 Almost everythingin the world can be represented as an object • A flower, a tree, an animal • A student, a professor • A desk, a chair, a classroom, a building • A university, a city, a country • The world, the universe • A subject such as CS, IS, Math, History, … • An information system, financial, legal, etc..
  • 27.
    27 What Isan Object, again? An object is an instance of a class
  • 28.
    More about objects • Informally, an object represents an entity, either 28 physical, conceptual, or software. – Physical entity – Conceptual entity – Software entity Truck Chemical Process Linked List
  • 29.
    More formal definitionof an “Object” 29 An object is a computational entity that: 1. Encapsulates some state 2. Is able to perform actions, or methods, on this state 3. Communicates with other objects via message passing
  • 30.
    30 Classes &Objects Class PROPERTY Attribute or state METHOD Do something: function & procedure CAR PROPERTY Plate no: Color: Manufacturer: Model: Gear type: METHOD Moves forward Moves backward Moves right Moves left Stops “X” CAR AD47483 Blue Mercedes CLK Automatic
  • 31.
    31 Classes &Objects Time hour minute void addMinutes( int m ) inTime Attributes: hour = 8 minute = 30 Methods: void addMinutes(int m) outTime Attributes: hour = 17 minute = 35 Methods: void addMinutes(int m) class objects
  • 32.
    32 Class/Object Eachcopy of an object from a particular class is called an instance of the class.
  • 33.
    33 Class/Object Theact of creating a new instance of an class is called instantiation.
  • 34.
    34 In short… • An Object is a Class when it comes alive! • Homo Sapien is a class, John and Jack are objects • Animal is a class “Snowball” the cat is an object • Vehicle is a class My neighbor's BMW is an object • Galaxy is a class, the MilkyWay is an object
  • 35.
    35 Technical contrastbetween Objects & Classes CLASS OBJECT Class is a data type Object is an instance of Class. It generates OBJECTS It gives life to CLASS Does not occupy memory location It occupies memory location. It cannot be manipulated because it is not available in memory (except static class) It can be manipulated. Object is a class in “runtime”
  • 36.
    36 Objects Needto Collaborate! • Objects are useless unless they can collaborate together to solve a problem. – Each object is responsible for its own behavior and status. – No one object can carry out every responsibility on its own. • How do objects interact with each other? – They interact through messages.
  • 37.
    37 Object Interaction Message Object 3 Object 2 Object 1 Property Method Property Method Property Method
  • 38.
    Example of ObjectInteraction • The OrderEntryForm wants Order to calculate the total NOK 38 value for the order. orderID date salesTotal tax shipDate calculateOrderTotal() Message OrderEntryForm Order The class Order has the responsibility to calculate the total NOK value.
  • 39.
    39  OOPBasic Concepts – Encapsulation – Inheritance – Abstraction – Polymorphism
  • 40.
  • 41.
    41 Encapsulation •Is the inclusion of property & method within a class/object in which it needs to function properly. • Also, enables reusability of an instant of an already implemented class within a new class while hiding & protecting the method and properties from the client classes.
  • 42.
    42 Encapsulation •The class is kind of a container or capsule or a cell, which encapsulate the set of methods, attributes and properties to provide its indented functionalities to other classes. • In that sense, encapsulation also allows a class to change its internal implementation without hurting the overall functioning of the system. • That idea of encapsulation is to hide how a class does its operations while allowing requesting its operations.
  • 43.
    Example: • Let’ssay we have a class called “Date” (day, month, year). And then you need to define another class called “Person” that has the following attributes (first name, last name, and birthdate). So in this case we can instantiate an object from class “Date” inside class “Person”. 43 Encapsulation in action
  • 44.
    44 Encapsulation –Benefits  Ensures that structural changes remain local:  Changing the class internals does not affect any code outside of the class  Changing methods' implementation does not reflect the clients using them  Encapsulation allows adding some logic when accessing client's data  E.g. validation on modifying a property value  Hiding implementation details reduces complexity  easier maintenance 44
  • 45.
    45  OOPBasic Concepts – Encapsulation – Inheritance – Abstraction – Polymorphism
  • 46.
    46 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 in parent class. • Superclass – inherit its attributes & methods to the subclass(es). • Subclass – can inherit all its superclass attributes & methods besides having its own unique attributes & methods.
  • 47.
    47 Inheritance •Inheritance allows child classes to inherit the characteristics of existing parent class • Attributes (fields and properties) • Operations (methods) • Child class can extend the parent class • Add new fields and methods • Redefine methods (modify existing behavior) • A class can implement an interface by providing implementation for all its methods 47
  • 48.
    48 Inheritance •Expresses commonality among classes/objects • Allows code reusability • Highlights relationships • Helps in code organization
  • 49.
  • 50.
    Derived class Derivedclass 50 Inheritance – Example Person +Name: String +Address: String Employee +Company: String +Salary: double Base class Student +School: String 50 +Name: String +Address: String +Name: String +Address: String
  • 51.
    51 An InheritanceHierarchy Vehicle Subclasses Superclass Automobile Motorcycle Bus Sedan Sports Car School Bus Luxury Bus
  • 52.
    52 Example: SingleInheritance One class inherits from another. Account - balance - name - number + withdraw() + createStatement() Savings Checking Superclass (parent) Subclasses Inheritance Relationship Ancestor Descendents
  • 53.
    53 Example: MultipleInheritance • A class can inherit from several other classes. FlyingThing Animal Multiple Inheritance Airplane Helicopter Bird Wolf Horse Most modern languages don’t support multiple inheritance!
  • 54.
    54  OOPBasic Concepts –Encapsulation – Inheritance – Abstraction – Polymorphism
  • 55.
    55 Type ofClasses Concrete Class Abstract Class Can be instantiated directly Can’t be instantiated directly
  • 56.
    56 Abstraction •Abstraction is a design principle. • Is the process of removing characteristics from something in order to reduce it to a set of essential characteristics. • Through the process of abstraction, a programmer hides all but the relevant data about a class in order to reduce complexity and increase reusability. • Abstraction is a basic representation of a concept.
  • 57.
    Abstraction • Abstractionallows programmers to represent complex 57 real world in the simplest manner. • It is a process of identifying the relevant qualities and behaviors an object should possess, in other word represent the necessary features without representing the back ground details • You should always use abstraction to ease reusability, and understanding for the design and enable extension. • When we design the abstract classes, we define the framework for later extensions.
  • 58.
    58 Abstraction •An abstract class, which declared with the “abstract” keyword, cannot be instantiated. • It can only be used as a super-class for other classes that extend the abstract class. Abstract class is a design concept and implementation gets completed when it is being realized by a subclass.
  • 59.
    59 Abstraction -type of classes Person DOB: Name: Address: Concrete Class Abstract Class Can be instantiated directly Can’t be instantiated directly Teacher Student DOB: Name: Address: GPA: Courses: Etc…: DOB: Name: Address: Specialization: Academic Title: Etc…: Can be instantiated directly
  • 60.
    • An abstractclass is a class that may not have any direct 60 Abstraction Abstract class Abstract operation Shape {abstract} draw () {abstract} Circle draw () Rectangle draw () instances. • An abstract operation is an operation that it is incomplete and requires a child to supply an implementation of the operation.
  • 61.
    61  OOPBasic Concepts – Encapsulation – Inheritance – Abstraction – Polymorphism
  • 62.
    • Encapsulation, Inheritance,and Abstraction concepts are very related to Polymorphism. 62 Polymorphism
  • 63.
    63 Polymorphism •Polymorphisms is a generic term that means 'many shapes'. More precisely Polymorphisms means the ability to request that the same methods be performed by a wide range of different types of things. • In OOP, polymorphisms is a technical issue and principle. • It is achieved by using many different techniques named method overloading, operator overloading, and method overriding.
  • 64.
    64 Polymorphism •An object has “multiple identities”, based on its class inheritance tree • It can be used in different ways
  • 65.
    Polymorphism • InJava, two or more classes could each have a 65 method called output • Each output method would do the right thing for the class that it was in. • One output might display a number (output.number) in one class, whereas it might display a name (output.text) in another class.
  • 66.
    66 Polymorphism •It is the ability to look at a class in its parent image. • Lets see the robot example throughout the following few slides
  • 67.
    Polymorphism- Abstract class,again!!!! • It is a class that you cannot instantiate from, however, you use it to dominate and specify how the minimum requirements in an inherited classes should be. public abstract class Robot { public virtual abstract void Move() // abstract move needs } 67
  • 68.
    68 public classLeggedRobot:Robot { public override void Move() { // actions of legged robot to move } }
  • 69.
    69 public classWheeledRobot:Robot { public override void Move() { // actions of Wheeled robot to move } }
  • 70.
    70 public voidmoveRobot(Robot A) { A.Move(); }
  • 71.
    71 public moveAllRobots() { LeggedRobot lr = new LeggedRobot(); WheeledRobot wr = new WheeledRobot(); moveRobot(lr); moveRobot(wr); }
  • 72.
    72 Polymorphism SBhiarpde Void Draw() C.Draw() T.Draw() S.Draw()
  • 73.
  • 74.
    74 Advantages ofOOP • Code reuse & recycling • Improved software-development productivity • Improved software maintainability • Faster development • Lower cost of development • Higher-quality software • Encapsulation
  • 75.
    75 Disadvantages ofOOP • Steep learning curve • Could lead to larger program sizes • Could produce slower programs
  • 76.
    76 OOP Suitability • Object oriented programming is good in complex projects or modular type of systems. It allows simultaneous system development teams and also could aid in agile system development environments like Xtreme Programming.
  • 77.
    77 References MITOpenCourseWare: http://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-01sc-introduction- to-electrical-engineering-and-computer-science-i-spring-2011/unit-1- software-engineering/object-oriented-programming Larman, C. (2012). Applying UML and Patterns: An Introduction to Object- Oriented Analysis and Design and Iterative Development, 3/e. Pearson Education India. http://docs.oracle.com/javase/tutorial/java/concepts http://en.wikipedia.org/wiki/Object-oriented_programming https://www.udacity.com/wiki/classes https://weblogs.java.net/blog/potty/archive/2014/01/20/introduction-object-oriented- programming-oop-part-i Lischner, Ray. "Introduction to Object-Oriented Programming." Exploring C++ 11. Apress, 2013. 239-244.
  • 78.
    78 Thanks foryour attention!