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.
- 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