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

Understanding classes and instances in Java 9


In the previous chapter, we learned some of the basics of the object-oriented paradigm, including classes and objects. We started working on the backend for a Web Service related to 2D shapes. We ended up creating a UML diagram with the structure of many classes, including their hierarchy, fields, and methods. It is time to take advantage of JShell to start coding a basic class and work with its instances in JShell.

In Java 9, a class is always the type and blueprint. The object is the working instance of the class, and therefore, objects are also known as instances.

Note

Classes are first-class citizens in Java 9 and they will be the main building blocks of our object-oriented solutions.

One or more variables can hold a reference to an instance. For example, consider that we have the following three variables of the Rectangle type:

  • rectangle1

  • rectangle2

  • rectangle10

  • rectangle2 0

Let's consider that the rectangle1 variable holds a reference to...