Вы находитесь на странице: 1из 39

1

Chapter 2 Inheritance and exception handling

IAS1223 DATA STRUCTURES AND ALGORITHMS

Chapter Objectives
2

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

Data Structures Using Java

Chapter Objectives
3

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

Data Structures Using Java

Inheritance
4

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

Data Structures Using Java

Inheritance

Data Structures Using Java

Inheritance
6

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

Data Structures Using Java

Inheritance
7

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)

Data Structures Using Java

Defining Constructor of Subclass


8

Call to constructor of superclass


must

be first statement specified by: super parameter list

Data Structures Using Java

The class Object


9

Directly or indirectly superclass of every class in Java Public members of class Object can be overridden/invoked by object of any class type

Data Structures Using Java

The class Object


10

Data Structures Using Java

Objects of Superclasses and Subclasses


11

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

Data Structures Using Java

The Operator instanceof


12

Reference of superclass type can point to objects of its subclass Can determine if a reference variable points to an object using operator instanceof

Data Structures Using Java

Abstract Methods and Classes


13

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

Data Structures Using Java

Abstract Class
14

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

Data Structures Using Java

Composition
15

Another way to relate two classes One or more members of a class are objects of another class type has-a relation between classes

Data Structures Using Java

Exception
16

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

Data Structures Using Java

Java Exception Hierarchy


17

Data Structures Using Java

The class Throwable


18

Data Structures Using Java

The class Exception and its Subclasses from java.lang

Data Structures Using Java

19

The class Exception and its Subclasses from java.util


20

Data Structures Using Java

The class Exception and its Subclasses from java.io

Data Structures Using Java

21

Javas Exception Class


22

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
Data Structures Using Java

The class Exception and its Constructors


23

Data Structures Using Java

Java Exception Classes


24

Data Structures Using Java

Exceptions Thrown by Methods


25

Data Structures Using Java

Exceptions Thrown by Methods


26

Data Structures Using Java

Checked Exceptions
27

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

Data Structures Using Java

Unchecked Exceptions
28

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

Data Structures Using Java

Handling Exceptions within a Program


29

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

Data Structures Using Java

Handling Exceptions within a Program


30

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

Data Structures Using Java

Order of Catch Blocks


31

If exception in try block caught by first catch block, reaming catch blocks ignored Must be careful about order catch blocks are listed

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

Data Structures Using Java

Exception Handling Techniques


33

Terminate program

Output appropriate error message upon termination Repeatedly get user input/output appropriate error message until valid value is entered Write error messages to file and continue with program execution

Fix error and continue

Log error and continue

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);

Data Structures Using Java

Programming Example: Grade Report


35

Main algorithm
Declare

variables Open input file Open output file Get number students registered and tuition rate Load students data Print grade reports

Data Structures Using Java

Programming Example: Grade Report


36

Components: student, course Operations on course


Set

course information Print course information Show credit hours Show course number Show grade

Data Structures Using Java

Programming Example: Grade Report


37

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

Data Structures Using Java

Chapter Summary
38

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

The class Object


Constructors Rules

Abstract methods and classes

Data Structures Using Java

Chapter Summary
39

Composition Exception Checked and Unchecked Exceptions Creating your own exception classes Exception handling techniques Handling exceptions within a program

Data Structures Using Java

Вам также может понравиться