Kotlin-Klasse zum Senden an Java-Entwickler

Für Java-Entwickler werde ich über Kotlin-Klassen schreiben.

Klassendefinition

Schreiben Sie den Klassennamen nach dem Schlüsselwort class. Definieren wir die Hundeklasse.

class Dog {
}

Klassenvererbung und Schnittstellenimplementierung werden nach dem Doppelpunkt geschrieben. Lassen Sie uns die Klasse Dog und Animal erben.

class Dog: Animal() {
}

Lassen Sie uns außerdem die Walkable-Schnittstelle implementieren.

class Dog: Animal(), Walkable {
}

Eigentum

Kotlin-Klassen können Eigenschaften haben. Dies ist ** eine Kombination aus Java-Feldern, Gettern und Setzern **. Deklarieren wir eine String-Typ-Eigenschaft namens name in der Dog-Klasse. Verwenden Sie das Schlüsselwort var.

class Dog {
    var name: String = "pochi"
}


val dog = Dog()
val aName = dog.name //Wirkt als Getter
dog.name = "taro" //Wirkt als Setter

Wenn Sie es schreibgeschützt machen möchten, verwenden Sie das Schlüsselwort val.

class Dog {
    val name: String = "pochi"
}

val dog = Dog()
val aName = dog.name //Wirkt als Getter
dog.name = "taro" //Kompilierungsfehler!

Das Schlüsselwort val kann nicht neu zugewiesen werden, sodass sein Wert nicht innerhalb der Klasse geändert werden kann. Verwenden Sie das Schlüsselwort private set, um es innerhalb der Klasse änderbar zu machen.

class Dog {
    var name: String = "pochi"
        private set
    
    fun updateName(newName: String) {
        this.name = newName
    }
}

val dog = Dog()
dog.updateName("taro")

