Understanding Java Interfaces: An Introduction to UML Class Diagrams
This guide introduces Java interfaces and their significance in UML class diagrams. Interfaces are defined as classes containing only abstract methods and/or constants. Abstract methods have no implementation and must be implemented by any class that adopts the interface. Java allows multiple interfaces to be implemented, making it a robust approach to bypass the limitation of multiple inheritance. Examples include the creation of animal classes like Dog and Whale, which implement the Animal interface, showcasing how interfaces facilitate event handling in GUI applications, ensuring efficient software design.
Understanding Java Interfaces: An Introduction to UML Class Diagrams
E N D
Presentation Transcript
Java 212: Interfaces Intro to UML Diagrams
UML Class Diagram: class Rectangle • +/- refers to visibility • Color coding is not part of the UML diagram
Interfaces • Definition: A class that contains onlyabstract methods and/or named constants • Abstract methods are methods that have no body • The body for those methods should be written inside any class that “implements” the interface • Typically used as a software design parameter during the design phase of an application. • Also sometimes used as a workaround on Java’s limitation of not allowing multiple inheritance • Java allows classes to implement more than one interface • eg: If you want a class to respond to different kinds of events (ActionEvent, WindowEvent, MouseEvent, etc), you can have a class implement all of these interfaces.
public interface Animal { public void speak(); public void eat(); } public class Dog implements Animal { public void speak() { System.out.println("Woof"); } public void eat() { //code to display bone, kibbles } } public class Whale implements Animal { public void speak() { System.out.println("Squeak"); } public void eat() { //code to display little fish, plankton, etc } } An Interface with two implemented classes
Interfaces In our discussion of GUIs, we discussed the use of inner (nested) classes to handle events. In these cases, we implemented the interface by creating a whole new inner class. However, we could just as easily declared an outer class as ‘implementing’ the interface. public class RectangleCalculator implements ActionListener { … or even public class RectangleCalculator implements ActionListener, WindowListener, MouseListener { //declares that this class implements three interfaces…
Two Interface Definitions: public interface WindowListener { public void windowOpened(WindowEvent e); public void windowClosing(WindowEvent e); public void windowClosed(WindowEvent e); public void windowIconified(WindowEvent e); public void windowDeiconified(WindowEvent e); public void windowActivated(WindowEvent e); public void windowDeactivated(WindowEvent e); } public interface ActionListener { public void actionPerformed(ActionEvent e); }