En aquest tema, explorarem els conceptes fonamentals de la programació orientada a objectes (POO) en Kotlin, incloent-hi la creació de classes, la instanciació d'objectes i l'ús de propietats i mètodes.

Objectius d'Aprenentatge

Al final d'aquest tema, hauràs après:

  • Com definir classes en Kotlin.
  • Com crear i utilitzar objectes.
  • Com treballar amb propietats i mètodes dins de les classes.
  • La diferència entre classes i objectes.

  1. Definició de Classes

Una classe és una plantilla per crear objectes. Defineix un conjunt de propietats i mètodes que els objectes creats a partir de la classe poden tenir.

Exemple de Classe

class Persona {
    var nom: String = ""
    var edat: Int = 0

    fun saludar() {
        println("Hola, el meu nom és $nom i tinc $edat anys.")
    }
}

Explicació

  • class Persona: Defineix una nova classe anomenada Persona.
  • var nom: String = "": Declara una propietat mutable nom de tipus String amb un valor inicial buit.
  • var edat: Int = 0: Declara una propietat mutable edat de tipus Int amb un valor inicial de 0.
  • fun saludar(): Defineix un mètode saludar que imprimeix un missatge de salutació.

  1. Creació d'Objectes

Un objecte és una instància d'una classe. Per crear un objecte, utilitzem el constructor de la classe.

Exemple de Creació d'Objectes

fun main() {
    val persona1 = Persona()
    persona1.nom = "Joan"
    persona1.edat = 25
    persona1.saludar()
}

Explicació

  • val persona1 = Persona(): Crea una nova instància de la classe Persona i l'assigna a la variable persona1.
  • persona1.nom = "Joan": Assigna el valor "Joan" a la propietat nom de l'objecte persona1.
  • persona1.edat = 25: Assigna el valor 25 a la propietat edat de l'objecte persona1.
  • persona1.saludar(): Crida el mètode saludar de l'objecte persona1.

  1. Constructors

Els constructors són funcions especials que s'utilitzen per inicialitzar objectes. Kotlin proporciona un constructor primari i constructors secundaris.

Constructor Primari

class Persona(val nom: String, var edat: Int) {
    fun saludar() {
        println("Hola, el meu nom és $nom i tinc $edat anys.")
    }
}

Explicació

  • class Persona(val nom: String, var edat: Int): Defineix un constructor primari que inicialitza les propietats nom i edat.

Exemple d'Ús del Constructor Primari

fun main() {
    val persona1 = Persona("Joan", 25)
    persona1.saludar()
}

Explicació

  • val persona1 = Persona("Joan", 25): Crea una nova instància de la classe Persona utilitzant el constructor primari.

  1. Propietats i Mètodes

Les propietats són variables que pertanyen a una classe, mentre que els mètodes són funcions que pertanyen a una classe.

Exemple de Propietats i Mètodes

class Cotxe(val marca: String, var model: String) {
    fun accelerar() {
        println("El $marca $model està accelerant.")
    }
}

Explicació

  • class Cotxe(val marca: String, var model: String): Defineix una classe Cotxe amb les propietats marca i model.
  • fun accelerar(): Defineix un mètode accelerar que imprimeix un missatge.

Exemple d'Ús

fun main() {
    val cotxe1 = Cotxe("Toyota", "Corolla")
    cotxe1.accelerar()
}

Explicació

  • val cotxe1 = Cotxe("Toyota", "Corolla"): Crea una nova instància de la classe Cotxe.
  • cotxe1.accelerar(): Crida el mètode accelerar de l'objecte cotxe1.

Exercicis Pràctics

Exercici 1: Crear una Classe

Crea una classe Llibre amb les propietats títol (String) i autor (String). Afegeix un mètode descripcio que imprimeixi una descripció del llibre.

Solució

class Llibre(val titol: String, val autor: String) {
    fun descripcio() {
        println("El llibre '$titol' ha estat escrit per $autor.")
    }
}

fun main() {
    val llibre1 = Llibre("1984", "George Orwell")
    llibre1.descripcio()
}

Exercici 2: Utilitzar Constructors

Modifica la classe Llibre per afegir un constructor secundari que inicialitzi el títol com "Desconegut" si no es proporciona cap valor.

Solució

class Llibre(val titol: String, val autor: String) {
    constructor(autor: String) : this("Desconegut", autor)

    fun descripcio() {
        println("El llibre '$titol' ha estat escrit per $autor.")
    }
}

fun main() {
    val llibre1 = Llibre("1984", "George Orwell")
    llibre1.descripcio()

    val llibre2 = Llibre("Autor Anònim")
    llibre2.descripcio()
}

Resum

En aquest tema, hem après a:

  • Definir classes i crear objectes en Kotlin.
  • Utilitzar propietats i mètodes dins de les classes.
  • Treballar amb constructors per inicialitzar objectes.

Aquestes habilitats són fonamentals per a la programació orientada a objectes i seran la base per a temes més avançats en Kotlin. En el següent tema, explorarem la herència i les interfícies, que ens permetran reutilitzar i estendre el codi de manera eficient.

© Copyright 2024. Tots els drets reservats