Se non conosci gli oggetti, molto probabilmente verrai utilizzato per creare programmi Java usando un solo file: un file di classe principale Java. È la classe che ha il metodo principale definito per il punto iniziale di un programma Java.
La definizione della classe nel passaggio successivo deve essere salvata in un file separato. Segue le stesse linee guida di denominazione utilizzate per il file di classe principale (ovvero, il nome del file deve corrispondere al nome della classe con l'estensione del nome file .java). Ad esempio, mentre stiamo creando una classe Book, la seguente dichiarazione di classe dovrebbe essere salvata in un file chiamato "Book.java".
I dati in possesso di un oggetto e il modo in cui li manipola vengono specificati attraverso la creazione di una classe. Ad esempio, di seguito è riportata una definizione di base di una classe per un oggetto Book:
I campi vengono utilizzati per archiviare i dati per l'oggetto e combinati formano lo stato di un oggetto. Dato che stiamo creando un oggetto Libro, sarebbe logico che contenga dati sul titolo, l'autore e l'editore del libro:
I campi sono solo normali variabili con un'importante limitazione: devono utilizzare il modificatore di accesso "privato". La parola chiave privata significa che queste variabili sono accessibili solo dall'interno della classe che le definisce.
Nota: questa restrizione non viene applicata dal compilatore Java. È possibile creare una variabile pubblica nella definizione della classe e il linguaggio Java non se ne lamenterà. Tuttavia, infrangerai uno dei principi fondamentali della programmazione orientata agli oggetti: i dati incapsulamento. Lo stato dei tuoi oggetti deve essere accessibile solo attraverso i loro comportamenti. O per dirla in termini pratici, è possibile accedere ai campi della classe solo attraverso i metodi della classe. Sta a te imporre l'incapsulamento dei dati sugli oggetti che crei.
Il metodo di costruzione utilizza lo stesso nome della classe (ovvero Book) e deve essere accessibile pubblicamente. Prende i valori delle variabili che vi vengono passate e imposta i valori dei campi della classe; impostando così l'oggetto al suo stato iniziale.
I comportamenti sono le azioni che un oggetto può eseguire e sono scritti come metodi. Al momento abbiamo una classe che può essere inizializzata ma non fa molto altro. Aggiungiamo un metodo chiamato "displayBookData" che visualizzerà i dati correnti contenuti nell'oggetto:
Potremmo aggiungere tutti i metodi e i campi che desideriamo, ma per ora consideriamo la classe Book come completa. Ha tre campi per contenere i dati su un libro, può essere inizializzato e può visualizzare i dati in esso contenuti.
Sul lato sinistro del segno di uguale c'è la dichiarazione dell'oggetto. Sta dicendo che voglio creare un oggetto Book e chiamarlo "firstBook". Sul lato destro del segno uguale è la creazione di una nuova istanza di un oggetto Book. Ciò che fa è andare alla definizione della classe Book ed eseguire il codice all'interno del metodo di costruzione. Quindi, la nuova istanza dell'oggetto Book verrà creata con i campi titolo, autore ed editore impostati rispettivamente su "Horton Hears A Who!", "Dr Suess" e "Random House". Infine, il segno di uguale imposta il nostro nuovo oggetto firstBook come nuova istanza della classe Book.