Chapter 10 Classes Continued - PowerPoint PPT Presentation

1 / 61
About This Presentation
Title:

Chapter 10 Classes Continued

Description:

StandardPen is a specific type of Pen. Fundamentals of Java. 15. Turtle Graphics (cont. ... a variable or parameter, use the interface type when possible. ... – PowerPoint PPT presentation

Number of Views:67
Avg rating:3.0/5.0
Slides: 62
Provided by: masco
Category:

less

Transcript and Presenter's Notes

Title: Chapter 10 Classes Continued


1
Chapter 10Classes Continued
  • Fundamentals of Java

2
Objectives
  • Know when it is appropriate to include class
    (static) variables and methods in a class.
  • Understand the role of Java interfaces in a
    software system and define an interface for a
    set of implementing classes.
  • Understand the use of inheritance by extending a
    class.

3
Objectives (cont.)
  • Understand the use of polymorphism and know how
    to override methods in a superclass.
  • Place the common features (variables and methods)
    of a set of classes in an abstract class.

4
Objectives (cont.)
  • Understand the implications of reference types
    for equality, copying, and mixed-mode operations.
  • Know how to define and use methods that have
    preconditions, postconditions, and throw
    exceptions.

5
Vocabulary
  • Abstract class
  • Abstract method
  • Aggregation
  • Class (static) method
  • Class (static) variable
  • Concrete class
  • Dependency

6
Vocabulary (cont.)
  • Final method
  • Inheritance
  • Interface
  • Overriding
  • Postcondition
  • Precondition

7
Class (static) Variables and Methods
  • static variables and methods belong to a class.
  • Not an instance of the class
  • Class variable Storage allocated at program
    startup
  • Independent of number of instances created
  • Class method Activated when message sent to the
    class rather than to an object

8
Class (static) Variables and Methods (cont.)
  • Class variables and methods are declared with the
    keyword static.
  • Example
  • private static int studentCount 0
  • Shared by all instances of the class with this
    declaration
  • Use a static variable in any situation in which
    all instances share a common data value.

9
Class (static) Variables and Methods (cont.)
  • Use static methods to provide public access to
    static variables.
  • Class constants Combine keyword final with
    keyword static
  • Example
  • public static final int MIN_SCORE 0

10
Class (static) Variables and Methods (cont.)
Static variables, methods, and constants example
11
Class (static) Variables and Methods (cont.)
Static variables, methods, and constants example
(cont.)
12
Class (static) Variables and Methods (cont.)
  • Using class variables example
  • Using class constants example

13
Class (static) Variables and Methods (cont.)
  • Two rules for using static variables
  • Class methods can reference only static
    variables.
  • Never instance variables
  • Instance methods can reference static and
    instance variables.
  • The main method for an executable java class is
    static.
  • JVM sends main message to start a program.

14
Turtle Graphics
  • Open-source Java package for drawing
  • Used in this text to illustrate features of
    object-oriented programming
  • Pen used for drawing on a window
  • StandardPen is a specific type of Pen.

15
Turtle Graphics (cont.)
Table 10-1 Pen messages
16
Turtle Graphics (cont.)
Example 10.1 Drawing a square using Turtle
Graphics
17
Java InterfacesThe Client Perspective
  • Interface A list of a classs public methods
  • Provides information to use a class without
    revealing its implementation
  • When related classes have same interface, they
    can be used interchangeably in a program.
  • In Turtle Graphics, Pen is an interface.
  • StandardPen, WigglePen, and RainbowPen are
    examples of classes that conform to the Pen
    interface.

18
Java InterfacesThe Client Perspective (cont.)
  • A Java interface specifies the method signatures
    for an interface.

19
Java InterfacesThe Client Perspective (cont.)
  • An interface is not a class.
  • But can be used as a data type
  • Having multiple classes conform to the same
    interface allows for polymorphic behavior

20
Java InterfacesThe Client Perspective (cont.)
  • A class that conforms to an interface is said to
    implement the interface.
  • When declaring a variable or parameter, use the
    interface type when possible.
  • Methods using interface types are more general.
  • They are easier to maintain.

21
Java InterfacesThe Implementation Perspective
  • A class implements an interface using the
    implements keyword.

22
Java Interfaces The Implementation Perspective
(cont.)
  • A class that implements an interface must
    implement every method in the interface.
  • A variable declared with the interface type can
    reference objects of any class that implements
    the interface.

23
Java Interfaces The Implementation Perspective
(cont.)
The Circle class
24
Java Interfaces The Implementation Perspective
(cont.)
The Circle class (cont.)
25
Java Interfaces The Implementation Perspective
(cont.)
Example 10.3 Try out some shapes
26
Java Interfaces The Implementation Perspective
(cont.)
Example 10.3 Try out some shapes (cont.)
27
Java Interfaces The Implementation Perspective
(cont.)
Figure 10.3 Output from the TestShapes program
28
Java Interfaces The Implementation Perspective
(cont.)
  • Important interface concepts
  • Interface contains only methods, never variables.
  • Interface methods are usually public.
  • If more than one class implements an interface,
    its methods are polymorphic.

29
Java Interfaces The Implementation Perspective
(cont.)
  • Important interface concepts (cont.)
  • A class can implement methods in addition to
    those listed in the interface.
  • A class can implement more than one interface.
  • Interfaces can be in an inheritance hierarchy.

30
Code Reuse Through Inheritance
  • All classes are part of a large class hierarchy.
  • Object class is the root.
  • Each class inherits variables and methods of the
    classes above it in the hierarchy.
  • New classes can add new variables, add new
    methods, or alter existing inherited methods.
  • Class immediately above a class is a superclass.
  • Any classes that inherit are subclasses.

31
Code Reuse Through Inheritance (cont.)
  • A class can only have one superclass, but may
    have many subclasses.
  • The descendents of a class consist of its
    subclasses, their subclasses, etc.

Figure 10-4 Part of a class hierarchy
32
Code Reuse Through Inheritance (cont.)
  • A class can inherit the characteristics of
    another class using the extends keyword.

The Wheel class extends the Circle class.
33
Code Reuse Through Inheritance (cont.)
The Wheel class extends the Circle class (cont.).
34
Code Reuse Through Inheritance (cont.)
Example 10.4 Draw a wheel and a circle.
35
Code Reuse Through Inheritance (cont.)
Figure 10-5 A circle and a wheel with the same
radius but different positions
36
Code Reuse Through Inheritance (cont.)
  • Wheel implements Shape because it extends Circle,
    which implements Shape.
  • xPos, yPos, and radius inherited by Wheel from
    Shape
  • Must modify these instance variables in Shape to
    be protected rather than private
  • Protected access modifier means variables are
    accessible only in current class and its
    descendents.

37
Code Reuse Through Inheritance (cont.)
  • Methods may also be protected.
  • A constructor may call superclass constructor
    using super().
  • To call one of superclass methods
  • Overriding A subclass can modify a superclass
    method by re-implementing it.

38
Inheritance and Abstract Classes
  • Abstract class Provides functionality (methods),
    but can never be instantiated
  • Can only be extended
  • Declared with keyword abstract
  • May contain standard methods and abstract methods

39
Inheritance and Abstract Classes (cont.)
  • Abstract method A method with no body
  • Defined using keyword abstract
  • A class with an abstract method will also be
    abstract.
  • A subclass of an abstract class must implement
    every abstract method in that class.
  • Final methods Methods that cannot be overridden
    in a subclass

40
Inheritance and Abstract Classes (cont.)
  • Partial abstract class/method example

41
Interfaces, Inheritance, and Relationships among
Classes
  • A Java interface has a name and consists of a
    list of method headers.
  • One or more classes can implement the same
    interface.
  • If a variable is declared as an interface type,
    it can be associated with an object from any
    class that implements the interface.

42
Interfaces, Inheritance, and Relationships among
Classes (cont.)
  • If a class implements an interface, then all of
    its subclasses do so implicitly.
  • A subclass inherits all of the characteristics of
    its superclass.
  • Subclass can add new variables and methods or
    modify inherited methods.
  • Characteristics common to several classes can be
    collected in a common abstract superclass that is
    never instantiated.

43
Interfaces, Inheritance, and Relationships among
Classes (cont.)
  • An abstract class can contain headers for
    abstract methods that are implemented in the
    subclasses.
  • A classs constructors and methods can use
    constructors and methods in the superclass.
  • Inheritance reduces repetition and promotes the
    reuse of code.

44
Interfaces, Inheritance, and Relationships among
Classes (cont.)
  • Interfaces and inheritance promote the use of
    polymorphism.
  • When a message is sent to an object, Java looks
    for a matching method.
  • Search starts in the objects class and, if
    necessary, continues up the class hierarchy

45
Interfaces, Inheritance, and Relationships among
Classes (cont.)
  • Four ways in which methods in a subclass can be
    related to methods in a superclass
  • Implementation of an abstract method
  • Extension
  • Overriding
  • Finality
  • It is possible to work only with abstract
    classes, forgoing interfaces.

46
Interfaces, Inheritance, and Relationships among
Classes (cont.)
Figure 10-7 Three types of relationships among
classes
47
Acceptable Classes for Parameters and Return
Values
  • If an object of class BBB is expected, it is
    always acceptable to substitute an object of a
    subclass.
  • But never of a superclass
  • A subclass of BBB inherits all of BBBs methods.
  • No guarantees about the methods in the superclass

48
Error Handling with Classes
  • Before implementing error handling code, must
    determine error conditions for a class
  • Preconditions Describe what must be true before
    a particular method is called
  • Values for parameters/instance variables
  • Postconditions Describe what must be true after
    a particular method has been executed
  • Return values and altered instance variables

49
Error Handling with Classes (cont.)
  • Example

50
Exceptions
  • JVM can throw exceptions when illegal operations
    are attempted.
  • Commonly used exception classes

51
Exceptions (cont.)
  • Can throw exceptions in methods
  • To enforce pre-conditions or any other condition
  • Syntax
  • Example

52
Exceptions (cont.)
  • Exceptions to enforce pre-conditions

53
Exceptions (cont.)
  • Clients who call such methods need to catch the
    exceptions so the program does not halt.
  • Embed method call in a try-catch statement

54
Exceptions (cont.)
  • A method may throw more than one type of
    exception.
  • Client can handle each type explicitly.
  • Example

55
Reference Types, Equality, and Object Identity
  • Aliasing Two reference variables point to same
    object
  • Comparing objects for equality
  • Comparing two reference variables using
    indicates whether the variables point to the same
    object.
  • To compare values of two distinct objects for
    equality, use the equals method.

56
Reference Types, Equality, and Object Identity
(cont.)
  • equals method Defined in Object class
  • Uses operator by default
  • A class must override equals to allow for
    comparison of objects contents.
  • Example

57
Reference Types, Equality, and Object Identity
(cont.)
  • Copying objects
  • Aliasing is not copying.
  • Use a copy constructor
  • Implement Clonable

58
Summary
  • Class (static) variables provide storage for data
    that all instances of a class can access but do
    not have to own separately.
  • Class (static) methods are written primarily for
    class variables.
  • An interface specifies a set of methods that
    implementing classes must include.
  • Gives clients enough information to use a class

59
Summary (cont.)
  • Polymorphism and inheritance reduce the amount of
    code that must be written by servers and learned
    by clients.
  • Classes that extend other classes inherit their
    data and methods.
  • Methods in different classes that have the same
    name are polymorphic.

60
Summary (cont.)
  • Abstract classes are not instantiated.
  • Help organize related subclasses
  • Contain their common data and methods
  • Error handling can be distributed among methods
    and classes by using preconditions,
    postconditions, and exceptions.

61
Summary (cont.)
  • Because of the possibility of aliasing, the
    programmer should provide
  • equals method for comparing for equality
  • clone method for creating a copy of an object
Write a Comment
User Comments (0)
About PowerShow.com