Object Oriented Programming Chapter 7 Programming Languages by Ravi Sethi - PowerPoint PPT Presentation

About This Presentation
Title:

Object Oriented Programming Chapter 7 Programming Languages by Ravi Sethi

Description:

Method: Procedure body implementing an operation ... Remember that Method Draw from Class box overrides Method Draw from Class Shape ... – PowerPoint PPT presentation

Number of Views:961
Avg rating:3.0/5.0
Slides: 48
Provided by: scie369
Learn more at: http://www.cs.bsu.edu
Category:

less

Transcript and Presenter's Notes

Title: Object Oriented Programming Chapter 7 Programming Languages by Ravi Sethi


1
Object Oriented ProgrammingChapter 7Programming
Languagesby Ravi Sethi
2
7.1 What Is An Object
  • Object-oriented program - Description or
    simulation of application
  • Object-oriented programming is done by adopting
    or extending an existing program.
  • Object - Entities in simulation
  • An object can represent any entity in solution of
    problem
  • An object interacts by sending messages
  • A computation is characterized in terms of
    observable behavior of objects

3
7.2 Object Oriented Thinking
  • Vocabulary of object-oriented programming
  • Object Collection of data and operations
  • Class Description of a set of objects objects
    with common propertiestype of an object
  • Subclass Subset of class, with additional
    properties nested class
  • Superclass Main class that subclasses fall
    under
  • Instance Technical term for an object of class
  • Method Procedure body implementing an operation
  • Message Procedure call request to execute
    method

4
  • A class can have inheritance.
  • Single inheritance Subclass has one superclass
    (Java)
  • Multiple inheritance Subclass has more than one
    superclass (C)
  • A message can carry parameters. An object will
    execute a method when gets a messageway
    responds.
  • A class definition specifies the properties of an
    object. It includes methods it can execute and
    variables for the object.

5
Object Oriented Thinking (cont.)
  • When storage is allocated for a variable of the
    class, we call that an instance.

6
7.3 Inheritance
  • Children of a class hierarchy inherit the methods
    and variables of ancestor methods.
  • Object determines how it will implement a
    message.
  • Information hiding facilitates two kinds of
    changes
  • Implementation change If all interactions with
    an object are through its interface, then
    algorithms and data structures are hidden behind
    the interface can be changed

7
  • Inheritance change If all interactions are
    through the interface to a superclass, then
    program can be extended by adding a subclass.
  • Object-oriented programming often done by
    adopting or extending an existing program.
  • Subclass is a derived class and superclass is a
    base class.
  • A method in a subclass overrides an inherited
    method of the same name.

8
7.4 Object-Oriented Programming in C
  • C provides a transition path from C to object
    oriented programming.
  • Declaring a class
  • Constructor Member function with same name as
    class called automatically when lifetime of an
    object of the class beginsused as an
    initialization method
  • Body of member function can appear within the
    declaration or separate

9
  • Three keywords for controlling the visibility of
    members names.
  • Public visible to outside code
  • Private not visible to outside code
  • Keyword visible through inheritance only
  • Base and Derived Classes
  • Derived class an extension of a base class
  • Public Base Classes
  • Identified by the keyword public

10
  • class ltderivedgt public ltbasegt
  • ltmember-declarationsgt
  • Members of a public base class retain their
    visibility in the derived class
  • Virtual Functions
  • Allow a derived class to supply the function
    body.
  • Are taken from derived class where possible
  • Initialization and Inheritance
  • Code for initialization belongs in the
    constructor for a class

11
Object-Oriented Programming in C(cont)
  • Constructor of a base class is called before the
    derived class
  • The destructor in derived class is called before
    the destructor in the base class

12
EXAMPLE
  • A prime example of object orientation would be a
    program that draws diagrams.
  • The object would be shapes.
  • Can classify a shape based on its properties.
  • Classification of shape objects
  • Figure 7.2 Page 257
  • Figure 7.3 Page 258

13
  • Class Shape
  • Subclass Box
  • Subclass Line
  • Subclass Text
  • Subclass Ellipse
  • Subclass Circle
  • Methods of Shape would be
  • initialize, draw, offset, setwidth, setheight,
    and setalign

14
  • Variables of Object Shape
  • width, height, align
  • Methods for each class Figure 7.6 Page 261
  • Since class box, ellipse, line, text are
    subclasses of Shape they will inherit the
    methods and variables from Shape
  • What methods and variables would class circle
    inherit?
  • Remember that Method Draw from Class box
    overrides Method Draw from Class Shape

15
Implementation of Shape(s)
  • Implementation of Class Shape Figure 7.10 page 271

16
7.5 AN EXTENDED C EXAMPLE
  • This section illustrates inheritance in C by
    developing a program to find prime numbers.
  • A prime number is divisible only by itself and 1.
  • Primes
  • 2 3 5 7 11 13 17 19 23 29 31 37 41
    43 47

17
A Prime Number Sieve
  • Sieve method is used to compute primes.
  • The underlying idea is that n is a prime if n is
    not a multiple of any prime p smaller than n.
  • Objects used counter(n) and filter(n)

18
A Base Class
  • class Item
  • public
  • Item source
  • Item(Item src) source src
  • virtual int out() return 0

19
Derived Classes
  • class Counter public Item
  • int value
  • public
  • int out() return value
  • Counter(int v) Item(0) value v

