This tutorial emphasises fluency using JShell exercises
Get a thorough introduction to contract programming code reuse via Java generics
Learn how to use the new module system
How to use proper functional programming style inside Java 9
Book Description
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.
What you will learn
Engage with object-oriented programming in Java 9, starting with code snippets in JShell
Optimize your code, applying functional programming features
Discover the advantages of modularity
Become very proficient at using JShell itself
Learn the new approach to Java programming, which uses the REPL as a prototyping tool
Who this book is for
This book can be understood by anyone who is a graduate of computer science or someone who has just begun working as a software engineer. Basically, an understanding of an object-oriented programming language like Python, C++ or indeed, an earlier Java version is sufficient. It would be helpful to have participated in the full product cycle of a software engineering project.
Table of Contents
JShell: A Read-Evaluate-Print-Loop for Java 9
Objects from the real-world to UML diagrams and Java 9 in the JShell
Classes and instances in Java 9
Encapsulation of data
Mutable and immutable classes
Inheritance, abstraction, extension and specialization
Members inheritance, typecasting and polymorphism
Contract programming with interfaces
Advanced Contract Programming with Interfaces
Maximization of code reuse with generics in Java 9
Advanced generics in Java 9
Object-Oriented, Functional Programming and Lambda Expressions in Java 9