Introduzione alla programmazione orientata dell'oggetto (OOP)


  Share  
|


La transizione da una lingua di programmazione procedurale (del non-OOP) ad un linguaggio di programmazione orientato oggettivamente è un grande punto per molti programmatori. È allineare che entrambi i metodi di programmazione possono infine realizzare gli stessi obiettivi, ma troverete OOP siete un senso più accurato e più veloce programmarsi, è più adatto a lavoro di squadra ed i programmi sono solitamente più facili da progettare usando il metodo orientato oggettivamente. Con OOP in Java, troverete che programmarsi è challenging cominciare con, tuttavia molto facile e molto ricompensandoli una volta acquistila padronanza.

Che cosa è un oggetto?

Gli oggetti sono i blocchetti di costruzione che compongono un programma. È difficile da spiegare esattamente che cosa un oggetto è perché un oggetto può essere qualche cosa che desideriate. Per esempio, potete generare un oggetto che rappresenta uno straniero che può giudicare tutte le informazioni relative allo straniero ed anche contenere la funzionalità connessa con esso. Potete includere i dati quale il numero di vite che lo straniero ha ed anche la funzionalità interessare i dati, quale il codice per uccidere lo straniero, in grado di rimuovere una delle vite.

Gli elementi essenziali che compongono un oggetto sono variabili e metodi. Le variabili sono membri di dati, o attributi, che contengono i dati concernente l'oggetto, quali una stringa di testo o un valore numerico. I metodi forniscono la funzionalità dell'oggetto e possono essere usati interagirsi con gli attributi. I metodi inoltre sono conosciuti come le funzioni o procedure nei vari linguaggi di programmazione.

Programmazione Oggetto-Orientata in Java
La lingua del Java è completamente oggetto orientato. Ciò significa che non ci sono dichiarazione globali qualunque (anche se i membri statici possono essere concepiti come essendo piuttosto global.we discuterà più successivamente i membri statici). Tutti gli attributi o metodi devono essere definiti come componente di un codice categoria o di un'interfaccia.

Un codice categoria in Java è usato per definire la struttura di un oggetto. Un codice categoria può essere suddiviso in tre parti principali: costruttori, attributi (proprietà) e metodi.

Ora guardiamo un esempio di una struttura di codice categoria molto semplice che contiene queste tre parti prima che andiamo affatto più avanti. Un esempio di un codice categoria potrebbe essere una persona, in grado di descrivere gli attributi ed i metodi che una persona potrebbe associare con loro. Un oggetto può allora essere generato dal codice categoria della persona, come voi o me, o persino dal vostro socio (se non avete un socio, allora scaturiscono fatto; siete un programmatore allineare).

Per generare un oggetto, dobbiamo in primo luogo generare un codice categoria. Non si preoccupi per la compilazione dei c'è ne del codice ora; siedasi appena indietro, afferri un caffè e la prova per capire alcuni principi fondamentali.

Qui è l'inizio del nostro codice categoria "della persona":

persona del codice categoria {}

Ora, dal momento che, abbiamo il codice del profilo per un codice categoria della persona. In primo luogo dovremmo aggiungere alcuni attributi. Aggiungiamo un attributo numerico al codice categoria per immagazzinare l'età di una persona.

classifichi la persona {età interna; }

I basamenti interni di parola chiave per il numero intero, rappresentanti un tipo di dati numerico. A questo punto, il codice categoria della persona è tutti gli attributi e nessuna funzionalità (che indicano chiaramente ad una carriera nella politica). Possiamo aggiungere un metodo al codice categoria come segue, che può essere usato per cambiare il valore nell'età:

classifichi la persona {newAge vuoto) del setAge(int del 
pubblico {// insieme che l'età al valore ha immagazzinato nell'età 
di newAge = in newAge; } età interna; }

Ora abbiamo un codice categoria denominato Person, contenendo un setAge denominato metodo ed un'età denominata attributo. Il setAge di metodo può essere usato per assegnare un nuovo valore all'età della persona. Di nuovo, non si preoccupi troppo per come i metodi funzionano per il momento; il vostro caffè dovrebbe appena essere abbastanza freddo circa ora bere.

