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 fields to provide class-level values


Sometimes, all the members of a class share the same attribute, and we don't need to have a specific value for each instance. For example, virtual creature types have the following profile values:

  • Attack power

  • Defense power

  • Special attack power

  • Special defense power

  • Average speed

  • Catch rate

  • Growth rate

A first approach we might think useful for this situation is to define the following class constants to store the values that are shared by all the instances:

  • ATTACK_POWER

  • DEFENSE_POWER

  • SPECIAL_ATTACK_POWER

  • SPECIAL_DEFENSE_POWER

  • AVERAGE_SPEED

  • CATCH_RATE

  • GROWTH_RATE

Note

Note the usage of uppercase and words separated by underscores (_) for class constant names. This is a naming convention in Java 9.

The following lines show a new version of the VirtualCreature class that defines the seven previously listed class constants with the public access modifier. Notice that the combination of the final and static keywords makes them class constants. The...