• Articles
  • Tutorials
  • Interview Questions

Scala Classes and Objects

Introduction to Scala Classes and Objects

A class is a blueprint for objects. Once you define a class, you can create objects from the class with the keyword new. A class definition contains field declarations and method definitions from which fields are used to store the state of an object and methods provides the access to fields and alter the state of an object etc.

Certification in Bigdata Analytics

e.g.

class Point(i: Int, j: Int) {
var x: Int = i
var y: Int = j
def move(xd: Int, yd: Int) {
x = x + xd
y = y + yd
println ("Point in x location is: " + x);
println ("Point in y location is : " + y);
}
}

Once a class is defined then you should be able to construct an object for this class. The syntax is –

var object-name = new class_name()

e.g.

val pt1 = new Point(10, 0);
Semicolon inference

In scala the use of semicolon at the end of a statement is not compulsory. If you want to write a single statement in a single line then there is no need to use semicolon but the semicolon is required when you want to write many statements on a single line:

e.g.

val s = "hello"; println(s)
if (x < 2)
println("x is less than 2")
else
println("x is not less than 2")

Become a Big Data Architect

Singleton objects

There is one way in which scala is more object-oriented than Java is that the classes in Scala cannot have a static member. In its place, it has singleton objects. A singleton object definition is like a class definition but in this use the keyword object except for class keyword.

class Point(val i: Int, val j: Int) {
var x: Int = i
var y: Int = j
def moves(xd: Int, yd: Int) {
x = x + xd
y = y + yd
println ("New point in x location is: " + x);
println ("New point in y location is : " + y);
}
}
object Intellipaat {
def main(args: Array[String]) {
val pt1 = new Point(10, 0);  // object pt1
pt1.moves(20, 10);        // Move the point into another location
}
}

Then Compile and execute the above program as follows:
scalac Intellipaat.scala
scala Intellipaat
Output
New point in x location is: 30
New point in y location is: 10

Course Schedule

Name Date Details
Big Data Course 14 Dec 2024(Sat-Sun) Weekend Batch View Details
21 Dec 2024(Sat-Sun) Weekend Batch
28 Dec 2024(Sat-Sun) Weekend Batch

About the Author

Technical Research Analyst - Big Data Engineering

Abhijit is a Technical Research Analyst specialising in Big Data and Azure Data Engineering. He has 4+ years of experience in the Big data domain and provides consultancy services to several Fortune 500 companies. His expertise includes breaking down highly technical concepts into easy-to-understand content.