In questa lezione continuiamo a parlare delle Classi e nello specifico dei metodi!
Nelle lezioni precedenti abbiamo visto a livello teorico cosa è una classe, un oggetto e l’istanza della classe. Abbiamo visto poi come creare una classe in Swift, i relativi attributi e come gestirli tramite l’Opzionalità e i costruttori.
Un metodo non è altro che una funzione che ci permette di effettuare delle operazioni utilizzando gli attributi/proprietà di una classe.
Possiamo quindi avere metodi con o senza parametri in entra o in uscita.
Vediamo un esempio dove creo una classe per gestire in modo semplicistico un conto corrente:
// Classe Clienti con Metodi class Clienti { // Attributi let codice: String var saldo: Double? // Contruttore init (codice: String){ self.codice = codice } // Metodo Versamento func versamento (importo: Double){ guard let saldoPresente = saldo else{ print("Ancora devi inizializzare la proprità Saldo") return } self.saldo! = saldoPresente + importo } // Metodo Prelievo func prelievo(importo: Double){ guard self.saldo != nil else{ print("Ancora devi inizializzare la proprità Saldo") return } guard self.saldo! > importo else{ print("Puoi prelevare massimo \(self.saldo!)") return } self.saldo! -= importo } // Metodo Stampo func stampaSaldo(){ guard self.saldo != nil else{ print("Ancora devi inizializzare la proprità Saldo") return } print("Il cliente (self.codice) ha un saldo di \(self.saldo!)€") } }
Nell’esempio ho creato una classe chiamata Cliente con gli attributi/proprietà codice e saldo di tipo opzionale, ho creato il costruttore e infine i metodi per la gestione delle diverse operazioni da poter effettuare sul cliente, versamento con parametro in ingresso, prelevamento con parametro di ingresso e stampa del saldo di tipo void.
All’interno dei diversi metodi il codice per la gestione delle operazioni richiesta e i controlli da effettuare prima di procedere all’aggiunta o sottrazione dell’importo.
Ora vediamo come interagire con la classe e i sui metodi:
// Creazione di una istanza della Classe clienti con parametro obbligatorio var francesco = Clienti(codice: "22222") // Assegnazione di un saldo alla proprietà/Attributo francesco.saldo = 1000 // Utilizzo del metodo Versamento francesco.versamento(importo: 200) // Utilizzo del metodo Prelievo francesco.prelievo(importo: 100) // Utilizzo del metodo Stampa francesco.stampaSaldo()
Per prima cosa ho creato una istanza della classe chiamata francesco e tramite il costrutto ho assegnato la proprietà obbligatoria codice poi richiamando l’istanza francesco tramite il punto sono potuto accedere alle proprietà e metodi della classe.
Prima di chiudere questa lezioni ti ricordo alcune notazioni fondamentali:
Il nome di una classe comincia sempre con la Prima lettera Maiuscola. Questa è una delle regole più importanti della programmazione ad oggetti.
In questa maniera eviti di generare confusione tra ciò che è oggetto e ciò che non lo è, ad esempio: var Clienti = Clienti()
- Le proprietà di una classe devono esclusivamente riferirsi all’argomento per cui è stata creata la classe.
- La classe Clienti non può avere come attributo una variabile Occhi perché non avrebbe molto senso.
- Le classi devono essere qualcosa di generale o di estremamente preciso, vie di mezzo non possono esisterne.
- Meglio creare molte classi rispetto a crearne una che ha al suo interno ha molte cose diverse.
Per qualunque dubbio o domanda scrivi un commento in questa lezione.