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

Creating mutable classes in Java 9


When we declare instance fields without the final keyword, we create a mutable instance field, which means that we can change their values for each new instance we create after the field is initialized. When we create an instance of a class that defines at least one mutable field, we create a mutable object, which is an object that can change its state after its initialization.

Note

A mutable object is also known as a mutating object.

For example, imagine that we have to develop a Web Service that renders elements in the 3D world and returns a high-resolution rendered scene. Such a task requires us to work with 3D vectors. First, we will work with a mutable 3D vector with three mutable fields: x, y, and z. The mutable 3D vector must provide the following features:

  • Three mutable instance fields of type double: x, y, and z.

  • A constructor that creates an instance by providing the initial values for the x, y, and z fields.

  • A constructor that creates an instance with...