Java – Oggetto e classi
Java è un linguaggio orientato agli oggetti. Essendo un linguaggio dotato della funzionalità Object-Oriented, Java supporta i seguenti concetti fondamentali:
- Polimorfismo
- Ereditarietà
- Incapsulamento
- Astrazione
- Classi
- Oggetti
- Istanza
- Metodo
- Passaggio di messaggi
In questo capitolo esamineremo i concetti: classi e oggetti.
-
Oggetto: gli oggetti hanno stati e comportamenti. Esempio: un cane ha degli stati – colore, nome, razza e comportamenti – scodinzolare, abbaiare, mangiare. Un oggetto è unistanza di una classe.
-
Classe: una classe può essere definita come un modello / progetto che descrive il comportamento / stato che loggetto del suo tipo supporta.
Oggetti in Java
Vediamo ora in profondità cosa sono gli oggetti. Se consideriamo il mondo reale, possiamo trovare molti oggetti intorno a noi, automobili, cani, umani, ecc. Tutti questi oggetti hanno uno stato e un comportamento.
Se consideriamo un cane, allora il suo stato è – nome, razza, colore e il comportamento è – abbaiare, scodinzolare, correre.
Se si confronta loggetto software con un oggetto del mondo reale, hanno caratteristiche molto simili.
Gli oggetti software hanno anche uno stato e un comportamento. Lo stato di un oggetto software viene memorizzato nei campi e il comportamento viene mostrato tramite metodi.
Quindi, nello sviluppo del software, i metodi operano sullo stato interno di un oggetto e la comunicazione da oggetto a oggetto avviene tramite metodi .
Classi in Java
Una classe è un progetto da cui vengono creati i singoli oggetti.
Di seguito è riportato un esempio di una classe.
Esempio
public class Dog { String breed; int age; String color; void barking() { } void hungry() { } void sleeping() { }}
Una classe può contenere uno qualsiasi dei seguenti tipi di variabili.
-
Variabili locali – Variabili definiti allinterno di metodi, costruttori o blocchi sono chiamati variabili locali. La variabile verrà dichiarata e inizializzata allinterno del metodo e la variabile verrà distrutta quando il metodo sarà completato.
-
Variabili di istanza – Le variabili di istanza sono variabili allinterno di una classe ma al di fuori di qualsiasi metodo. Queste variabili vengono inizializzate quando la classe viene istanziata. È possibile accedere alle variabili di istanza dallinterno di qualsiasi metodo, costruttore o blocco di quella particolare cla ss.
-
Variabili di classe – Le variabili di classe sono variabili dichiarate allinterno di una classe, al di fuori di qualsiasi metodo, con la parola chiave statica.
Una classe può avere un numero qualsiasi di metodi per accedere al valore di vari tipi di metodi. Nellesempio precedente, barking (), hungry () e sleeping () sono metodi.
Di seguito sono riportati alcuni degli argomenti importanti che devono essere discussi quando si esaminano le classi del linguaggio Java.
Costruttori
Quando si discute di classi, uno degli argomenti secondari più importanti sarebbero i costruttori. Ogni classe ha un costruttore. Se non scriviamo esplicitamente un costruttore per una classe, il compilatore Java costruisce un costruttore predefinito per quella classe.
Ogni volta che viene creato un nuovo oggetto, verrà richiamato almeno un costruttore. La regola principale dei costruttori è che dovrebbero avere lo stesso nome della classe. Una classe può avere più di un costruttore.
Di seguito è riportato un esempio di un costruttore:
Esempio
public class Puppy { public Puppy() { } public Puppy(String name) { // This constructor has one parameter, name. }}
Java supporta anche le classi Singleton in cui potresti creare solo unistanza di una classe.
Nota: abbiamo due diversi tipi di costruttori. Discuteremo i costruttori in dettaglio nei capitoli successivi.
Creazione di un oggetto
Come accennato in precedenza, una classe fornisce i modelli per gli oggetti. Quindi, fondamentalmente, un oggetto viene creato da una classe. In Java, la nuova parola chiave viene utilizzata per creare nuovi oggetti.
Ci sono tre passaggi quando si crea un oggetto da una classe:
-
Dichiarazione – Una dichiarazione di variabile con un nome di variabile con un tipo di oggetto.
-
Istanziazione: la parola chiave “new” viene utilizzata per creare loggetto.
-
Inizializzazione: la parola chiave “new” è seguita da una chiamata a un costruttore. Questa chiamata inizializza il nuovo oggetto.
Di seguito è riportato un esempio di creazione di un oggetto:
Esempio
Se compiliamo e eseguire il programma precedente, quindi produrrà il seguente risultato:
Output
Passed Name is :tommy
Accesso a variabili e metodi di istanza
Si accede alle variabili e ai metodi di istanza tramite gli oggetti creati. Per accedere a una variabile di istanza, di seguito è riportato il percorso completo:
Esempio
Questo esempio spiega come accedere alle variabili di istanza e ai metodi di una classe.
Se compiliamo ed eseguiamo il programma sopra, produrrà il seguente risultato:
Output
Name chosen is :tommyPuppy"s age is :2Variable Value :2
Regole di dichiarazione del file sorgente
Come ultima parte di questa sezione, esaminiamo ora le regole di dichiarazione del file sorgente. Queste regole sono essenziali quando si dichiarano classi, istruzioni di importazione e istruzioni di pacchetto in un file sorgente.
-
Può esserci una sola classe pubblica per file sorgente.
-
Un file sorgente può avere più classi non pubbliche.
-
Il nome della classe pubblica dovrebbe essere anche il nome del file sorgente che dovrebbe essere aggiunto alla fine da .java. Ad esempio: il nome della classe è public class Employee {} quindi il file sorgente dovrebbe essere Employee.java.
-
Se la classe è definita allinterno di un pacchetto, listruzione del pacchetto dovrebbe essere la prima istruzione nel file sorgente.
-
Se sono presenti istruzioni import, devono essere scritte tra listruzione package e il file dichiarazione di classe. Se non ci sono istruzioni sul pacchetto, listruzione import dovrebbe essere la prima riga nel file sorgente.
-
Le istruzioni import e pacchetto implicheranno tutte le classi presenti nel file sorgente . Non è possibile dichiarare istruzioni di importazione e / o pacchetto differenti per classi differenti nel file sorgente.
Le classi hanno diversi livelli di accesso e ci sono diversi tipi di classi; classi astratte, classi finali, ecc. Spiegheremo tutto questo nel capitolo sui modificatori di accesso.
Oltre ai tipi di classi sopra menzionati, Java ha anche alcune classi speciali chiamate classi interne e classi anonime.
Pacchetto Java
In parole semplici, è un modo per classificare le classi e le interfacce. Quando si sviluppano applicazioni in Java, verranno scritte centinaia di classi e interfacce, quindi classificare queste classi è un must e semplifica notevolmente la vita.
Importazioni
In Java se un nome completo, che include il pacchetto e viene fornito il nome della classe, quindi il compilatore può facilmente individuare il codice sorgente o le classi. Listruzione Import è un modo per fornire al compilatore la posizione corretta per trovare quella particolare classe.
Ad esempio, la riga seguente chiederebbe al compilatore di caricare tutte le classi disponibili nella directory java_installation / java / io –
import java.io.*;
Un semplice caso di studio
Per il nostro caso di studio, creeremo due classi. Sono Employee e EmployeeTest.
Per prima cosa apri il blocco note e aggiungi il codice seguente. Ricorda che questa è la classe Employee e la classe è una classe pubblica. Ora salva questo file sorgente con il nome Employee.java.
La classe Employee ha quattro variabili di istanza: nome, età, designazione e stipendio. La classe ha un costruttore definito in modo esplicito, che accetta un parametro.
Esempio
Come accennato in precedenza in questo tutorial, lelaborazione parte dal metodo principale. Pertanto, per poter eseguire questa classe Employee, dovrebbe esserci un metodo principale e gli oggetti dovrebbero essere creati. Creeremo una classe separata per queste attività.
Di seguito è riportata la classe EmployeeTest, che crea due istanze della classe Employee e richiama i metodi per ogni oggetto per assegnare valori a ciascuna variabile.
Salva il seguente codice nel file EmployeeTest.java.
Ora, compila entrambe le classi e quindi esegui EmployeeTest per vedere il risultato come segue:
Output
Qual è il passaggio successivo?
Nella prossima sessione, discuteremo i tipi di dati di base in Java e come possono essere utilizzati durante lo sviluppo di applicazioni Java.