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

Using static methods to provide overridable class-level values


Class constants have a great limitation: we cannot provide new values to them in future subclasses of the VirtualCreature class that represent specific types of virtual creatures. It makes sense, because they are constants. These subclasses need to set a different value for ATTACK_POWER or AVERAGE_SPEED. Instead of working with class constants, we can create the following class methods that return the average values for each profile value. We will be able to make these methods return a different value in subclasses of the VirtualCreature class.

  • getAttackPower

  • getDefensePower

  • getSpecialAttackPower

  • getSpecialDefensePower

  • getAverageSpeed

  • getCatchRate

  • getGrowthRate

The following lines show a new version of the VirtualCreature class that defines the seven previously listed class methods with the public access modifier. Notice that the usage of the static keyword in the method declarations makes them class methods. The code file...