1 / 14

Chapter 1: Object-Oriented Thinking

Chapter 1: Object-Oriented Thinking. Presentation slides for Object-Oriented Programming by Yahya Garout KFUPM Information & Computer Science Department. Outline. A way of Viewing the World Agents and Communities Messages and Methods Responsibilities Classes and Instances

flynn
Télécharger la présentation

Chapter 1: Object-Oriented Thinking

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Chapter 1: Object-Oriented Thinking Presentation slides for Object-Oriented Programming by Yahya Garout KFUPM Information & Computer Science Department

  2. Outline • A way of Viewing the World • Agents and Communities • Messages and Methods • Responsibilities • Classes and Instances • Class Hierarchies-Inheritance • Method Binding, Overriding, and Exceptions • Summary of Object-Oriented Concepts • Computation as Simulation • The Power of Metaphor

  3. Agents and Communities • An object-oriented program is structured as a community of interacting agents, called objects • Each object has a role to play • Each object provides a service, or performs an action, that is used by other members of the community

  4. Messages and Methods • Actions is initiated in object-oriented programming by the transmission of a message to an agent (an object) responsible for the action • The message encodes the request for an action • It is accompanied by any additional information (arguments) needed to carry out the request • The receiver is the object to whom the message is sent • If the receiver accepts the message, it accepts the responsibility to carry out the indicated action • In response to a message, the receiver will perform some method to satisfy the request

  5. Responsibilities • A fundamental concept in object-oriented programming is to describe the behavior in terms of responsibilities • This permits greater independence between objects, a critical factor in solving complex problems • The entire collection of responsibilities associated with an object is often termed the protocol

  6. Classes and Instances • All objects are instances of a class • The method invoked by an object in response to a message is determined by the class of the receiver • All objects of a given class use the same method in response to similar messages

  7. Class Hierarchies-Inheritance • Classes are organized into a hierarchical inheritance structure • A child class (or subclass) will inherit attributes from a parent class higher in the tree • An abstract parent class for which there are no direct instances, it is used only to create subclasses

  8. Binding, Overriding, and Exceptions • Determining which method will be invoked at run-time • In response to a message, the search for a method begins with the class of the receiver • If no method is found, the search is conducted in the parent class • The search continues up the parent class chain until either a method is found or the chain is exhausted • If the method is found, it will be executed • If not, an error message is issued • Methods of the same name in the class hierarchy is overriding

  9. Summary of Object-Oriented Concepts • Everything is an object • Computation is performed by objects communicating with each other by sending and receiving messages • Each object has its own memory • Every object is an instance of a class • The class is the repository for behavior associated with an object • Classes are organized into a singly rooted tree structure, called the inheritance hierarchy

  10. Computation as Simulation • The view of programming is different from the conventional conception of a computer. • The traditional model describing the behavior of a computer executing a program is a process-state or pigeonhole model • The computer is a data manager, following some pattern of instructions, wandering through memory, pulling values, transforming them in some manner, and pushing results back into other slots • By examining the values in the slots, we can determine the results produced • Accurate but does not help to understand how to solve problems using the computer

  11. Computation as Simulation • Not the way most people go about solving problems • In object-oriented framework we speak of objects, messages, and responsibility for some action • A universe of well-behaved objects that ask each other to carry out their various desires • A process of creating a host of helpers that form a community and assist the programmer in the solution of a problem • Similar to the style of computer simulation called “discrete event-driven simulation” • In discrete event-driven simulation, the user creates computer models of the various elements, describes how they will interact with one another, and sets them moving

  12. Computation as Simulation • Almost identical to the average object-oriented program • The user describes what the various entities in the universe for the program are, and how they will interact, and finally sets them in motion • In object-oriented programming, we have the view that computation is simulation

  13. The Power of Metaphor • A benefit to the use of object-oriented techniques is the power of metaphor • When programmers think about problems in terms of behaviors and responsibilities, they bring with them a wealth of intuition, ideas, and understanding from their everyday experience. • Journalists make use of metaphor everyday, as in the following description from Newsweek: • Unlike the usual programming method-writing software one line at a time-NeXT’s “object –oriented” system offers larger building blocks that developers can quickly assemble the way a kid builds faces on Mr. Potato Head

  14. The Power of Metaphor • It is useful to envision the process of programming as like the task of training a universe of agents to interact smoothly with each other, each providing a certain small and well-defined service to the other, each contributing to the effective execution of the whole • Think about how you have organized communities of individuals, each member is given certain responsibilities, and the achievement of the goals depends upon each member fulfilling his role

More Related