7. Abstract Data Type Denotes the essential characteristics of an object that distinguish it from all other kinds of things. ADT = data representation + its operations Information hiding Encapsulation
8. Abstract Data Type state, implemented by attributes behaviour, implemented by operation identity
9. Abstract Data Type class object instance encapsulation method message protocol
10. Abstract Data Type Class A class is a blueprint for creating objects. It is like a data type in traditional language. Instance An instance is a particular element of a class. It is like a variable in traditional language.
11. Polymorphism Monomorphismevery values & variables is interpreted to be of one and only one type. Polymorphism some variables may have more than one type.
12. Polymorphism Binding static or early bindingaddInt(x, y)addFloat(x, y) dynamic or lateadd(x, y)
14. Example: int add (int a, int b) float add (float a, int b) float add (float a, float b) int add (int a, int b, int c) float add (int a, float b, int c)
15. Inheritance vehicle land vehicle water vehicle air vehicle car truck canoe submarine jet rocket 18-wheeler pickup
17. Inheritance A room is a part of a house.A kitchen is a kind of room. A boat is a part of a fleet.A cruiser is a kind of a boat. A child is a part of a family.A son is a kind of a child. A word is a part of a sentence.A noun is a kind of a word.
18. Problem Solving using OOP Behaviour of a system (otherwise the state of the system) is exposed through the change of some characteristics. paint new color Property name : surface-color Property value ; green Property name : surface-color Property value ; red The force that change surface-color is PAINT action
19. Class Class Describes an object, description includes properties (attributes) and methods the object can perform CD_Drive { boolean _latchState boolean _contentState openLatch() closeLatch() insert() eject() } Object Each object consume its own space (Identity) Description about CD-Driver
20. Abstraction Class wraps necessary details of the object and expose few through interface Interface or method is communication point. Interface or method can be invoked on an object. CD_Drivelg CD_Drivesegate lg.openLatch();
21. Object Oriented Languages Objects are supported. Objects are organized into classes. Classes are organized into hierarchies using inheritance. An object communicates by sending messages to invoke the operations of other objects Objects of varying types respond to the same message differently using polymorphism.
22. Object Oriented Programming Languages First object-oriented language, Simula at 1967. Proved by Smalltalk at 1976. C++, Effiel, Common Lisp, Object-Pascal, ... appeared at late 1970s. Object-oriented programming environments matured at 1980s. User interface (1980s) : WIMP, Dynabook, Apple Lisa and Macintosh, Window systems..