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.
- 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 anomenadaPersona
.var nom: String = ""
: Declara una propietat mutablenom
de tipusString
amb un valor inicial buit.var edat: Int = 0
: Declara una propietat mutableedat
de tipusInt
amb un valor inicial de 0.fun saludar()
: Defineix un mètodesaludar
que imprimeix un missatge de salutació.
- 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
Explicació
val persona1 = Persona()
: Crea una nova instància de la classePersona
i l'assigna a la variablepersona1
.persona1.nom = "Joan"
: Assigna el valor "Joan" a la propietatnom
de l'objectepersona1
.persona1.edat = 25
: Assigna el valor 25 a la propietatedat
de l'objectepersona1
.persona1.saludar()
: Crida el mètodesaludar
de l'objectepersona1
.
- 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 propietatsnom
iedat
.
Exemple d'Ús del Constructor Primari
Explicació
val persona1 = Persona("Joan", 25)
: Crea una nova instància de la classePersona
utilitzant el constructor primari.
- 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 classeCotxe
amb les propietatsmarca
imodel
.fun accelerar()
: Defineix un mètodeaccelerar
que imprimeix un missatge.
Exemple d'Ús
Explicació
val cotxe1 = Cotxe("Toyota", "Corolla")
: Crea una nova instància de la classeCotxe
.cotxe1.accelerar()
: Crida el mètodeaccelerar
de l'objectecotxe1
.
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.
Curs de Programació en Kotlin
Mòdul 1: Introducció a Kotlin
- Introducció a Kotlin
- Configuració de l'Entorn de Desenvolupament
- Conceptes Bàsics de Kotlin: Variables i Tipus de Dades
- Flux de Control: Condicionals i Bucles
- Funcions i Lambdas
Mòdul 2: Programació Orientada a Objectes en Kotlin
- Classes i Objectes
- Herència i Interfícies
- Modificadors de Visibilitat
- Classes de Dades i Classes Segellades
- Declaracions d'Objectes i Objectes Companys
Mòdul 3: Funcions Avançades de Kotlin
- Col·leccions i Genèrics
- Funcions d'Extensió
- Funcions d'Ordre Superior i Programació Funcional
- Coroutines i Programació Asíncrona
- DSL (Llenguatge Específic de Domini) en Kotlin
Mòdul 4: Kotlin per al Desenvolupament d'Android
- Introducció al Desenvolupament d'Android amb Kotlin
- Construcció d'Interfícies d'Usuari
- Gestió de l'Entrada de l'Usuari
- Xarxes i Emmagatzematge de Dades
- Proves i Depuració