English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
In questo articolo, ti introdurrò alla programmazione orientata agli oggetti in Kotlin. Imparerai cosa sono le classi, come creare oggetti e come utilizzarli nei programmi.
Kotlin supporta funzioni e programmazione orientata agli oggetti.
Kotlin supporta funzioni e programmazione orientata agli oggetti.Funzioni di ordine superiore,Tipo di funzione e LambdaClasseFunzione, il che lo rende una scelta ideale per l'uso del paradigma di programmazione funzionale. Questi concetti verranno trattati nei capitoli successivi. Questo documento si concentrerà sullo stile di programmazione orientata agli oggetti in Kotlin.
Nel paradigma di programmazione orientata agli oggetti, è possibile dividere problemi complessi in insiemi più piccoli creando oggetti.
Questi oggetti hanno due caratteristiche:
Stato
Comportamento
Facciamo alcuni esempi:
Lamp (luce) è un oggetto
Può essere in stato on (accesa) o off (spenta).
Puoi turn on (accendere) e turn off (spengere) (comportamenti).
Bicycle è un oggetto
Ha stati come marce, due ruote, numero di ingranaggi.
Ha comportamenti come frenare, accelerare, cambiare marcia.
Continuerai a imparare le funzionalità dettagliate dell'orientamento agli oggetti, come:Encapsulationi dei dati,Ereditarietà e Polimorfismo. Questo articolo si concentrerà sulle basi che rendono le cose semplici.
Prima di creare un oggetto in Kotlin, è necessario definire una classe.
La classe è la bozza dell'oggetto.
Possiamo considerare la classe come una bozza (prototipo) di casa. Contiene tutte le informazioni dettagliate sui pavimenti, sulle porte, sulle finestre ecc. Sulla base di queste descrizioni, costruiamo le case. Le case sono oggetti.
Poiché molte case possono essere costruite con la stessa descrizione, possiamo creare molti oggetti basandoci su una classe.
Per definire una classe in Kotlin, si può utilizzare la parola chiave class:
class ClassName { //Proprietà // 成員函數 ... .. ... }
Ecco un esempio:
class Lamp { //Proprietà (membro dati) private var isOn: Boolean = false // 成員函數 fun turnOn() { isOn = true } // 成員函數 fun turnOff() { isOn = false } }
Qui definiamo una classe chiamata Lamp.
La classe ha un attributo isOn (definito allo stesso modo di una variabile) e due funzioni membri turnOn() e turnOff().
In Kotlin, deve essere inizializzato l'attributo o deve essere dichiarato come abstract. Nell'esempio sopra, l'attributo isOn è inizializzato a false.
Le classi, gli oggetti, le proprietà, le funzioni membri ecc. possono avere modificatori di visibilità. Ad esempio, l'attributo isOn è privato. Questo significa che l'attributo isOn può essere modificato solo all'interno della classe Lamp.
Altri modificatori di visibilità sono:
private - Visibile solo all'interno della classe (può accedervi).
public - Visibile ovunque.
protected - Visibile per la classe e i suoi sottoclassi.
internal - Ogni client interno può accedervi.
Ne parleremo più tardi inModificatori di visibilità KotlinScopri di più sui modificatori protected e internal nell'articolo.
Se non viene specificato un modificatore di visibilità, il valore predefinito è public.
Nell'esempio sopra, le funzioni membri turnOn() e turnOff() sono pubbliche, mentre l'attributo isOn è privato.
Quando si definisce una classe, si definisce solo lo standard dell'oggetto; non si assegna memoria o spazio di archiviazione.
Per accedere ai membri definiti nella classe, è necessario creare un oggetto. Creiamo un oggetto della classe Lamp.
class Lamp { // 属性(数据成员) private var isOn: Boolean = false // 成員函數 fun turnOn() { isOn = true } // 成員函數 fun turnOff() { isOn = false } } fun main(args: Array<String>) { val l1 = Lamp() // Creare l'oggetto l1 della classe Lamp val l2 = Lamp() // Creare l'oggetto l2 della classe Lamp }
Questo programma crea due oggetti l1 e l2 della classe Lamp. Le funzionalità isOn delle lampade l1 e l2 sono impostate su false.
Puoi utilizzare il simbolo . per accedere alle proprietà e alle funzioni membri della classe. Ad esempio:
l1.turnOn()
Questa istruzione chiama la funzione turnOn() dell'oggetto l1.
Facciamo un altro esempio:
l2.isOn = true
In questo caso, proviamo a assegnare true all'attributo isOn dell'oggetto l2. Nota che l'attributo isOn è private, quindi se tenti di accedere a isOn dall'esterno della classe, viene lanciata un'eccezione.
class Lamp { // Proprietà (membro dati) private var isOn: Boolean = false // 成員函數 fun turnOn() { isOn = true } // 成員函數 fun turnOff() { isOn = false } fun displayLightStatus(lamp: String) { if (isOn == true) println("$lamp lampada è accesa.") else println("$lamp lampada è spenta.") } } fun main(args: Array<String>) { val l1 = Lamp() // Creare l'oggetto l1 della classe Lamp val l2 = Lamp() // Creare l'oggetto l2 della classe Lamp l1.turnOn() l2.turnOff() l1.displayLightStatus("l1") l2.displayLightStatus("l2") }
運行該程序時,輸出為:
La lampada l1 è accesa. La lampada l2 è spenta.
Nel programma sopra:
La classe Lamp è stata creata.
Questa classe ha un attributo isOn e tre funzioni membri turnOn(), turnOff() e displayLightStatus().
All'interno della funzione main() sono stati creati due oggetti della classe Lamp, L1 e L2.
In questo caso, utilizzare l'oggetto l1: l1.turnOn() per chiamare la funzione turnOn(). Questo metodo imposta la variabile di istanza isOn dell'oggetto l1 a true.
Allo stesso tempo, utilizzare l'oggetto l2: l2.turnOff() per chiamare la funzione turnOff(). Questo metodo imposta la variabile di istanza isOff dell'oggetto l2 a false.
Poi, chiamare la funzione displayLightStatus() sugli oggetti l1 e l2, che stampa un messaggio appropriato in base al valore dell'attributo isOn (true o false).
Attenzione, all'interno della classe, l'attributo isOn è inizializzato a false. Quando si crea un oggetto della classe, l'attributo isOn dell'oggetto viene inizializzato automaticamente a false. Pertanto, non è necessario che l'oggetto l2 chiama turnOff() per impostare l'attributo isOn a false.
Ad esempio:
class Lamp { // 属性(数据成员) private var isOn: Boolean = false // 成員函數 fun turnOn() { isOn = true } // 成員函數 fun turnOff() { isOn = false } fun displayLightStatus() { if (isOn == true) println("燈亮着。") else println("燈熄灭了。") } } fun main(args: Array<String>) { val lamp = Lamp() lamp.displayLightStatus() }
運行該程序時,輸出為:
燈熄灭了。
本文只是Kotlin中面向对象编程的基础知识。