Scala Singleton y objetos complementarios

Objeto único

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 un objeto único . Un objeto Singleton es un objeto que define un solo objeto de una clase. Un objeto singleton proporciona un punto de entrada a la ejecución de su programa. Si no crea un objeto singleton en su programa, entonces su código se compila con éxito pero no da salida. Entonces requería un objeto singleton para obtener la salida de su programa. Un objeto singleton se crea utilizando la palabra clave object
Sintaxis: 
 

object Name{
// code...
}

Puntos importantes sobre el objeto singleton 
 

  • El método en el objeto singleton es accesible globalmente.
  • No se le permite crear una instancia de objeto singleton.
  • No puede pasar parámetros en el constructor principal del objeto singleton.
  • En Scala, un objeto singleton puede extender la clase y los rasgos.
  • En Scala, un método principal siempre está presente en el objeto singleton.
  • Se accede al método en el objeto singleton con el nombre del objeto (al igual que llamar al método estático en Java), por lo que no es necesario crear un objeto para acceder a este método. 
     

Ejemplo 1: 
 

Scala

// A simple Scala program to illustrate
// the concept of singleton object
 
class AreaOfRectangle
{
     
    // Variables
    var length = 20;
    var height = 40;
     
    // Method which gives the area of the rectangle
    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);
    }
}
 
// singleton object
object Main
{
    def main(args: Array[String])
    {
         
        // Creating object of AreaOfRectangle class
        var obj = new AreaOfRectangle();
        obj.area();
    }
}

Producción: 
 

Height of the rectangle is:40
Length of the rectangle is:20
Area of the rectangle is :800

Ejemplo 2: 
 

Scala

// A Scala program to illustrate
// how to call method inside singleton object
 
// Singleton object with named
// as Exampleofsingleton
object Exampleofsingleton
{
     
    // Variables of singleton object
    var str1 = "Welcome ! GeeksforGeeks";
    var str2 = "This is Scala language tutorial";
     
    // Method of singleton object
    def display()
    {
        println(str1);
        println(str2);
    }
}
 
// Singleton object with named as Main
object Main
{
    def main(args: Array[String])
    {
         
        // Calling method of singleton object
        Exampleofsingleton.display();
    }
}

Producción: 
 

Welcome ! GeeksforGeeks
This 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 y la salida de impresión. 
 

Objeto complementario

El objeto complementario se conoce como un objeto cuyo nombre es el mismo que el nombre de la clase. O En otras palabras, cuando un objeto y una clase tienen el mismo nombre , ese objeto se conoce como objeto complementario y la clase se conoce como clase complementaria. Un objeto complementario se define en el mismo archivo de origen en el que se define la clase. Un objeto complementario puede acceder tanto a métodos privados como a campos privados de la clase. 
Ejemplo: 
 

Scala

// A Scala program to illustrate
// the concept of the Companion object
 
// Companion class
class ExampleofCompanion
{
     
    // Variables of Companion class
    var str1 = "GeeksforGeeks";
    var str2 = "Tutorial of Companion object";
     
    // Method of Companion class
    def show()
    {
        println(str1);
        println(str2);
    }
}
 
// Companion object
object ExampleofCompanion
{
    def main(args: Array[String])
    {
        var obj = new ExampleofCompanion();
        obj.show();
    }
}

Producción: 
 

GeeksforGeeks
Tutorial of Companion object

Publicación traducida automáticamente

Artículo escrito por ankita_saini y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *