1 / 61

Chapter 10 Classes Continued

Chapter 10 Classes Continued. Fundamentals of Java. 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.

lamya
Télécharger la présentation

Chapter 10 Classes Continued

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  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. Fundamentals of Java

  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. Fundamentals of Java

  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. Fundamentals of Java

  5. Vocabulary • Abstract class • Abstract method • Aggregation • Class (static) method • Class (static) variable • Concrete class • Dependency Fundamentals of Java

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

  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 Fundamentals of Java

  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. Fundamentals of Java

  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; Fundamentals of Java

  10. Class (static) Variables and Methods (cont.) Static variables, methods, and constants example Fundamentals of Java

  11. Class (static) Variables and Methods (cont.) Static variables, methods, and constants example (cont.) Fundamentals of Java

  12. Class (static) Variables and Methods (cont.) • Using class variables example: • Using class constants example: Fundamentals of Java

  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. Fundamentals of Java

  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. Fundamentals of Java

  15. Turtle Graphics (cont.) Table 10-1: Pen messages Fundamentals of Java

  16. Turtle Graphics (cont.) Example 10.1: Drawing a square using Turtle Graphics Fundamentals of Java

  17. Java Interfaces—The Client Perspective • Interface: A list of a class’s 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, Penis an interface. • StandardPen, WigglePen, and RainbowPen are examples of classes that conform to the Pen interface. Fundamentals of Java

  18. Java Interfaces—The Client Perspective (cont.) • A Java interface specifies the method signatures for an interface. Fundamentals of Java

  19. Java Interfaces—The 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: Fundamentals of Java

  20. Java Interfaces—The Client Perspective (cont.) • A class that conforms to an interface is said to implementthe 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. Fundamentals of Java

  21. Java Interfaces—The Implementation Perspective • A class implements an interface using the implements keyword. Fundamentals of Java

  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. Fundamentals of Java

  23. Java Interfaces – The Implementation Perspective (cont.) The Circle class Fundamentals of Java

  24. Java Interfaces – The Implementation Perspective (cont.) The Circle class (cont.) Fundamentals of Java

  25. Java Interfaces – The Implementation Perspective (cont.) Example 10.3: Try out some shapes Fundamentals of Java

  26. Java Interfaces – The Implementation Perspective (cont.) Example 10.3: Try out some shapes (cont.) Fundamentals of Java

  27. Java Interfaces – The Implementation Perspective (cont.) Figure 10.3: Output from the TestShapes program Fundamentals of Java

  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. Fundamentals of Java

  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. Fundamentals of Java

  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. Fundamentals of Java

  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 Fundamentals of Java

  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. Fundamentals of Java

  33. Code Reuse Through Inheritance (cont.) The Wheel class extends the Circle class (cont.). Fundamentals of Java

  34. Code Reuse Through Inheritance (cont.) Example 10.4: Draw a wheel and a circle. Fundamentals of Java

  35. Code Reuse Through Inheritance (cont.) Figure 10-5: A circle and a wheel with the same radius but different positions Fundamentals of Java

  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. Fundamentals of Java

  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. Fundamentals of Java

  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 Fundamentals of Java

  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 Fundamentals of Java

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

  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. Fundamentals of Java

  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. Fundamentals of Java

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

  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 object’s class and, if necessary, continues up the class hierarchy Fundamentals of Java

  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. Fundamentals of Java

  46. Interfaces, Inheritance, and Relationships among Classes (cont.) Figure 10-7: Three types of relationships among classes Fundamentals of Java

  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 BBB’s methods. • No guarantees about the methods in the superclass Fundamentals of Java

  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 Fundamentals of Java

  49. Error Handling with Classes (cont.) • Example: Fundamentals of Java

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

More Related