In un linguaggio di programmazione a oggetti (come Java, Python, C++, ecc.), una classe è come uno “stampo” o un “modello” che definisce come sarà un oggetto.
Puoi pensare a una classe come a una ricetta: la ricetta ti dice quali ingredienti usare e come combinarli per creare un piatto.
Allo stesso modo, una classe ti dice quali dati (attributi) e azioni (metodi) avrà un oggetto.

Esempio pratico

Immagina di voler creare un programma per gestire delle automobili. Potresti creare una classe chiamata Automobile che definisce cosa significa essere un’automobile.

La classe Automobile potrebbe avere:

  1. Attributi (dati):
    • marca: la marca dell’auto (es. “Fiat”).
    • modello: il modello dell’auto (es. “500”).
    • colore: il colore dell’auto (es. “rosso”).
    • velocità: la velocità attuale dell’auto (es. 50 km/h).
  2. Metodi (azioni):
    • accelera(): aumenta la velocità dell’auto.
    • frena(): diminuisce la velocità dell’auto.
    • info(): stampa le informazioni dell’auto (marca, modello, colore).

Come si usa una classe?

Una volta definita la classe, puoi creare oggetti (istanze) basati su quella classe. Ogni oggetto è una “versione concreta” della classe, con i suoi valori specifici.
Quindi la classe rappresenta il modello o il progetto che definisce l’oggetto.
Istanziare una classe significa creare l’oggetto con le caratteristiche definite all’interno della sua classe .
Quando creo l’oggetto istanziando la classe bisogna assegnarli un nome e assegnare un valore ai suoi parametri. Nel caso dell’auto istanziare la classe significa creare un auto a cui darò un nome, poi una marca, u modello e un colore.
Quindi posso istanziare un’oggetto Fiat Panda che è un tipo della classe Automabile.

Nota:
Dal punto di vista pratico, in unico file koltin posso creare sia la funzione Main, che le classi che mi occorrono, in java non è possibile bisogna creare una classe per ogni cosa quindi se ho capito bene con dei file separati, uno per ogni classe e uno per il main.
Nota: Diversamente da java kotlin gestisce da solo i getter e i setter

Nota:
le parentesi graffe si scrivono con l combinazione di tasti:
ALT + Shift + [
ALT + Shift + ]

Esempio di definizione di una semplice classe ‘Person’ con 3 attributi e i relativi tipi

class Person (var name: String, var age: Int, var height: Int) {
}

Di seguito vediamo come si istanzia una classe e come richiamare il metodo Printdata definito

package Class

class Person (var name: String, var Age: Int, var Height: Int) {
    fun Printdata()  {
        println( "eta: $Age, Nome: $name")
    }
}

fun main() {
    //esempio di come si instanzia una classe
    var myfriend = Person ("Marco", 22, 173)
    // richiamo a fuzione definita nella classe:
    myfriend.Printdata()

    // istanziamo nuovamente la classe con un nome diverso
    var AmicaAnna = Person ("anna", 33, 180)
    AmicaAnna.Printdata()

}

(var name: String, var Age: Int, var Height: Int)
class Person2 (var name: String, var Age: Int, var Height: Int) {
init {
Printdata()
// in questo caso andremo a stampare gli attributi senza dover richiamare il metodo myfried.Printdata()
// ma semplicemente quando andremo ad istanziare la classe
}
fun Printdata() {
println( "eta: $Age, Nome: $name")
}
}

fun main() {

var IlmioAmico = Person2 ("Marco", 22, 173)
// con questa singola riga di codice istanzio la classe ed eseguo il metodo presente nel blocco init

}

Init è utile quado bisogna inizializzare i parametri direttamente quando istanzio la classe.

Prossimo tutorial Setter e Getter

Di Admin

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *