0Pricing
Android Academy · Leçon

Constructeurs et init

Créez et initialisez des objets.

Constructeurs et init est une leçon Android Academy gratuite sur CoddyKit. Ceci est la leçon 3 sur 4. Tu peux lire la leçon complète ci-dessous gratuitement — puis la pratiquer en direct dans le navigateur avec un éditeur de code intégré et un tuteur IA 24/7. Elle fait partie du parcours d'apprentissage Android Academy, et ta progression se synchronise sur le web et l'application CoddyKit. Le cours Android Academy comprend 4 leçons au total.

Qu'est-ce qu'un constructeur ?

Un constructeur est un code spécial qui s'exécute lorsque vous créez un objet. Il définit les valeurs initiales de l'objet.

En Kotlin, le constructeur principal s'écrit juste à côté du nom de la classe.

Le constructeur principal

Le constructeur principal se place entre parenthèses après le nom de la classe. Vous transmettez les valeurs lors de la création de l'objet.

Ici, Dog exige un nom lors de sa construction.

class Dog(name: String) {
    val dogName = name
}

fun main() {
    val d = Dog("Rex")
    println(d.dogName)
}

Propriétés dans le constructeur

Ajouter val ou var devant un paramètre du constructeur le transforme automatiquement en propriété.

C'est le style Kotlin le plus courant et le plus concis.

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

fun main() {
    val d = Dog("Rex", 3)
    println(d.name + " is " + d.age)
}

Valeurs par défaut du constructeur

Les paramètres du constructeur peuvent également avoir des valeurs par défaut. Les appelants peuvent alors les omettre.

Ici, age vaut par défaut 0 s'il n'est pas fourni.

class Dog(val name: String, var age: Int = 0)

fun main() {
    val d = Dog("Max")
    println(d.age)
}

Le bloc init

Un bloc init s'exécute dans le cadre du constructeur principal. Utilisez-le pour la logique d'initialisation qui ne tient pas sur une seule ligne de propriété.

Il peut lire les paramètres du constructeur.

class Dog(val name: String) {
    init {
        println("Created dog: " + name)
    }
}

fun main() {
    Dog("Rex")
}

Valider dans init

Une utilisation courante de init consiste à vérifier les entrées. Ici, nous empêchons un âge négatif avec require.

Si la vérification échoue, l'objet n'est jamais créé.

class Person(val age: Int) {
    init {
        require(age >= 0) { "Age cannot be negative" }
    }
}

fun main() {
    val p = Person(25)
    println(p.age)
}

Ordre d'exécution

Les initialiseurs de propriétés et les blocs init s'exécutent de haut en bas, dans l'ordre où ils apparaissent dans la classe.

Cela est important lorsqu'une ligne dépend d'une valeur définie plus haut.

class Demo {
    val a = 1
    init { println("a is " + a) }
    val b = a + 1
    init { println("b is " + b) }
}

fun main() {
    Demo()
}

Propriétés calculées

Vous pouvez calculer une propriété à partir des valeurs du constructeur dans le corps de la classe.

Ici, area est calculée à partir de width et de height.

class Rect(val width: Int, val height: Int) {
    val area = width * height
}

fun main() {
    println(Rect(3, 4).area)
}

Constructeurs secondaires

Une classe peut également avoir des constructeurs secondaires utilisant le mot-clé constructor. Ils doivent déléguer au constructeur principal avec this(...).

Ils sont moins courants, car les valeurs par défaut suffisent généralement.

class Dog(val name: String) {
    constructor() : this("Unknown")
}

fun main() {
    println(Dog().name)
}

Utiliser le nouvel objet

Une fois le constructeur et init exécutés, l'objet est prêt à l'emploi. Vous pouvez immédiatement lire ses propriétés et appeler ses méthodes.

Ici, le constructeur initialise un solde et une méthode en dépense une partie.

class Account(var balance: Int) {
    fun spend(amount: Int) {
        balance = balance - amount
    }
}

fun main() {
    val acc = Account(100)
    acc.spend(30)
    println(acc.balance)
}

Les constructeurs préparent le terrain

Les constructeurs et les blocs init garantissent que chaque objet commence dans un état valide.

  • Constructeur principal : déclarer et recevoir les valeurs.
  • init : effectuer l'initialisation et la validation.

Cela évite d'avoir des objets partiellement construits dans votre application.

Vérification rapide

Vérifiez votre compréhension des constructeurs et de init.

Récapitulatif

Vous avez découvert le constructeur principal, la déclaration de propriétés avec val/var dans celui-ci, ainsi que la définition de valeurs par défaut.

Le bloc init gère l'initialisation et la validation, et s'exécute de haut en bas avec les initialiseurs de propriétés. Vous allez ensuite découvrir les classes de données, qui génèrent automatiquement ce code répétitif.

Questions Fréquemment Posées

La leçon « Constructeurs et init » est-elle gratuite ?

Oui — le texte complet de « Constructeurs et init » est gratuit à lire ici sur le web. Pour la pratiquer de manière interactive (un éditeur de code intégré et un tuteur IA 24/7) et déverrouiller le reste du cours Android Academy, passe à CoddyKit PRO. Le cours Android Academy comprend 4 leçons au total.

Qu'est-ce que j'apprendrai dans « Constructeurs et init » ?

Créez et initialisez des objets. Tu pratiques Android Academy avec du code pratique que tu exécutes directement dans le navigateur, et un tuteur IA 24/7 répond à tes questions au fur et à mesure que tu avances dans la leçon.

Dois-je avoir de l'expérience pour commencer Android Academy ?

Aucune expérience préalable n'est requise. Android Academy sur CoddyKit est structuré pour les débutants jusqu'aux apprenants avancés, donc tu peux commencer ici ou depuis le début et avancer à ton rythme. Ceci est la leçon 3 sur 4.

Combien de temps prend la leçon « Constructeurs et init » ?

La plupart des leçons CoddyKit prennent environ 5–10 minutes. Chacune est courte et interactive, tu progresses régulièrement et tu repiques exactement où tu t'es arrêté sur le web et l'app.

Peux-tu écrire et exécuter du code dans cette leçon Android Academy ?

Oui. Chaque leçon Android Academy inclut un éditeur de code intégré, tu écris et exécutes du vrai code directement dans ton navigateur et tu reçois des retours IA instantanés — aucune configuration locale requise.

Toutes les leçons de ce cours

  1. Déclarer des fonctions
  2. Classes et propriétés
  3. Constructeurs et init
  4. Classes de données
← Retour à Android Academy