Top Banner
Data Structures Using Jav a 1 Chapter 2 Inheritance and Exception Handling
39
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Data Structures Using Java1 Chapter 2 Inheritance and Exception Handling.

Data Structures Using Java 1

Chapter 2

Inheritance and Exception Handling

Page 2: Data Structures Using Java1 Chapter 2 Inheritance and Exception Handling.

Data Structures Using Java 2

Chapter Objectives

• Learn about inheritance• Learn about sub- and superclasses• Explore how to override the methods of a

superclass• Examine how constructors of super- and

subclasses work• Examine abstract classes• Learn about composition

Page 3: Data Structures Using Java1 Chapter 2 Inheritance and Exception Handling.

Data Structures Using Java 3

Chapter Objectives

• Learn about exceptions• Become aware of exception classes and their

hierarchy • Learn about checked and unchecked exceptions• Learn how to handle exceptions within a program• Examine try/catch blocks• Discover how to throw and rethrow an exception

Page 4: Data Structures Using Java1 Chapter 2 Inheritance and Exception Handling.

Data Structures Using Java 4

Inheritance

• “is-a” relationship• Single inheritance

– subclass derived from one existing class (superclass)

• Multiple inheritance– Subclass derived from more than one superclass

– Not supported by Java

– In Java, a class can only extend definition of one class

Page 5: Data Structures Using Java1 Chapter 2 Inheritance and Exception Handling.

Data Structures Using Java 5

Inheritance

Page 6: Data Structures Using Java1 Chapter 2 Inheritance and Exception Handling.

Data Structures Using Java 6

Inheritance

• Private members of superclass– private to superclass; cannot be accessed

directly by subclass

• Subclass can override method of superclass; redefinition applies only to object of subclass

Page 7: Data Structures Using Java1 Chapter 2 Inheritance and Exception Handling.

Data Structures Using Java 7

Inheritance

• To write method definition of subclass to specify call to public method of superclass– If subclass overrides public method of superclass, to

specify call to public method of superclass: super.MethodName(parameter list)

– If subclass does not override public method of superclass, to specify call to public method of superclass: MethodName(parameter list)

Page 8: Data Structures Using Java1 Chapter 2 Inheritance and Exception Handling.

Data Structures Using Java 8

Defining Constructor of Subclass

• Call to constructor of superclass – must be first statement– specified by: super parameter list

Page 9: Data Structures Using Java1 Chapter 2 Inheritance and Exception Handling.

Data Structures Using Java 9

The class Object

• Directly or indirectly superclass of every class in Java

• Public members of class Object can be overridden/invoked by object of any class type

Page 10: Data Structures Using Java1 Chapter 2 Inheritance and Exception Handling.

Data Structures Using Java 10

The class Object

Page 11: Data Structures Using Java1 Chapter 2 Inheritance and Exception Handling.

Data Structures Using Java 11

Objects of Superclasses and Subclasses

• Cannot automatically make reference variable of subclass type point to object of superclass

• Dynamic binding: method executed determined at execution time, not compile time

• Operator instanceof : determines whether reference variable that points to object is of particular class type

• ClassCastException thrown if class cast is not allowed

Page 12: Data Structures Using Java1 Chapter 2 Inheritance and Exception Handling.

Data Structures Using Java 12

The Operator instanceof

• Reference of superclass type can point to objects of its subclass

• Can determine if a reference variable points to an object using operator instanceof

Page 13: Data Structures Using Java1 Chapter 2 Inheritance and Exception Handling.

Data Structures Using Java 13

Abstract Methods and Classes

• Abstract method: method that has only the heading with no body– must be declared abstract

• Abstract class: class that is declared with the

reserved word abstract in its heading

Page 14: Data Structures Using Java1 Chapter 2 Inheritance and Exception Handling.

Data Structures Using Java 14

Abstract Class

• Can contain instance variables, constructors, finalizer, abstract and nonabstract methods

• Cannot instantiate object of abstract class type; can only declare reference variable

• Can instantiate object of subclass of abstract class, but only if subclass gives definitions of all abstract methods of superclass

Page 15: Data Structures Using Java1 Chapter 2 Inheritance and Exception Handling.

Data Structures Using Java 15

Composition

• Another way to relate two classes

• One or more members of a class are objects of another class type

• “has-a” relation between classes

Page 16: Data Structures Using Java1 Chapter 2 Inheritance and Exception Handling.

Data Structures Using Java 16

Exception

• Definition: an occurrence of an undesirable situation that can be detected during program execution

• Examples– division by zero– trying to open an input file that does not exist is

an exception– an array index that goes out of bounds

Page 17: Data Structures Using Java1 Chapter 2 Inheritance and Exception Handling.

Data Structures Using Java 17

Java Exception Hierarchy

Page 18: Data Structures Using Java1 Chapter 2 Inheritance and Exception Handling.

Data Structures Using Java 18

The class Throwable

Page 19: Data Structures Using Java1 Chapter 2 Inheritance and Exception Handling.

Data Structures Using Java 19

The class Exception and its Subclasses from java.lang

Page 20: Data Structures Using Java1 Chapter 2 Inheritance and Exception Handling.

Data Structures Using Java 20

The class Exception and its Subclasses from java.util

