In questa lezione continuiamo a parlare delle Classi nello specifico classi come tipo di dato!
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, come gestirli tramite l’Opzionalità e i costruttori e abbiamo visto i metodi di una classe.
Abbiamo visto all’inizio del corso che possiamo assegnare alle nostre variabili e constati il tipo di dato che essere devono contenere.
Abbiamo visto alcuni tipi di dato: String, Bool, Int…. ora vediamo come passare una classe come tipo di dato, ma facciamo subito un esempio:
// Classe Contatto class Contatto{ // Proprietà var nome: String var numero: String // Construttore init(nome: String, numero: String){ self.nome = nome self.numero = numero } } // Classe Rubrica class Rubrica{ var contatti: [Contatto] // Come Tipo di dato la classe Contatto init(){ self.contatti = [Contatto]() } // Aggiungi Contatto func aggiungiContatto (new: Contatto){ self.contatti.append(new) } // Chiama Contatto func chiama(nome: String) -> Bool{ guard self.contatti.count > 0 else{ print("La Rubrica è Vuota") return false } for x in self.contatti{ if x.nome == nome { print("Sto Chiamando \(x.nome)") return true } } print("Non Ho trovato il Contatto \(nome) nella Rubrica") return false } // Visualizza Contatti func visualizzaRubrica(){ guard self.contatti.count > 0 else{ print("La Rubrica è Vuota") return } for x in self.contatti{ print("(x.nome) Tel: \(x.numero)") } } }
Nell’esempio ho creato 2 classi una chiamata Contatto e una chiamata Rubrica, la classe Contatto ha 2 proprietà nome e numero. Nella classe Rubrica invece ho creato come proprietà una array che conterrà come tipo di dato la classe contatto in più ho aggiunto dei metodi che mi permetteranno di aggiungere un contatto, chiamare un contatto e visualizza l’intera rubrica.
Ora vediamo con creare le istanze delle classi e interagire con loro tramite i metodi:
// Istanze della Classe Contatto var francesco = Contatto(nome: "Francesco", numero: "11111") var carlo = Contatto(nome: "Carlo", numero: "22222") var maria = Contatto(nome: "Maria", numero: "33333") // Istanze della Classe Rubrica var rubrica = Rubrica() // Utilizzo del metodo aggiungi della classe Rubrica rubrica.aggiungiContatto(new: francesco) rubrica.aggiungiContatto(new: carlo) rubrica.aggiungiContatto(new: maria) // Utilizzo del metodo chiama del classe Rubrica rubrica.chiama(nome: "Francesco") // Utilizzo del metodo visualizzaRubrica della classe Rubrica rubrica.visualizzaRubrica()
Nell’esempio ho assegnato a tre variabili l’istanza della classe Contatto, ho creato una istanza della classe Rubrica e tramite i suoi metodi ho prima aggiunto all’array le tre istanze contatto passandole come parametro in ingresso al metodo aggiungiContatto poi tramite il metodo chiama ho simulato la chiamata a un contatto se presente nella array e poi tramite il metodo visualizzaRubrica ho visualizza a video l’intera rubrica.
Per qualunque dubbio o domanda scrivi un commento in questa lezione.