Classe Kotlin à envoyer aux développeurs Java

Pour les développeurs Java, j'écrirai sur les classes Kotlin.

Définition de classe

Écrivez le nom de la classe après le mot-clé class. Définissons la classe Dog.

class Dog {
}

L'héritage de classe et l'implémentation de l'interface sont écrits après les deux points. Héritons de la classe Dog et de la classe Animal.

class Dog: Animal() {
}

De plus, implémentons l'interface Walkable.

class Dog: Animal(), Walkable {
}

Propriété

Les classes Kotlin peuvent avoir des propriétés. Ceci est ** une combinaison de champs Java, getters et setters **. Déclarons une propriété de type String appelée name dans la classe Dog. Utilisez le mot-clé var.

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


val dog = Dog()
val aName = dog.name //Agit comme un getter
dog.name = "taro" //Agit comme un setter

Si vous voulez le rendre en lecture seule, utilisez le mot-clé val.

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

val dog = Dog()
val aName = dog.name //Agit comme un getter
dog.name = "taro" //Erreur de compilation!

Le mot-clé val ne peut pas être réaffecté, donc sa valeur ne peut pas être modifiée à partir de la classe. Utilisez le mot clé private set pour le rendre modifiable dans la classe.

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

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

À ce stade, ceux qui pensent: "Non, c'est la même chose que de rendre un champ public en Java, n'est-ce pas?" Les propriétés de Kotlin sont clairement séparées en getters, setters et champs. Pour plus d'informations [ici](https://qiita.com/watanave/items/1386d450f11ddf7d6c09#property et champ de sauvegarde)

Constructeur principal

Écrivez le constructeur de Kotlin dans une position légèrement inhabituelle.

class Dog constructor(/*Voici le constructeur*/) {
}

Le mot-clé constructor peut être omis. Il ne peut pas être omis lors de l'ajout d'une annotation. Le constructeur écrit à cette position est appelé ** constructeur principal **. Même si vous dites un constructeur, vous pouvez décrire des propriétés et une liste d'arguments de constructeur.

Définir les propriétés dans le constructeur

Si vous ajoutez le mot-clé var ou val à l'argument constructeur, il devient une propriété telle quelle.

class Dog(var name: String) {
}

↑ est synonyme de ↓.

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

Initialiseur

Le constructeur principal est désormais capable de déclarer des arguments et des propriétés de constructeur. D'autres processus à exécuter lorsque la classe est initialisée peuvent être décrits dans l'initialiseur.

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)

La classe Regtangle reçoit l'origine et la taille de l'entrepreneur et calcule la zone avec l'initialiseur.

Constructeur secondaire

Puisqu'il existe un constructeur principal, il existe également un constructeur secondaire. Vous pouvez définir plusieurs constructeurs secondaires. Le constructeur secondaire doit appeler le constructeur principal après «:».

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

}

Ajout d'un constructeur à la classe Regtangle qui reçoit l'origine et la taille en tant que paramètres séparés.

Comparez Java et Kotlin

Définissez la classe Dog en Java. Il existe des champs nommés nom et âge, qui définissent respectivement les getters et les setters.

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;
    }
    
}

Que diriez-vous d'écrire ceci à Kotlin?

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

C'est tout ce qu'il faut.

Recommended Posts

Classe Kotlin à envoyer aux développeurs Java
Kotlin's Class part.2 à envoyer aux développeurs Java
Fonctions de portée Kotlin à envoyer aux développeurs Java
Fonctions Kotlin et lambdas à envoyer aux développeurs Java
Premiers pas avec Kotlin à envoyer aux développeurs Java
La sécurité Null de Kotlin à envoyer aux développeurs Java
Comment utiliser la classe Java
Comment désassembler un fichier de classe Java
Comment décompiler un fichier de classe Java
Comment utiliser les méthodes de classe [Java]
Génériques Kotlin pour les développeurs Java
[Android] Convertir le code Java Android en Kotlin
[Java] Comment utiliser la classe Math
[Kotlin] Trois façons d'obtenir un cours depuis KClass
Convertir toutes les applications Android (Java) en Kotlin
Introduction à kotlin pour les développeurs iOS ⑥ ー création de kotlin
[Traitement × Java] Comment utiliser la classe
Java: Comment envoyer des valeurs du servlet au servlet
Comment utiliser la classe Java Scanner (Remarque)
Conseils d'interopérabilité avec Kotlin à envoyer aux développeurs Java
Introduction à kotlin pour les développeurs iOS ④-type
[Java] Comment utiliser la classe Calendar
Mémo pour la migration de Java vers Kotlin
Méthodes de classe Java
classe Scanner java
Classe Java HashMap
java (classe abstraite)
[Java] Classe imbriquée
Classe anonyme Java
À propos de la classe Java
[Java] Introduction à Java
Introduction à Java
[java] Classe abstraite
[Java] Classe d'objets
Classe locale Java
[Java] Comment utiliser la classe FileReader et la classe BufferedReader
Présentation de Kotlin à un projet Java Maven existant
Je souhaite envoyer un e-mail en Java.
Migrer de Java vers Kotlin côté serveur + Spring-boot
Comment obtenir une classe depuis Element en Java
Paramètres initiaux pour la réécriture de projets Java sur Kotlin
Comment convertir un contrat de solidité en une classe de contrat Java
Introduction à kotlin pour les développeurs iOS ⑤-XML pratique
Introduction à kotlin pour les développeurs iOS ③-À propos de gradle
Ce que j'ai fait lorsque j'ai converti Java en Kotlin
Introduction à kotlin pour les développeurs iOS ①-Construction de l'environnement
Où les programmeurs Java ont tendance à trébucher sur Kotlin
Introduction à kotlin pour les développeurs iOS ②-Création de projet
Comment écrire Java String # getBytes dans Kotlin?
Ce que des personnes inexpérimentées en Java ont fait pour étudier Kotlin
[Java] Comment utiliser la classe Calendar et la classe Date
Maîtriser Kotlin ~ Convertir un fichier Java en fichier Kotlin Road to Graduation ~ Partie 3
À propos de la division de classe (Java)
Changements de Java 8 à Java 11
Somme de Java_1 à 100
À propos de la classe Java StringBuilder
Classe à prendre en compte
[Java] À propos de la classe Singleton