Singleton Object
Scala ist mehr objektorientiert als Java, daher enthält Scala kein Konzept für statische Schlüsselwörter. Anstelle des statischen Schlüsselworts hat Scala ein Singleton-Objekt. Ein Singleton-Objekt ist ein Objekt, das ein einziges Objekt einer Klasse definiert. Ein Singleton-Objekt bietet einen Einstiegspunkt für die Ausführung Ihres Programms. Wenn Sie kein Singleton-Objekt in Ihrem Programm erstellen, dann wird Ihr Code zwar erfolgreich kompiliert, aber nicht ausgegeben. Sie benötigen also ein Singleton-Objekt, um die Ausgabe Ihres Programms zu erhalten. Ein Singleton-Objekt wird mit dem Schlüsselwort object erstellt.
Syntax:
object Name{// code...}
Wichtige Punkte zum Singleton-Objekt
- Die Methode im Singleton-Objekt ist global zugänglich.
- Es ist nicht erlaubt, eine Instanz eines Singleton-Objekts zu erzeugen.
- Es ist nicht erlaubt, Parameter im primären Konstruktor eines Singleton-Objekts zu übergeben.
- In Scala kann ein Singleton-Objekt Klassen und Traits erweitern.
- In Scala ist eine Hauptmethode immer in einem Singleton-Objekt vorhanden.
- Auf die Methode im Singleton-Objekt wird mit dem Namen des Objekts zugegriffen (genau wie beim Aufruf einer statischen Methode in Java), so dass es nicht notwendig ist, ein Objekt zu erstellen, um auf diese Methode zuzugreifen.
Beispiel 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();
}
}
Ausgang:
Height of the rectangle is:40Length of the rectangle is:20Area of the rectangle is :800
Beispiel 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();
}
}
Ausgang:
Welcome ! GeeksforGeeksThis is Scala language tutorial
Erläuterung: Im obigen Beispiel haben wir zwei Singleton-Objekte, d.h. Exampleofsingleton und Main. Das Objekt Exampleofsingleton enthält eine Methode namens display(), die wir nun im Objekt Main aufrufen. Mit dieser Anweisung Exampleofsingleton.display(); rufen wir die Methode display() auf, die im Exampleofsingleton-Objekt vorhanden ist, und geben die Ausgabe aus.
Companion-Objekt
Companion-Objekt ist bekannt als ein Objekt, dessen Name derselbe ist wie der Name der Klasse. Mit anderen Worten, wenn ein Objekt und eine Klasse den gleichen Namen haben, dann wird dieses Objekt als Begleitobjekt und die Klasse als Begleitklasse bezeichnet. Ein Companion-Objekt wird in derselben Quelldatei definiert, in der auch die Klasse definiert ist. Ein Companion-Objekt darf sowohl auf private Methoden als auch auf private Felder der Klasse zugreifen.
Beispiel:
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();
}
}
Ausgabe:
GeeksforGeeksTutorial of Companion object