Singleton Object
Scala är ett mer objektorienterat språk än Java, så Scala innehåller inget koncept med statiska nyckelord. Istället för statiska nyckelord har Scala singletonobjekt. Ett singletonobjekt är ett objekt som definierar ett enda objekt av en klass. Ett singletonobjekt ger en ingångspunkt för ditt programutförande. Om du inte skapar ett singletonobjekt i ditt program kan din kod kompileras med framgång men ger ingen utdata. Du behöver alltså ett singletonobjekt för att få utdata från ditt program. Ett singletonobjekt skapas med hjälp av nyckelordet object.
Syntax:
object Name{// code...}
Väsentliga punkter om singletonobjekt
- Metoden i singletonobjektet är globalt tillgänglig.
- Du får inte skapa en instans av ett singletonobjekt.
- Du får inte lämna över en parameter i singletonobjektets primära konstruktör.
- I Scala kan ett singletonobjekt förlänga class och traits.
- I Scala finns det alltid en huvudmetod i singletonobjektet.
- Metoden i singletonobjektet nås med objektets namn (precis som när man anropar statisk metod i Java), så man behöver inte skapa ett objekt för att få tillgång till metoden.
Exempel 1:
class
AreaOfRectangle
{
var
length
=
20
;
var
height
=
40
;
def
area()
{
var
ar
=
length * height;
println(
"Height of the rectangle is:"
+ height);
println(
"Length of the rectangle is:"
+ length);
println(
"Area of the rectangle is :"
+ ar);
}
}
object
Main
{
def
main(args
:
Array)
{
var
obj
=
new
AreaOfRectangle();
obj.area();
}
}
Output:
Height of the rectangle is:40Length of the rectangle is:20Area of the rectangle is :800
Exempel 2:
object
Exampleofsingleton
{
var
str
1
=
"Welcome ! GeeksforGeeks"
;
var
str
2
=
"This is Scala language tutorial"
;
def
display()
{
println(str
1
);
println(str
2
);
}
}
object
Main
{
def
main(args
:
Array)
{
Exampleofsingleton.display();
}
}
Output:
Welcome ! GeeksforGeeksThis is Scala language tutorial
Förklaring: I exemplet ovan har vi två singletonobjekt, Exampleofsingleton och Main. Exampleofsingleton-objektet innehåller en metod som heter display(), nu anropar vi denna metod i Main-objektet. Genom att använda detta uttalande Exampleofsingleton.display(); anropar vi metoden display() som finns i Exampleofsingleton-objektet och skriver ut utdata.
Companion Object
Companion object är känt som ett objekt vars namn är detsamma som klassens namn. Eller Med andra ord, när ett objekt och en klass har samma namn kallas det objektet companion object och klassen companion class. Ett companion object definieras i samma källfil som klassen definieras i. Ett kompanjonobjekt har tillgång till både privata metoder och privata fält i klassen.
Exempel:
class
ExampleofCompanion
{
var
str
1
=
"GeeksforGeeks"
;
var
str
2
=
"Tutorial of Companion object"
;
def
show()
{
println(str
1
);
println(str
2
);
}
}
object
ExampleofCompanion
{
def
main(args
:
Array)
{
var
obj
=
new
ExampleofCompanion();
obj.show();
}
}
Output:
GeeksforGeeksTutorial of Companion object