Per generare un oggetto (o un caso, mentre inoltre è conosciuto) dal codice categoria della persona, un costruttore deve essere invocato. Tutti i codici categoria contengono un costruttore di difetto, che non fa niente e può essere sovraccaricato di molti tipi del costruttore, poichè vedremo.

Costruttori

Il costruttore è un metodo che è denominato quando l'oggetto è generato ed usato per inizializzare il dichiarare dell'oggetto. Il costruttore deve essere dichiarato con lo stesso nome come il codice categoria in cui è contenuto e non può avere un valore di ritorno. Ora aggiungeremo due costruttori al codice categoria della persona:

classifichi la persona {newAge pubblico pubblico) di 
Person() {// età di base del costruttore è regolato a 0 per difetto}
Person(int {// contructor che regola l'età ad un setAge(newAge) 
specificato di valore; } newAge vuoto) del setAge(int del 
pubblico {// insieme l'età al valore memorizzato nell'età di newAge 
= in newAge; } età interna; }

Potete dichiarare un riferimento ad un oggetto della persona come segue:

BillyGate della persona;
Dal momento che, avete un riferimento ad un oggetto di tipo persona, che attualmente non riferisce alcun oggetto. I membri dell'oggetto non possono essere raggiunti, come l'età di attributo, perché nessun oggetto è stato generato. Si noti che il billyGate variabile di riferimento è realmente uguale alla posizione di segnale minimo a questo punto.

Una chiamata ad un costruttore deve essere fatta per generare un nuovo oggetto di tipo persona, assegnante il billyGate variabile per riferire il nuovo oggetto.

Se nessun costruttore è dichiarato per un codice categoria, un costruttore di difetto è disponibile che introiti nessun parametri e semplicemente genera un oggetto di difetto del codice categoria una volta invocato. Nel nostro snippet di codice abbiamo generato il nostro proprio costruttore Person() di difetto, che non contiene codice e un secondo costruttore inoltre ha denominato il newAge del Person(int), che contiene il codice che regola l'età di valore nella persona che l'oggetto ad una nuova età ha specificato da un valore di parametro.

Noti li ha avuti soltanto ha dichiarato il secondo costruttore ed ha omesso il primo costruttore, là più non sarebbe un costruttore di difetto disponibile che non prenda parametri, poichè il costruttore di difetto esiste soltanto se il codice categoria non contiene alcuni costruttori prestabiliti dall'utente.

Per generare un oggetto dal codice categoria della persona, potremmo usare la seguente linea del codice:

//che usando il secondo costruttore, ha regolato il valore
di età ad un billyGate della 21 persona = nuovo Person(21);

Questa linea del codice dichiara un contrassegno denominato billyGate di tipo persona e genera "un nuovo" oggetto della persona usando il secondo costruttore nel codice categoria della persona per inizializzare l'oggetto, regolante il valore di età nel nuovo oggetto della persona a 21.

Potremmo anche usare il seguente codice preferibilmente, questo volta usando il primo costruttore (di difetto) per inizializzare l'oggetto ed allora per regolare il valore dell'età usando il metodo di setAge, che è un membro dell'oggetto recentemente generato.

//primo billyGate della persona costruttore di uso = nuovo
Person(); //membro setAge di uso per regolare età a 21 
billyGate.setAge(21); //insieme il valore dell'età a 21

Possiamo anche accedere direttamente all'età variabile e stabilita il relativo valore, come segue:

billyGate.age = 21;

Nota non potete avere due costruttori con la stessa firma.

Finora abbiamo visto il instantiation, che è il termine usato per descrivere la creazione di un oggetto o di un caso di un codice categoria. Il seguente schema eventualmente li aiuterà a capire più meglio questo un piccolo, come mostra il rapporto fra il codice categoria della persona e gli oggetti generati da esso.

Un membro dell'oggetto è un membro che è generato quando l'oggetto è generato. Ciò significa che può essere raggiunta soltanto una volta che l'oggetto è stato generato perché non esiste al contrario. L'esempio che abbiamo visto appena genera un caso della persona del codice categoria riferita da billyGate. Potremmo anche generare molti altri casi del codice categoria della persona. Supponga che abbiamo detto che l'oggetto del billyGate era l'unica persona che mai dovremmo o desidereremmo generare; allora potremmo scartare il codice categoria della persona complessivamente e generare semplicemente un nuovo codice categoria ha denominato BillyGate preferibilmente.

classifichi BillyGate {newAge vuoto statico pubblico) del 
setAge(int {// insieme che l'età al valore ha immagazzinato nell'età
di newAge = in newAge; } età statica interna; }

Noti che abbiamo rimosso i costruttori ed abbiamo aggiunto la parola chiave statica ai due membri definiti. Ciò è perché più non dobbiamo generare un caso di questo codice categoria. Possiamo accedere appena ai membri statici usando il nome del codice categoria. Per esempio:

BillyGate.setAge(21);

Questi membri statici sono conosciuti come membri del codice categoria, mentre prima che abbiamo avuti membri dell'oggetto.

Gli esempi che abbiamo usato finora contengono soltanto i membri dell'oggetto o i membri del codice categoria; potete naturalmente usare entrambi. Ora lascili di ritorno al nostro codice categoria della persona ed aggiunga un attributo statico. L'attributo statico deve essere qualcosa che stia andando essere le stesse per tutta la persona obietti che generiamo. Così potremmo aggiungere una variabile di numero intero denominata daysInAYear.

persona del codice categoria {// codice come prima di 
daysInAYear interno statico; }

Possiamo accedere all'attributo daysInAYear prima che generiamo tutti gli oggetti dal codice categoria della persona. Per esempio:

Person.daysInAYear = 365;

Se generiamo i nuovi casi della persona, allora anche possono accedere al daysInAYear variabile statico.

Person(21) glennMurphy = nuovo della persona; 
AndrewMulholland della persona = nuovo Person(20); 
glennMurphy.daysInAYear = 366; //è un anno di salto 
System.out.println(andrewMullholland.daysInAYear);

Questo codice genererà due nuovi casi della persona, riferiti da glennMurphy e da andrewMulholland. L'oggetto glennMurphy allora regola il daysInAYear variabile statico a 366 e l'oggetto del andrewMulholland accederà a daysInAYear, stampando il relativo valore alla finestra della sezione comandi. Il numero che sarà stampato alla finestra della sezione comandi è 366, che significa quella daysInAYear non appartiene a c'è ne degli oggetti da solo; appartiene a tutti ed i cambiamenti fatti da uno interessano l'altro. Ci è soltanto una parte della memoria che contiene il valore 366 a cui tutti si riferiscono. In breve, è lo stesso attributo tuttavia che è raggiunto.

Riferimenti

Per accedere agli oggetti (ricordisi di che sono casi dei codici categoria) in Java, usiamo che cosa sono conosciuti come riferimenti. Abbiamo usato finora tre riferimenti nei nostri esempi di codice: billyGate, glennMurphy ed andrewMulholland. Questi non erano gli oggetti reali che generassimo ma soltanto si riferiscono (anche conosciuto come maniglie) agli oggetti generati. Prenda il seguente codice per esempio:

andrewMulholland = glennMurphy; //non sarà mai il 
mio uguale

Questo codice fa semplicemente il andrewMulholland riferire lo stesso oggetto che riferimenti glennMurphy; quindi potreste allora accedere allo stesso oggetto usando uno dei due riferimenti.

L'oggetto con l'età uguale a 20 che il andrewMulholland riferito una volta ora è perso, ma non si preoccupa per liberare la memoria; ciò è presa la cura dal collettore dell'immondizia del Java.

ciò è un articolo aggiunto da Gabriela C. Perez


Share  

© 2005-2010 E-articles.info All Rights Reserved - Terms and conditions