Kotlin Setter and Getter

Iniziamo con spiegare cos’è l’Incapsulamento e specificando che non è disponibile per Kotlin, ma ci aiuterà a capire l’uso di Setter e Getter

L’incapsulamento è uno dei principi fondamentali della programmazione orientata agli oggetti (OOP). Si basa sull’idea di nascondere i dettagli interni di un oggetto e fornire un’interfaccia controllata per interagire con esso.

🔹 Concetti chiave dell’incapsulamento

  1. Nascondere i dettagli interni
    • Gli attributi di una classe vengono dichiarati privati (private) per impedire l’accesso diretto dall’esterno.
    • In questo modo, si evita che altre parti del codice possano modificarli in modo inappropriato.
  2. Fornire metodi di accesso controllati
    • Si utilizzano getter e setter per leggere e modificare i valori in modo sicuro.
    • In Kotlin, si possono usare proprietà con get e set personalizzati.
  3. Migliorare la manutenibilità e la sicurezza
    • Il codice diventa più modulare e facile da gestire.
    • Se si vuole modificare il comportamento di un attributo, si può farlo nei metodi setter/getter senza influenzare il resto del programma.

Approfondiamo i metodi Set e Get

  • Sono importanti per la manutenzione del codice, sicurezza e stabilità
  • Servono per accedere alle variabili di una classe dichiarate Private da altre classi
  • Kotlin implementa in maniera nativa l’incapsulamento, allora a cosa ci servono questi due metodi?(proprio ad aggirare l’incapsulamento senza non potresti accedere a queste variabili)
  • inoltre Set e Get sono utili anche perché ci consentono di scrivere righe di codice quando li invochiamo
  • Se antepongo il costrutto Private ad una variabile nel costruttore allora quella variabile sarà visibile solo all’interno di quella classe. Se c’è la necessità di accedere a queste variabili da altre classi allora in quel caso bisogna usare i metodi Get e Set, sono dei metodi pubblici per per accedere o modificare la variabile private

    Si può procedere in due modi differenti, il primo è quello dei Set e Get, il secondo invece è quello di creare una variabile pubblica che espone la variabile privata.
    il primo:

Per il secondo metodo, puoi utilizzare una proprietà con visibilità internalprotected, o public che espone la variabile private in modo controllato.(in pratica utlizzi un’altra variabile pubblica alla quale associ quella privata con set e get)

Di seguito l’esempio del corso che restituisce 40 e che cmq è ancora diverso dai primi due casi:
class Person2(var name: String, age_param: Int, var height: Int) {

class Person2(var name: String, age_param: Int, var height: Int) {
var age = age_param
set(value) {
    if (value > 0)
        field = value
    else
        println("Something went wrong")
}

get() {
    return field +20
}

init {
    if (age_param <= 0)
        println("Something went wrong")
}

fun printData() {
    println("name : $name, age : $age, height : $height")
}
}
fun main() {
    val myFriend = Person2("Marco", 20, 180)
    myFriend.age = 20
    println(myFriend.age)
    //myFriend.printData()
val myGirlfriend = Person2("Anna", 40, 160)
//myGirlfriend.printData()
}

Torna alla Lezione 1 Kotlin: Cosa sono le Classi

Di Admin

Lascia un commento

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