20
Initialization of Derived and Base Classes
  • Counter(int v) Item(0) value v
  • Counter (int v) has an integer argument.
  • Item(0) passes the null pointer 0 as an
    argument to the constructor of the base class.
  • value v is the body of the constructor in
    the derived class.

21
7.6 DERIVED CLASSES AND INFORMATION HIDING
  • Inheritance is in terms of an is-a relation on
    objects.
  • Hiding inherited members can interfere with a
    fundamental property, the ability of a derived
    object to appear wherever a base object is
    expected.
  • Example list and stack

22
Public Base Classes
  • Syntax for a public base class
  • class ltderivedgt public ltbasegt
  • ltmember-declarationsgt
  • Members of a public base class retain their
    accessibility in the derived class.

23
Public Base Classes
  • An object of a derived class has an is-a relation
    with objects of its public base class.

24
Private Base Classes
  • Syntax for a private base class
  • class ltderivedgt private ltbasegt
  • ltmember-declarationsgt
  • A derived class simply shares the code of the
    private base class. Such code sharing is called
    implementation inheritance.

25
Private Base Classes
  • All members derived by ltderivedgt from ltbasegt
    become private members of ltderivedgt.
  • Nonprivate inherited members can be made visible
    by writing their full names in the derived class.

26
Privacy Principle
  • The private members of a class are accessible
    only to member functions of the class.
  • Functions in a derived class cannot access the
    private members of its base class.

27
Privacy Principle
  • class List
  • cell rear
  • public
  • List()
  • int empty()
  • protected
  • void add(int)
  • void push(int)
  • int get()

28
Privacy Principle
  • class Queue public List
  • public
  • Queue()
  • int get() return List get()
  • void put(int x) add(x)

29
Privacy Principle
  • A complete listing of the members of class
    queue.
  • Public Functions
  • Queue added constructor function
  • get added
  • put added
  • List empty inherited

30
Privacy Principle
  • Protected functions
  • add inherited
  • push inherited
  • List get inherited
  • Private Variables ( accessible to functions added
    by Queue )
  • none

31
Privacy Principle
  • Private Variables ( accessible only to inherited
    functions )
  • rear inherited

32
7.7 OBJECTS IN SMALLTALK
  • Smalltalk is built on the concepts of objects
    and messages.
  • Everything is an object.
  • Data is private to an object.
  • An object has a notion of self.

33
System classes
  • Numbers, data structures, and input/output are
    provided by built-in system classes.
  • Superclass and subclass vs. base class and
    derived class

34
Elements of a Class Definition
  • Instance is a technical term for an object of a
    class
  • Variables and methods
  • Class methods are used primarily to create
    instances.
  • Class variables are used to share information
    between instances.

35
A View of Class Stack in Smalltalk
  • class Stack superclass Object
  • instance variables
  • contents
  • class methods
  • new
  • super new initialize

36
A View of Class Stack in Smalltalk
  • instance methods
  • push anElement
  • contents addLast anElement
  • pop
  • contents removeLast
  • initialize
  • contents OrderedCollection new

37
Instance Variables and Privacy
  • An instance variable belongs to an instance. Its
    value can be changed only by operations belonging
    to the instance.
  • How are the private variables initialized?
  • Class variables are shared by all instances of a
    class.
  • Global variables are shared by all instances of
    all classes.

38
Syntax of Messages
  • Unary messages
  • contents size
  • Keyword messages
  • aStack push 54
  • Binary messages
  • operators , -

39
Expression Evaluation
  • Evaluation proceeds from left to right.
  • Unary messages --- highest precedence
  • Binary messages --- all with the same
  • precedence
  • Keyword messages --- lowest precedence

40
Expression Evaluation
  • Examples
  • contents size 0
  • ( contents size ) 0
  • ( ( ww ) ( hh ) ) sqrt
  • ww hh ( ( ww ) h ) h )

41
Expression Evaluation
  • The assignment symbol is lt-- or .
  • A sequence of expressions is separated by dots or
    periods.
  • w width / 2 .
  • h height / 2 .
  • r ( ( ww ) ( hh ) ) sqrt

42
Returning Values
  • Return value operator
  • Return value operator has lower precedence than
    other messages.
  • isEmpty
  • contents size 0
  • ( ( contents size ) 0 )

43
Conditionals and Blocks
  • An expression sequence enclosed within square
    brackets, and , is called a block.
  • x gt y if True max x
  • if False max y
  • Blocks are objects.

44
7.8 SMALLTALK OBJECTS HAVE A SELF
  • The inheritance rules for Smalltalk
  • Single inheritance means that each class has at
    most one superclass. The root of hierarchy is
    class object .
  • A subclass inherits variables and methods from
    its superclass.
  • A subclass can declare fresh variable names,
    different from the inherited variables.

45
  • Methods in the subclass override inherited
    methods.
  • The rules for methods ensure that an object of
    a subclass can respond to all the messages that
    an object of a superclass can.

46
Messages to self
  • Classes and objects can invoke one of their own
    methods by sending a message to the special name
    self.
  • pop
  • Self isEmpty
  • if True self error stack
    empty
  • if False contents removeLast

47
Messages to super
  • When a subclass overrides an inherited method,
    the special name super allows the overridden
    method to be used.
  • new
  • super new initialize
Write a Comment
User Comments (0)
About PowerShow.com