Presentation is loading. Please wait.

Presentation is loading. Please wait.

Object-Oriented Principals Dwight Deugo Nesa Matic

Similar presentations


Presentation on theme: "Object-Oriented Principals Dwight Deugo Nesa Matic"— Presentation transcript:

1 Object-Oriented Principals Dwight Deugo (dwight@espirity.com) Nesa Matic (nesa@espirity.com) www.espirity.com

2 2 © 2003-2004, Espirity Inc. Additional Contributors None as of Septembe, 2004

3 3 © 2003-2004, Espirity Inc. Module Overview 1.Object-Oriented Principals

4 4 © 2003-2004, Espirity Inc. Module Road Map 1.Object-Oriented Principals  Objects  Classes, instances, fields and methods  Encapsulation  Polymorphism  Inheritance  Dynamic binding

5 5 © 2003-2004, Espirity Inc. What is Object-Oriented Technology? It is a technology that allows modeling of software as the real world  This is achieved through objects and interactions between them It is a way of thinking of software as reusable components  Every object is a component on its own and could be reused in different context

6 6 © 2003-2004, Espirity Inc. Why Use Object-Oriented Systems? Benefits of Object-Oriented systems:  Greater flexibility  Reusability of objects  Higher quality control  Lower maintenance

7 7 © 2003-2004, Espirity Inc. Developing Object-Oriented Software Software is modeled by objects  Software objects represent real-world objects Each object contains:  State, i.e., data  Behavior, i.e., methods/functions

8 8 © 2003-2004, Espirity Inc. Object-Oriented Software Developing object-oriented software is identifying:  Objects  Characteristics of individual objects  Relationships between objects Objects interact by sending messages to each other  Interacting objects make an object-oriented system

9 9 © 2003-2004, Espirity Inc. Objects and Loose Coupling Changing an object’s data does not lead to changes in an object’s external behavior  An object’s external interface stays the same  Promotes loose coupling between objects state behavior object1 state behavior object2 state behavior object3

10 10 © 2003-2004, Espirity Inc. Objects Every object has:  State  Behavior State represents data - what an object knows, or what an object contains Behavior represents what an object can do

11 11 © 2003-2004, Espirity Inc. Person object  State: age, name, children  Behavior: addChild, getAge, setAge Object State and Behavior state behavior aPerson age name children getAge setAge addChild …

12 12 © 2003-2004, Espirity Inc. Interactions between Objects Object interact by sending messages to each other Objects and interactions between them make up an object-oriented system aPolicyFactory: createPolicy aBroker:aPerson: aPolicy: aPolicy new(“Joe Smith”, “35 years”) aPerson setOwner(aPerson) …

13 13 © 2003-2004, Espirity Inc. Messages There are two major terms in messaging:  Message sender  Message receiver Messages may have arguments getAge() sender receiver message aBroker:aPerson:

14 14 © 2003-2004, Espirity Inc. Methods Method is concrete implementation of a message When message is sent to a receiver:  Method is found by type of the receiver object and method signature  Method code is executed Method represents an object’s response to a message

15 15 © 2003-2004, Espirity Inc. Method Signature Method signature is unique identifier of the method It is used to distinguish methods with same name and same number of parameters It consists of:  Method name  Parameter name  Parameter type

16 16 © 2003-2004, Espirity Inc. Object’s Public Protocol Public protocol is set of messages that can be sent to an object It does not include messages that an object can send to itself  These are private aPerson age name children getAge setAge addChild … public protocol

17 17 © 2003-2004, Espirity Inc. Fields Fields represent characteristics of an object Fields are also known as attributes, or instance variables aPerson age name children getAge setAge addChild … fields

18 18 © 2003-2004, Espirity Inc. Object-Oriented Principal: Encapsulation Objects hide implementation of the messages behind their public protocols  Object’s internal implementation is accessed by that object only Encapsulation is also known as implementation hiding getName() aBroker:aPerson: getAge() Joe Smith 35

19 19 © 2003-2004, Espirity Inc. Classes Classes are:  Factories for creating objects  Template for the same kind of objects that describes their state and behavior  Code repository for objects Classes define objects (by defining their state and behavior) and their type Person age name children address getAge setAge addChild …

20 20 © 2003-2004, Espirity Inc. Instances Every object is an instance of some class All instances of same class have the same protocol  They have same fields and same methods that are defined by the class John Smith 35 John Smith Jimmy, Chloe Dad Smith 60 Dad Smith John, Tom class Person age name children address getAge setAge addChild …

21 21 © 2003-2004, Espirity Inc. Object-Oriented Principal: Inheritance Some classes may share commonalities  For example HomePolicy, AutoPolicy, LifePolicy classes may all have same state and behavior Instead of repeating commonalities in each class, we can abstract them in a common place  These commonalities can be stored in a super class  Each subclass inherits state and behavior from its superclass

22 22 © 2003-2004, Espirity Inc. Specialization and Generalization Policy client premium policyNumber getClient setClient … HomePolicy house getHouse setHouse AutoPolicy auto getAuto setAuto LifePolicy generalization specialization

23 23 © 2003-2004, Espirity Inc. Why Inheritance? Inheritance represents real-world modeling  Some objects are special cases of other objects Inheritance promotes reuse and extensibility  Same data and behavior is shared among objects of different types (different class)  New data and new behavior that is common for those objects is easier to add

24 24 © 2003-2004, Espirity Inc. Object-Oriented Principal: Polymorphism Polymorphism  different objects respond to the same message in different ways  For example when asked to talk a dog barks, and a cat meows It is often supported by method overriding  Overriding means that subclass may implement the same method as superclass, but with different code  toString() method in the Object class is an example of often overridden method

25 25 © 2003-2004, Espirity Inc. Overriding Example Consider Animal class:  Dog and Cat as subclasses All Animal objects should know how to talk aCat.talk(); aDog.talk(); meows barks Animal talk() Dog talk() Cat talk()

26 26 © 2003-2004, Espirity Inc. Dynamic Binding Dynamic binding represents runtime method binding  It is runtime binding of method invoked in the message to the method that implements that message  For example: anAnimal.talk(); aDog … talk aCat … talk

27 27 © 2003-2004, Espirity Inc. Labs! Lab: Object-Oriented Concept


Download ppt "Object-Oriented Principals Dwight Deugo Nesa Matic"

Similar presentations


Ads by Google