Object Orientation - PowerPoint PPT Presentation

About This Presentation
Title:

Object Orientation

Description:

The parent and grandparents are public and accessible through the subclass ... A subclass overrides the operation(s) defined in the parent/grandparent classes. ... – PowerPoint PPT presentation

Number of Views:24
Avg rating:3.0/5.0
Slides: 28
Provided by: YB
Category:

less

Transcript and Presenter's Notes

Title: Object Orientation


1
Object Orientation
  • Yaodong Bi, Ph.D.
  • Department of Computer Sciences
  • University of Scranton
  • May 26, 2020

2
Classes and objects for modeling
  • Classes
  • Real world concepts
  • Student, course, bicycle, etc
  • Objects
  • Instances of real word concepts
  • John Smith, Operating Systems, Mongoose Mountain
    S100, etc

3
Classes and objects for modeling
Customers John and Susan entered the
MakeMoney bank and were served by teller
Andy.
Classes
Objects
4
Classes and objects in software
  • Objects
  • Packaging both data and the procedures that
    operate on the data into one
  • Operations are the only way to change the data
    items encapsulation
  • Classes
  • Template of objects of the same type
  • Write once and use many times
  • Implementation classes/objects
  • Some classes/objects do not match to concepts in
    the real world
  • List, stack, tree, queue containers
  • Exception classes

5
Attributes and operations
  • Instance attributes (simply attributes)
  • Properties (internal state) of an object
  • Student name, major, class, GPA
  • Course title, of credits, description
  • Each object has its own value for an attribute
  • Instance operations (simply operations)
  • Services of an object
  • Stack push, pop, isEmpty, isFull
  • Encapsulation
  • Attributes (private and protected) are not
    accessible directly by client
  • Operations are used to read/write the values of
    attributes

6
Attributes and Operations
  • Class attributes (static attributes)
  • Represent properties that can be applied to all
    objects of the same class
  • Only one value for each class attribute shared by
    all objects of the class
  • All accounts of the CheckingAccount class have
    the same interest rate
  • Can be accessed in both instance and class
    operations
  • Class operations (static operations)
  • Used to access class attributes
  • Cannot access instance attributes and operations

7
Class member access modes
  • Public
  • Public attributes and public operations
  • Accessible to all clients or the world
  • Protected
  • Protected attributes and operations
  • Accessible to the class and its subclasses
  • Private
  • Private attributes and operations
  • Only accessible by the operations of the class

8
Member access modes in Java
Specifier Class Package Subclass World
Private Y N N N
No Specifier Y Y N N
Protected Y Y Y N
Public Y Y Y Y
9
Abstract and concrete classes
  • Abstract classes
  • Define a common interface for its subclasses
  • Defer some or all of its implementation of
    operations to its subclasses
  • Cannot be instantiated
  • Concrete classes
  • That are not abstract classes
  • Can be instantiated
  • Concrete subclasses implement all the operations

10
Interfaces
  • Signature of an operation
  • Operation name
  • Objects/classes it takes as parameters
  • Return value and type
  • Interface
  • The set of signatures of related operations
  • Representing a capability or a set of services
  • A class may implement multiple interfaces
  • Its objects have more than one set of services

11
Inheritance
  • Specifies is-a or a-kind-of relationship
  • Generalization and specialization
  • Superclasses and subclasses
  • Single and multiple inheritance
  • Class and interface inheritance

12
Superclasses and subclasses
  • Superclass
  • Also called base class or parent class
  • All of its members are inherited by its
    subclasses
  • Subclasses
  • Also called child classes
  • Inherit all the properties of its superclasses

13
Single and multiple inheritance
  • Single inheritance
  • A subclass cannot have more than one parent
  • Multiple inheritance
  • A subclass may have more than one parent
  • Java does not allow multiple inheritance
  • Java allows multiple interface inheritance
  • Through interface implementation

