Chapter 8. Classes
In Part 1 of this book you learned about Scalaâs core types and how to group them into collections. Now it is time to build your own types with classes.
Classes are the core building block of object-oriented languages, a combination of data structures with functions (âmethodsâ). A class defined with values and variables can be instantiated as many times as needed, each one initialized with its own input data. With inheritance classes can extend other classes, creating a hierarchy of subclasses and superclasses. Polymorphism makes it possible for these subclasses to stand in for their parent classes, while encapsulation provides privacy controls to manage the outward appearance of a class. If these terms are unfamiliar to you, I recommend reading up on general object-oriented programming methodology. Although we will cover the Scala object-oriented features that make use of these concepts, we wonât be spending time on learning the concepts themselves. Understanding them can help you to make the most of Scalaâs object-oriented features and design expressive and reusable types.
Weâll start by defining the simplest possible class and instantiating it:
scala> class User defined class User scala> val u = new User u: User = User@7a8c8dcf scala> val isAnyRef = u.isInstanceOf[AnyRef] isAnyRef: Boolean = true
We now have our first class. When the REPL prints it out, you see the class name and a hexadecimal string. This is the JVMâs internal reference for that ...
Get Learning Scala now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.