60 likes | 75 Views
Explore the concept and usefulness of Java interfaces in software development. Learn how interfaces provide a contract for classes, enabling software reuse and genericity. Discover how interfaces are applied in WordGames and see a UML class diagram illustrating their usage.
E N D
Interfaces • Outline: • Generic interface versus Java interface • What a (Java) interface is: • Its syntax • What it says • What it does NOT say • How it is used, why it is useful • How interfaces are used in WordGames • UML class diagram for WordGames • WordGames • An application of interfaces
Generic computer-science interface The “face” that one entity shows others: What services it provides What information it expects Physical examples: Computer Interfaces Stethoscope Telephone Camera Toaster Generic interfaces
Why have interfaces? • A Java interface is the “face” that one class shows others • An interface contains the signature but not body for each method • Any class that implements an interface must provide the methods listed in the interface • So an interface specifies a contract public interface ClockRadio { public Time getTime(); public void setTime(Time x); public void setTime(Time x, Station s); } Example of a Java interface
public interface ClockRadio { public Time getTime(); public void setTime(Time x); public void setTime(Time x, Station s); } Why have interfaces? • Java interfaces are important because: • They provide for software reuse. For example: • I provide a StringTransformable interface • You provide classes that implement StringTransformable • Our separately-written code works together seamlessly! • They provide genericity. For example: • My code declares each of your things as a StringTransformable thing • You provide various implementations of StringTransformable • e.g. Capitalizer, NameDropper, UbbyDubber, … • My code is generic – it doesn’t care what implementation of StringTransformable you supply! Interfaces can (and should) be used as types
UML class diagram for WordGames All our stuff The StringTransformable interface is how our code knows how to “connect” to your code <<interface>StringTransformable --------------------------- transform(String) : String Capitalizer NameDropper xxx … xxx Questions on this important idea?
public interface ClockRadio { public Time getTime(); public void setTime(Time x); public void setTime(Time x, Station s); } Java Interfaces:Summary • A Java interface is the “face” that one class shows others • An interface contains the signature but not body for each method • Any class that implements an interface must provide the methods listed in the interface • So an interface provides a contract • Java interfaces are important because they provide for: • Software reuse • Genericity From now on, “interface” means “Java interface” to us