Escala | Constructor auxiliar

Los constructores se utilizan para inicializar el estado del objeto. Al igual que los métodos, un constructor también contiene una colección de sentencias (es decir, instrucciones). Las sentencias se ejecutan en el momento de la creación del objeto. En el programa Scala, los constructores que no sean el constructor principal se conocen como constructores auxiliares . Se nos permite crear cualquier cantidad de constructores auxiliares en nuestra clase Scala, pero una clase Scala contiene solo un constructor principal.
Los constructores auxiliares se definen como métodos en la clase con la palabra clave this . Podemos describir múltiples constructores auxiliares, pero deben tener diferentes listas de parámetros.
Sintaxis: 
 

def this(......)

Tratemos de entender los constructores auxiliares con la ayuda de algunos ejemplos. 
Ejemplo #1: Usando un Constructor Auxiliar 
 

Scala

// Scala program to illustrate the
// concept of Auxiliary Constructor
 
// Primary constructor
class GFG( Lname: String, Tname: String)
{
    var no: Int = 0;;
    def show()
    {
        println("Language name: " + Lname);
        println("Topic name: " + Tname);
        println("Total number of articles: " + no);
         
    }
     
    // Auxiliary Constructor
    def this(Lname: String, Tname: String, no:Int)
    {
         
        // Invoking primary constructor
        this(Lname, Tname)
        this.no = no
    }
}
 
// Creating object
object Main
{
    // Main method
    def main(args: Array[String])
    {
         
        // Creating object of GFG class
        var obj = new GFG("Scala", "Constructor", 4);
        obj.show();
    }
}

Producción: 
 

Language name: Scala
Topic name: Constructor
Total number of articles: 4

En el ejemplo anterior, como podemos ver, solo se usa un constructor auxiliar y el constructor principal se invoca en ese constructor auxiliar. Después de crear el objeto de la clase GFG (obj), se llamará a la función show() e imprimirá el resultado. 
  
Ejemplo #2: Usar más de un Constructor Auxiliar. 
 

scala

// Scala program to illustrate the
// concept of more than concept
// Auxiliary Constructor
 
// Primary constructor
class Company
{
    private var Cname = ""
    private var Employee = 0
   
    // Creating function
    def show()
    {
        println("Language name: " + Cname);
        println("Total number of employee: " + Employee);
    }
 
    // An auxiliary constructor
    def this(Cname: String)
    {
        // Calls primary constructor
        this()
        this.Cname = Cname
    }
 
    // Another auxiliary constructor
    def this(Cname: String, Employee: Int)
    {
          // Calls previous auxiliary constructor
        this(Cname)
        this.Employee = Employee
    }
}
 
// Creating object
object Main
{
    // Main method
    def main(args: Array[String])
    {
        // Primary constructor
        val c1 = new Company
        c1.show()
         
        // First auxiliary constructor
        val c2 = new Company("GeeksForGeeks")
        c2.show()
         
        // Second auxiliary constructor
        val c3 = new Company("GeeksForGeeks", 42)
        c3.show()
         
    }
}

Producción: 
 

Language name: 
Total number of employee: 0
Language name: GeeksForGeeks
Total number of employee: 0
Language name: GeeksForGeeks
Total number of employee: 42

En el ejemplo anterior, como podemos ver, se crean dos constructores auxiliares con diferentes parámetros. El constructor auxiliar invocó al constructor primario y otro constructor auxiliar invocó al constructor auxiliar previamente definido.
 

Algunos puntos importantes sobre el constructor auxiliar
  • En una sola clase, podemos crear uno o más constructores auxiliares, pero tienen firmas o listas de parámetros diferentes.
  • Cada constructor auxiliar debe llamar a uno de los constructores definidos anteriormente, este sería el constructor primario o el constructor auxiliar anterior.
  • El constructor de invocación puede ser un constructor auxiliar primario o anterior que viene textualmente antes del constructor de llamada.
  • La primera declaración del constructor auxiliar debe contener esta palabra clave.

Publicación traducida automáticamente

Artículo escrito por DivyaPareek 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 *