[JAVA] [Scala] Konstruktor

Ich bin in der offiziellen Referenz über den Augji Reali-Konstruktor (this () oder .this) herumgewandert, aber anstatt ihn nicht zu finden, gab es einen Artikel über den Konstruktor als sekundäre Information, sodass der Inhalt ungefähr in der Literatur enthalten ist. Es ist eine Übersetzung.

Der Konstruktor wird verwendet, um den Status des Objekts zu initialisieren. Wie Methoden enthält auch ein Konstruktor eine Reihe von Anweisungen, die beim Erstellen eines Objekts ausgeführt werden.

Scala unterstützt zwei Arten von Konstruktoren.

  1. Primärkonstruktor
  2. Augji Reali Konstruktor

Wenn ein Programm nur einen Konstruktor enthält, wird es als primärer Konstruktor bezeichnet. Der primäre Konstruktor und die Klasse teilen sich denselben Körper, sodass der Programmierer die Erstellung des Konstruktors nicht explizit deklarieren muss.

class Hello(name) {
  // Statements
}
//Primärkonstruktor erstellen
class Monster(name: String, attribute: String, attack: Int, defense: Int) {
  def status: String = {
    s"""
       |Name: $name
       |Attribute: $attribute
       |Attack: $attack
       |Defense: $defense
       |""".stripMargin
  }
}

object Main {
  def main(args: Array[String]): Unit = {
    //Objekterstellung und -initialisierung
    val dmg = new Monster("Dark Magician Girl", "Dark", 2000, 1700)
    println(dmg.status)
  }
}

Name: Dark Magician Girl
Attribute: Dark
Attack: 2000
Defense: 1700
//Primärkonstruktor erstellen
class Nap {
  def zzz: String = {
    "Zzz.."
  }
}

object Main {
  def main(args: Array[String]): Unit = {
    //Objekterstellung und -initialisierung
    val nobita = new Nap
    println(nobita.nap)
  }
}
Zzz..
//Mit Parametern
class Secret private (n: Int) {
  // Statements
}

//Keine Parameter
class Privacy private {
  // Statements
}
class User(val name: String = "Anonymous") {
  def show: String = s"Name: $name"
}

object Main {
  def main(args: Array[String]) = {
    val usr = new User
    println(usr.show)
  }
}

Andere Konstruktoren als der primäre Konstruktor werden als erweiterte Konstruktoren bezeichnet, und Sie können beliebig viele erstellen. Das Programm hat jedoch nur einen primären Konstruktor.

class Apple(product: String, model: String) {
  var color: String = ""

  def details: String = {
    s"""
      |Product name: $product
      |Model: $model
      |Color: $color
      |""".stripMargin
  }

  //Augji Reali Konstruktor
  def this(name: String, model: String, color: String) = {
    //Starten Sie den primären Konstruktor
    this(name: String, model: String)
    this.color = color
  }
}

object Main {
  def main(args: Array[String]): Unit = {
    val device: Apple = new Apple("iPhone", "iPhone 11 Pro", "Gold")
    println(device.details)
  }
}
Product name: iPhone
Model: iPhone 11 Pro
Color: Gold

Literatur

Scala Constructors - GeeksforGeeks

Recommended Posts

[Scala] Konstruktor
Konstrukteur
Java (Konstruktor)
Java-Konstruktor
Verstehen Sie den Java-Konstruktor
Ich habe Scala berührt