Chapter 5. Basic Object-Oriented Programming in Scala
Scala is an object-oriented language like Java, Python, Ruby, Smalltalk, and others. If you’re coming from the Java world, you’ll notice some notable improvements over the limitations of Java’s object model.
We assume you have some prior experience with object-oriented programming (OOP), so we will not discuss the basic principles here, although some common terms and concepts are discussed in the Glossary. See [Meyer1997] for a detailed introduction to OOP; see [Martin2003] for a recent treatment of OOP principles in the context of “agile software development”; see [GOF1995] to learn about design patterns; and see [WirfsBrock2003] for a discussion of object-oriented design concepts.
Class and Object Basics
Let’s review the terminology of OOP in Scala.
Note
We saw previously that Scala has the concept of a declared
object
, which we’ll
dig into in Classes and Objects: Where Are the Statics?. We’ll use the
term instance to refer to a class instance
generically, meaning either an object
or an instance
of a class
, to avoid the potential for confusion
between these two concepts.
Classes are declared with
the keyword class
. We will see later that additional
keywords can also be used, like final
to prevent
creation of derived classes and
abstract
to indicate that the class can’t be
instantiated, usually because it contains or inherits member declarations
without providing concrete definitions for them.
An instance can refer to itself using ...
Get Programming 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.