bytes.cat

La wiki d'FP d'informàtica

Eines de l'usuari

Eines del lloc


kotlin

Diferències

Ací es mostren les diferències entre la revisió seleccionada i la versió actual de la pàgina.

Enllaç a la visualització de la comparació

Ambdós costats versió prèvia Revisió prèvia
Següent revisió
Revisió prèvia
kotlin [2025/01/07 18:43]
enric_mieza_sanchez
kotlin [2026/01/04 13:52] (actual)
enric_mieza_sanchez
Línia 219: Línia 219:
 \\ \\
  
-====== static => companion object =====+===== Objectes =====
  
-Les variables i funcions estàtiques dins de classes son variables que estan definides abans d'instanciar cap objecte. Es poden utilitzar, entre d'altres usos, per a implementar patrons de com Factory o Singleton.+Els constructors es defineixen amb la paraula ''constructor''.
  
-En Kotlin es defineixen dins l'anomenat ''companion object'', per exemple:+Les **variables i funcions estàtiques** dins de classes son variables que estan definides abans d'instanciar cap objecte. Es poden utilitzar, entre d'altres usos, per a implementar patrons de com Factory o Singleton. 
 + 
 +En Kotlin es defineixen dins l'anomenat **companion object**, per exemple:
  
 <code kotlin> <code kotlin>
 class MyClass { class MyClass {
 +    private val a = 1
 +    
 +    constructor(valor: Int) {
 +        this.a = valor
 +    }
 +
     companion object {     companion object {
         private val myStaticVar = 10         private val myStaticVar = 10
 +        
         fun myStaticFunction() {         fun myStaticFunction() {
             // ...             // ...
-        }+        }        
     }     }
 } }
 </code> </code>
 +
 +\\
 +
 +===== Llistes i Arrays =====
 +
 +Per inicialitzar una llista i iterar-la es pot fer de la següent manera:
 +
 +<code kotlin>
 +val llista = mutableListOf("a", "b", "c")
 +llista.add("d" // Ara: ["a", "b", "c", "d"]
 +for( elem in llista ) {
 +    println( elem )
 +}
 +</code>
 +
 +\\
 +
 +===== this i this@class =====
 +
 +El ''this'' (referència a l'actual objecte) funciona igual que en Java.
 +
 +Si volem apuntar a un altre objecte aniuat ho podem fer amb @
 +
 +Si en Java teniem:
 +
 +<code java>
 +class Fora {
 +    class Dintre {        
 +        private void fes_algo() {
 +            //...
 +            crida_externa( Fora.this );
 +            //...
 +        }
 +}
 +</code>
 +
 +En Kotlin tindrem:
 +
 +<code kotlin>
 +class Fora {
 +    class Dintre {        
 +        private fun fes_algo() {
 +            //...
 +            crida_externa( this@Fora );
 +            //...
 +        }
 +}
 +</code>
 +
 +El cas més típic en Android és: ''this@MainActivity''.
 +
  
kotlin.1736275394.txt.gz · Darrera modificació: 2025/01/07 18:43 per enric_mieza_sanchez