Useful Links
Computer Science
Programming
By Language
Scala Programming
1. Introduction to Scala
2. Scala Language Fundamentals
3. Object-Oriented Programming in Scala
4. Functional Programming in Scala
5. The Scala Collections Library
6. Advanced Language Features
7. Concurrency and Parallelism
8. Tooling and Ecosystem
9. Advanced Topics
10. Practical Applications
11. Best Practices and Idioms
Object-Oriented Programming in Scala
Classes
Defining a Class
Constructors
Primary Constructor
Auxiliary Constructors
Fields and Methods
Defining Fields
Defining Methods
Getters and Setters
Access Modifiers
private
protected
public
Scope-based Protection
Class Parameters vs Fields
Companion Classes
Objects
Singleton Objects
Defining Singleton Objects
Use Cases for Singleton Objects
Companion Objects and Companion Classes
Shared Access to Private Members
Factory Methods
The apply Method as a Factory
Defining apply
Usage Patterns
Main Method and Application Entry Points
Case Classes
Defining Case Classes
Automatic Generation of Methods
equals
hashCode
toString
copy
unapply
Immutable by Default
Automatic Companion Object with apply
Support for Pattern Matching
Case Objects
Traits
Defining Traits
Traits as Interfaces
Traits with Concrete Members
Mixing in Multiple Traits
Trait Composition with with
Linearization of Trait Inheritance
Stackable Modifications
Diamond Problem Resolution
Inheritance and Polymorphism
Extending a Class
Overriding Methods
Abstract Classes
Defining Abstract Classes
Abstract Members
Final Classes and Methods
Anonymous Classes
Type Hierarchies
Dynamic Binding
Previous
2. Scala Language Fundamentals
Go to top
Next
4. Functional Programming in Scala