14
Class inheritance lattice
Faculty office getOffice()
Student major getMajor()
Staff dept getDept()
Graduate PayRate getPayRate()
Underg PayRate getPayRate()
FullTime salary getSalary()
PartTime PayRate getPayRate()
TA labs getLabs()
15
Implementation inheritance
  • Also called class inheritance
  • Define an objects implementation in terms of
    another objects implementation
  • Pure class inheritance in C
  • Pure class inheritance in Java

16
Pure class inheritance with C
  • Class BinaryTree
  • getRoot()
  • setRoot()
  • leftTree()
  • rightTree()

Class BinSearchTree private BinaryTree insert(
) remove() find()
The operations of BinaryTree are not
accessible/visible to the clients of
BinSearchTree because BinaryTree is private
They use the operations of BinaryTree
17
Pure class inheritance with Java
  • Java does not allow private parent
  • The parent and grandparents are public and
    accessible through the subclass
  • Java cannot implement pure implementation
    inheritance.

18
Interface inheritance
  • Describe when an object can be used in place of
    another
  • Pure interface inheritance in C
  • Superclasses are pure abstract classes
  • Pure interface inheritance in Java
  • Superclasses are Java interfaces

19
Interface inheritance with C
  • Class Stack
  • virtual push() 0
  • virtual pop() 0
  • virtual isEmpty() 0
  • virtual isFull() 0

A C Abstract class
Class MyStack public Stack push()
pop() isEmpty() isFull()
Class YourStack public Stack push()
pop() isEmpty() isFull()
20
Interface inheritance with Java
  • Interface Stack
  • push()
  • pop()
  • isEmpty()
  • isFull() 0

A Java Interface
Class MyStack implements Stack push()
pop() isEmpty() isFull()
Class YourStack implements Stack push()
pop() isEmpty() isFull()
21
Polymorphism
  • When a client sends a request to a reference, the
    method executed depends on the object behind the
    reference
  • Polymorphism and inheritance are very powerful
    tool in software design
  • So powerful that if they are used properly, they
    can hurt really bad
  • If something goes wrong, it is hard to tell which
    class/object caused the problem

22
Dynamic (late) binding
  • Dynamic binding is a way of implementing
    polymorphism
  • It means that a function call is not linked to
    the actual function until execution time
  • Since a reference may be used to point to
    different types (subtypes or subclasses) of
    objects at execution time, so the actual function
    to be executed may not be known when the program
    is compiled.
  • The opposite of dynamic binding is static binding
    which links a function call to the actual
    function at compilation time.

23
Method Overriding
  • A subclass overrides the operation(s) defined in
    the parent/grandparent classes.
  • This is for specialized subclasses to override
    the behavior defined in the super class(es).
  • For example
  • Superclass Employees print method prints
    employees SSN, Name, Address.
  • Its subclass Engineers print method prints
    engineers type and level in addition to
    employees normal information.

24
Function overloading
  • The same name is used for more than function
  • For example, a function of adding two integers
    may be named the same as the one of adding two
    floats
  • Add(int x, int y)
  • Add(float x, float y)
  • Two functions use the same name for the same
    purpose with different data parameters

25
Inheritance vs. Composition
  • Two common techniques for reuse
  • Class Inheritance
  • White-box reuse
  • Defined at compile-time, statically
  • Cannot change parent at rum-time
  • Object Composition
  • Black-box reuse
  • A reference/pointer to the object
  • Can be changed at run-time
  • Favor composition over inheritance

26
Delegation
  • A way to make composition as powerful as class
    inheritance
  • A receiving object delegates requests to its
    delegates
  • subclass defers request to parent class
  • In class inheritance
  • parent can use this to access the child
  • In delegation
  • Receiving object can pass itself to its delegate

27
Three techniques for reuse
  • Class Inheritance
  • can provide default operations and let subclass
    override them
  • Cannot be changed at run-time
  • Object Composition
  • Can change the behavior being composed at
    run-time
  • Requires redirection and so becomes less
    efficient
  • Generics
  • Changes the types that a class can use
  • Cannot change at run-time
Write a Comment
User Comments (0)
About PowerShow.com