An diesem Punkt sind diejenigen, die denken: "Nein, es ist dasselbe wie ein Feld in Java öffentlich zu machen, richtig?" Scharf. Kotlins Eigenschaften sind klar in Getter, Setter und Felder unterteilt. Weitere Informationen [hier](https://qiita.com/watanave/items/1386d450f11ddf7d6c09#property und Hintergrundfeld)

Primärkonstruktor

Schreiben Sie Kotlins Konstruktor an einer etwas ungewöhnlichen Position.

class Dog constructor(/*Hier ist der Konstruktor*/) {
}

Das Schlüsselwort "Konstruktor" kann weggelassen werden. Sie kann beim Hinzufügen einer Anmerkung nicht weggelassen werden. Der an dieser Position geschriebene Konstruktor heißt ** Primärkonstruktor **. Selbst wenn Sie einen Konstruktor sagen, können Sie Eigenschaften und eine Liste von Konstruktorargumenten beschreiben.

Definieren Sie Eigenschaften im Konstruktor

Wenn Sie dem Konstruktorargument das Schlüsselwort var oder val hinzufügen, wird es so wie es ist zu einer Eigenschaft.

class Dog(var name: String) {
}

↑ ist gleichbedeutend mit ↓.

class Dog(name: String) {
    var name: String = name
}

Initialisierer

Der primäre Konstruktor kann jetzt Konstruktorargumente und -eigenschaften deklarieren. Andere Prozesse, die ausgeführt werden müssen, wenn die Klasse initialisiert wird, können im Initialisierer beschrieben werden.

class Point(val x: Int, val y: Int)
class Size(val width: Int, val height: Int)

class Regtangle(val origin: Point, val size: Size) {
    val area: Int

    init {
        this.area = this.size.width * this.size.height
    }
}

val rectangle = Regtangle(30, 10, 10, 20)
println(rectangle.area)

Die Klasse "Regtangle" erhält den Ursprung und die Größe vom Auftragnehmer und berechnet die Fläche mit dem Initialisierer.

Sekundärkonstruktor

Da es einen primären Konstruktor gibt, gibt es auch einen sekundären Konstruktor. Sie können mehrere sekundäre Konstruktoren definieren. Der sekundäre Konstruktor muss den primären Konstruktor nach : aufrufen.

class Point(val x: Int, val y: Int)
class Size(val width: Int, val height: Int)

class Regtangle(val origin: Point, val size: Size) {

    constructor(x: Int, y: Int, width: Int, height: Int): this(Point(x, y), Size(width, height))

}

Der Klasse "Regtangle" wurde ein Konstruktor hinzugefügt, der den Ursprung und die Größe als separate Parameter empfängt.

Vergleiche Java und Kotlin

Definieren Sie die Dog-Klasse in Java. Es gibt Felder mit den Namen Name und Alter, die Getter bzw. Setter definieren.

public class Dog {
    
    private String name;
    private int age;
    
    public Dog(String name, int age) {
        this.name = name;
        this.age = age;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }
    
}

Wie wäre es, dies in Kotlin zu schreiben?

class Dog(var name: String, var age: Int)

Das ist alles was es braucht.

Recommended Posts

Kotlin-Klasse zum Senden an Java-Entwickler
Kotlins Klasse Teil 2 zum Senden an Java-Entwickler
Kotlin-Scope-Funktionen zum Senden an Java-Entwickler
Kotlin-Funktionen und Lambdas zum Senden an Java-Entwickler
Erste Schritte mit Kotlin zum Senden an Java-Entwickler
Kotlins Null-Sicherheit zum Senden an Java-Entwickler
Verwendung der Java-Klasse
So zerlegen Sie eine Java-Klassendatei
So dekompilieren Sie eine Java-Klassendatei
Verwendung von Klassenmethoden [Java]
Kotlin-Generika für Java-Entwickler
[Android] Konvertieren Sie Android Java-Code in Kotlin
[Java] Verwendung der Math-Klasse
[Kotlin] Drei Möglichkeiten, um Klasse von KClass zu bekommen
Konvertieren Sie alle Android-Apps (Java) in Kotlin
Einführung in Kotlin für iOS-Entwickler lin ー Kotlin-Erstellung
[Verarbeitung × Java] Verwendung der Klasse
Java: So senden Sie Werte von Servlet zu Servlet
Verwendung der Java Scanner-Klasse (Hinweis)
Tipps zur Interoperabilität mit Kotlin zum Senden an Java-Entwickler
Einführung in Kotlin für iOS-Entwickler ④-Typ
[Java] Verwendung der Calendar-Klasse
Memo für die Migration von Java nach Kotlin
Java-Klassenmethoden
Java-Scanner-Klasse
Java HashMap-Klasse
Java (abstrakte Klasse)
[Java] Verschachtelte Klasse
Anonyme Java-Klasse
Über die Java-Klasse
[Java] Einführung in Java
Einführung in Java
[Java] Abstrakte Klasse
[Java] Objektklasse
Lokale Java-Klasse
[Java] Verwendung der FileReader-Klasse und der BufferedReader-Klasse
Einführung in Kotlin in ein bestehendes Java Maven-Projekt
Ich möchte eine E-Mail in Java senden.
Migrieren Sie von Java zu Server Side Kotlin + Spring-Boot
So erhalten Sie eine Klasse von Element in Java
Grundeinstellungen für das Umschreiben von Java-Projekten in Kotlin
So konvertieren Sie einen Soliditätsvertrag in eine Java-Vertragsklasse
Einführung in Kotlin für iOS-Entwickler ⑤-Practical XML
Einführung in Kotlin für iOS-Entwickler ③-About gradle
Was ich getan habe, als ich Java zu Kotlin konvertiert habe
Einführung in Kotlin für iOS-Entwickler ①-Umgebungskonstruktion
Wo Java-Programmierer dazu neigen, über Kotlin zu stolpern
Einführung in Kotlin für iOS-Entwickler ②-Projekterstellung
Wie schreibe ich Java String # getBytes in Kotlin?
Was Java-Unerfahrene getan haben, um Kotlin zu studieren
[Java] Verwendung der Kalenderklasse und der Datumsklasse
Beherrschen von Kotlin ~ Konvertieren von Java-Dateien in Kotlin-Dateien Road to Graduation ~ Teil 3
Über die Klassenteilung (Java)
Änderungen von Java 8 zu Java 11
Summe von Java_1 bis 100
Informationen zur Java StringBuilder-Klasse
Klasse zu zählen
[Java] Über Singleton Class