Book Image

Java 9 with JShell

By : Gaston C. Hillar
Book Image

Java 9 with JShell

By: Gaston C. Hillar

Overview of this book

The release of Java 9 has brought many subtle and not-so-subtle changes to the way in which Java programmers approach their code. The most important ones are definitely the availability of a REPL, known as JShell, which will make experiments and prototyping much more straightforward than the old IDE-based project-led approach. Another, more subtle change can be seen in the module system, which will lead to more modularized, maintainable code. The techniques to take full advantage of object-oriented code, functional programming and the new modularity features in Java 9 form the main subjects of this book. Each chapter will add to the full picture of Java 9 programming starting out with classes and instances and ending with generics and modularity in Java.
Table of Contents (23 chapters)
Java 9 with JShell
Credits
About the Author
Acknowledgement
About the Reviewer
www.PacktPub.com
Customer Feedback
Preface
Index

Declaring an interface to be used as a type constraint


First, we will create a Sociable interface to specify the requirements that a type must meet in order to be considered a potential member of a party, that is, a sociable animal in our application domain. Then, we will create a SociableAnimal abstract base class that implements this interface, and then, we will specialize this class in three concrete subclasses: SocialLion, SocialParrot, and SocialSwan. Then, we will create a Party class that will be able to work with instances of any class that implements the Sociable interface through generics. We will create two new classes that will represent specific exceptions. We will work with a party of sociable lions, one of sociable parrots, and another of sociable swans.

The following UML diagram shows the interface, the abstract class that implements it, and the concrete subclasses that we will create, including all the fields and meth:

The following lines show the code for the Sociable interface...