Se si ha familiarità con la programmazione orientata agli oggetti, saltare questa sezione.
La programmazione Objective-C si basa sul concetto di codice che rappresenta oggetti reali. Le rappresentazioni di oggetti programmatici possono variare da stringhe (rappresentazione del testo—una stringa di caratteri), a etichette, persino a persone. In Objective-C, gli oggetti sono membri delle loro classi. Un singolo oggetto, o rappresentazione di una classe, è chiamato un’istanza di quella classe. Ogni istanza di una classe ha proprietà, cose che la definiscono e la caratterizzano., Inoltre, ogni istanza ha metodi o cose che può fare. Questo è tutto piuttosto confuso per un principiante, quindi spiegherò questi concetti con un esempio del mondo reale-che ne dici delle persone.
Tu ed io siamo ciascuno una persona. Abbiamo milioni di caratteristiche che ci definiscono, ma siamo entrambi persone. Abbiamo occhi, orecchie, personalità, gusti, eccetera. Inoltre, tutti noi possiamo fare le cose. Possiamo esprimere emozioni, cantare canzoni, ridere get si ottiene l’immagine. Quindi, se dovessimo caratterizzarci programmaticamente, potremmo dire che la nostra classe è Persona., Le nostre caratteristiche, come il colore degli occhi, il colore dei capelli e il tipo di auto preferito, sono proprietà. Infine, le nostre abilità, come parlare, ridere e codificare, sono metodi.
I programmatori creano classi per gestire la relazione tra ciò che il computer sta facendo e ciò che vogliono realizzare nella vita reale. Uno sviluppatore potrebbe creare una classe PickupTruck al fine di rappresentare un camion nel suo programma., Nel programma, potrebbe creare un’istanza di PickupTruck, con proprietà come il colore, l’anno di produzione e la dimensione del letto. Inoltre, può far fare al camion cose, come guidare, fare rifornimento e rallentare. Le possibilità sono infinite.
Gerarchia di classi e ereditarietà
La programmazione orientata agli oggetti complica le idee di gerarchia di classi e ereditarietà. La gerarchia di classi è la nozione che una classe può derivare le sue proprietà e metodi dal suo genitore, o superclasse, pur essendo in grado di implementare nuove proprietà e metodi., L’ereditarietà è solo un altro termine per la gerarchia di classi: una classe figlia eredita proprietà e metodi dalla sua classe padre. Per spiegare ulteriormente, aggiungerò il mio esempio di camioncino.
Iniziamo con la classe PickupTruck. Ha caratteristiche di base (capacità, anno di produzione e dimensione del letto) e abilità (guidare, rifornire e rallentare). Proprio come chiamare un veicolo un camioncino nella vita reale è una generalizzazione, anche un’istanza di PickupTruck nel nostro esempio è piuttosto generale.
Ora aggiungiamo una classe figlia-FordPickupTruck., Erediterà tutte le proprietà del PickupTruck, in quanto ha un colore, un anno di produzione e una dimensione del letto. Inoltre, eredita i metodi di PickupTruck: può guidare, fare rifornimento e rallentare. Ma poiché FordPickupTruck è una rappresentazione più specifica, ha più proprietà e metodi. Un’istanza di FordPickupTruck avrà un nome del modello, un tratto troppo specifico per un PickupTruck generale. Possiamo anche aggiungere un’abilità, diciamo che un’istanza di FordPickupTruck può trainare, qualcosa che non tutti i PickupTrucks possono fare.,
Una classe genitore può avere un numero illimitato di classi figlia, che a loro volta possono avere un numero illimitato di classi figlia e così via. Il modello di ereditarietà di una classe può essere lineare o espandersi all’infinito.,
a livello di programmazione, la gerarchia di classi ed ereditarietà può sembrare confuso. Tuttavia, se dai loro esempi del mondo reale, diventeranno molto più semplici e quindi sarai più in grado di capirli. Questo vale per molti concetti difficili in informatica.