Themes and Variations • • • • • abstraction -- the object metaphor modeling -- understanding structure and behavior software architecture -- mastering complexity frameworks -- patterns for problem solving components -- scalable software Postacademische Cursus Informatie Technologie vrije Universiteit amsterdam Object Terminology • • • • • • • • • objects -- packet containing data and procedures methods -- deliver service message -- request to execute a method class -- template for creating objects instance -- an object that belongs to a class encapsulation -- information hiding by objects inheritance -- allowing the reuse of class spec.s class hierarchy -- tree structure inheritance relations polymorphism -- to hide different implementations Postacademische Cursus Informatie Technologie vrije Universiteit amsterdam Features of OOP • • • • information hiding: state, autonomous behavior data abstraction: emphasis on what rather than how dynamic binding: binding at runtime, polymorphism , virtual inheritance: incremental changes (specialization), reusability Postacademische Cursus Informatie Technologie vrije Universiteit amsterdam functions Benefits of OOP • OO = encapsulation + inheritance • modularity -- autonomous entities, cooperation through exchanges of messages • deferred commitment -- the internal workings of an object can be redefined without changing other parts of the system • reusability -- refining classes through inheritance • naturalness -- object-oriented analysis/design, modeling Postacademische Cursus Informatie Technologie vrije Universiteit amsterdam