Page 21: Data Structures Using Java1 Chapter 2 Inheritance and Exception Handling.

Data Structures Using Java 21

The class Exception and its Subclasses from java.io

Page 22: Data Structures Using Java1 Chapter 2 Inheritance and Exception Handling.

Data Structures Using Java 22

Java’s Exception Class• Class Exception

– Subclass of class Throwable – superclass of classes designed to handle exceptions

• Various types of exceptions– I/O exceptions– Number format exceptions– File not found exceptions– Array index out of bounds exception

• Various exceptions categorized into separate classes and contained in various packages

Page 23: Data Structures Using Java1 Chapter 2 Inheritance and Exception Handling.

Data Structures Using Java 23

The class Exception and its Constructors

Page 24: Data Structures Using Java1 Chapter 2 Inheritance and Exception Handling.

Data Structures Using Java 24

Java Exception Classes

Page 25: Data Structures Using Java1 Chapter 2 Inheritance and Exception Handling.

Data Structures Using Java 25

Exceptions Thrown by Methods

Page 26: Data Structures Using Java1 Chapter 2 Inheritance and Exception Handling.

Data Structures Using Java 26

Exceptions Thrown by Methods

Page 27: Data Structures Using Java1 Chapter 2 Inheritance and Exception Handling.

Data Structures Using Java 27

Checked Exceptions

• Checked Exception: any exception that can be analyzed by the compiler

• Example– IOExceptions

Page 28: Data Structures Using Java1 Chapter 2 Inheritance and Exception Handling.

Data Structures Using Java 28

Unchecked Exceptions• Unchecked Exception: exception that cannot be

analyzed when the program compiles (must be checked for by programmer)

• Examples– Division by zero– Array index out of hounds

• Syntax– throws ExceptionType1, ExceptionType2, …

*ExceptionType1, ExceptionType2, etc are names of exception classes

Page 29: Data Structures Using Java1 Chapter 2 Inheritance and Exception Handling.

Data Structures Using Java 29

Handling Exceptions within a Program

• try/catch/finally block used to handle exceptions within a program

• try block:– Includes statements that may generate an exception

– Includes statements that should not be executed if an exception occurs

– followed by zero or more catch blocks

– May or may not be followed by finally block

Page 30: Data Structures Using Java1 Chapter 2 Inheritance and Exception Handling.

Data Structures Using Java 30

Handling Exceptions within a Program

• Catch block:– heading specifies type of exception it can catch– contains exception handler; completely handles

exception– can catch all exceptions of a specific type or all types of

exceptions– may or may not be followed by a finally block

• Finally block– Code contained in this block always executes– try block with no catch block has finally block

Page 31: Data Structures Using Java1 Chapter 2 Inheritance and Exception Handling.

Data Structures Using Java 31

Order of Catch Blocks

• If exception in try block caught by first catch block, reaming catch blocks ignored

• Must be careful about order catch blocks are listed

Page 32: Data Structures Using Java1 Chapter 2 Inheritance and Exception Handling.

Data Structures Using Java 32

Rethrowing and Throwing an Exception

• Useful when – Catch block catches exception but is unable to

handle it– Catch block decides exception should be

handled by calling environment

• Allows programmer to provide exception handling code in one place

Page 33: Data Structures Using Java1 Chapter 2 Inheritance and Exception Handling.

Data Structures Using Java 33

Exception Handling Techniques

• Terminate program– Output appropriate error message upon termination

• Fix error and continue– Repeatedly get user input/output appropriate error

message until valid value is entered

• Log error and continue– Write error messages to file and continue with program

execution

Page 34: Data Structures Using Java1 Chapter 2 Inheritance and Exception Handling.

Data Structures Using Java 34

Creating Your Own Exception Classes

• Exception class you define extends class Exception or one of its subclasses

• Syntax to throw your own exception object– throw new ExceptionClassName(messageString);

Page 35: Data Structures Using Java1 Chapter 2 Inheritance and Exception Handling.

Data Structures Using Java 35

Programming Example: Grade Report

• Main algorithm– Declare variables– Open input file– Open output file– Get number students registered and tuition rate– Load students’ data– Print grade reports

Page 36: Data Structures Using Java1 Chapter 2 Inheritance and Exception Handling.

Data Structures Using Java 36

Programming Example: Grade Report

• Components: student, course

• Operations on course– Set course information– Print course information– Show credit hours– Show course number– Show grade

Page 37: Data Structures Using Java1 Chapter 2 Inheritance and Exception Handling.

Data Structures Using Java 37

Programming Example: Grade Report

• Operations on student– Set student information– Print student information– Calculate number of credit hours taken– Calculate GPA– Calculate billing amount– Sort the courses according to the course number

Page 38: Data Structures Using Java1 Chapter 2 Inheritance and Exception Handling.

Data Structures Using Java 38

Chapter Summary

• Inheritance– Single and multiple– Rules and Uses– Superclasses/subclasses (objects)– Overriding/overloading methods

• The class Object– Constructors– Rules

• Abstract methods and classes

Page 39: Data Structures Using Java1 Chapter 2 Inheritance and Exception Handling.

Data Structures Using Java 39

Chapter Summary

• Composition

• Exception

• Checked and Unchecked Exceptions

• Creating your own exception classes

• Exception handling techniques

• Handling exceptions within a program