Objeto Singleton
Scala es un lenguaje más orientado a objetos que Java por lo que, Scala no contiene ningún concepto de palabra clave estática. En lugar de la palabra clave estática Scala tiene objeto singleton. Un objeto Singleton es un objeto que define un único objeto de una clase. Un objeto singleton proporciona un punto de entrada a la ejecución de tu programa. Si no creas un objeto singleton en tu programa, entonces tu código compila con éxito pero no da salida. Por lo tanto, se requiere un objeto singleton para obtener la salida de su programa. Un objeto singleton se crea mediante el uso de la palabra clave object.
Sintaxis:
object Name{// code...}
Puntos importantes sobre el objeto singleton
- El método en el objeto singleton es globalmente accesible.
- No se permite crear una instancia del objeto singleton.
- No se permite pasar parámetros en el constructor primario del objeto singleton.
- En Scala, un objeto singleton puede extender clases y traits.
- En Scala, un método principal siempre está presente en el objeto singleton.
- El método en el objeto singleton se accede con el nombre del objeto(al igual que llamar a un método estático en Java), por lo que no hay necesidad de crear un objeto para acceder a este método.
Ejemplo 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();
}
}
Salida:
Height of the rectangle is:40Length of the rectangle is:20Area of the rectangle is :800
Ejemplo 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();
}
}
Salida:
Welcome ! GeeksforGeeksThis is Scala language tutorial
Explicación: En el ejemplo anterior, tenemos dos objetos singleton, es decir, Exampleofsingleton y Main. El objeto Exampleofsingleton contiene un método llamado display(), ahora llamamos a este método en el objeto Main. Usando esta declaración Exampleofsingleton.display(); llamamos al método display() que está presente en el objeto Exampleofsingleton e imprimimos la salida.
Objeto acompañante
El objeto acompañante se conoce como un objeto cuyo nombre es igual al nombre de la clase. En otras palabras, cuando un objeto y una clase tienen el mismo nombre, entonces ese objeto se conoce como objeto compañero y la clase se conoce como clase compañera. Un objeto compañero se define en el mismo archivo fuente en el que se define la clase. Un objeto compañero puede acceder tanto a los métodos como a los campos privados de la clase.
Ejemplo:
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();
}
}
Salida:
GeeksforGeeksTutorial of Companion object