Preface
Java is definitely one of the most popular programming languages of this century. However, whenever we had to quickly explore new algorithms or new application domains, Java didn't provide us with a simple way of executing code snippets and print the results. As a result of this limitation, many developers started working with other programming languages that offered a REPL (Read-Evaluate-Print-Loop) utility, such as Scala and Python. However, many times, it was necessary to go back to Java after the exploratory phase finished and the requirements and the algorithms were clear.
Java 9 introduces JShell, a new utility that allows us to easily run Java 9 code snippets and print the results. This utility is a REPL, and makes it easy for us to work with Java as developers do with Scala and Python. JShell makes it easier to learn Java 9 and its most important features.
Object-oriented programming, also known as OOP, is a required skill in absolutely every modern software developer job. It makes a lot of sense because OOP allows you to maximize code reuse and minimize maintenance costs. However, learning object-oriented programming is challenging because it includes too many abstract concepts that require real-life examples to be easy to understand. In addition, object-oriented code that doesn't follow best practices can easily become a maintenance nightmare.
Java is a multi-paradigm programming language, and one of its most important paradigms is OOP. If you want to work with Java 9, you need to master OOP in Java. In addition, as Java 9 also grabs nice features found in functional programming languages, it is convenient to know how to mix OOP code with functional programing code.
This book will allow you to develop high-quality reusable object-oriented code in Java 9 with JShell. You will learn the object-oriented programming principles and how Java 9 implements them, combined with modern functional programming techniques. You will learn how to capture objects from real-world elements and create object-oriented code that represents them. You will understand Java's approach towards object-oriented code. You will maximize code reuse and reduce maintenance costs. Your code will be easy to understand and it will work with representations of real-life elements.
In addition, you will learn how to organize code using the new modularity feature introduced in Java 9, and you will be ready to create complex applications.