Un file sorgente Java è un file di testo contenente una o più definizioni di classe. Il traduttore Java presuppone
che il codice sorgente dei programmi è memorizzato in file con estensioni Java. Il codice ottenuto durante il processo di traduzione per ciascuna classe viene scritto in un file di output separato, con un nome che corrisponde al nome della classe e un'estensione della classe.Prima di tutto, in questo capitolo scriveremo, trasmetteremo e eseguiremo il canonico programma “Hello World”. Successivamente, esamineremo tutti gli elementi lessicali essenziali accettati dal traduttore Java: spazi bianchi, commenti, parole chiave, identificatori, valori letterali, operatori e delimitatori. Entro la fine del capitolo avrai informazioni sufficienti per navigare da solo in un buon programma Java.
Quindi ecco il tuo primo programma Java
:classe CiaoMondo(
Sistema. fuori. println("Ciao mondo");
Per lavorare con gli esempi forniti nel libro, è necessario ottenere e installare sulla rete Java Developers Kit da Sun Microsystems, un pacchetto per lo sviluppo di applicazioni Java (
http://java.sun.com/products/jdk ). Descrizione completa delle utilità del pacchetto JDK - dentro Appendice 1 .Il linguaggio Java richiede che tutto il codice del programma sia contenuto all'interno di classi denominate. Il testo dell'esempio precedente dovrebbe essere scritto nel file HelloWorld.java. Assicurati di controllare che le lettere maiuscole nel nome del file corrispondano a quelle del nome della classe che contiene. Per tradurre questo esempio, è necessario eseguire il traduttore Java - javac, specificando il nome del file con il testo sorgente come parametro:
\> javac HelloWorld.JavaIl traduttore creerà un file HelloWorld.class con il bytecode indipendente dal processore del nostro esempio. Per eseguire il codice risultante, è necessario disporre di un ambiente runtime Java (nel nostro caso si tratta del programma Java), nel quale è necessario caricare una nuova classe per l'esecuzione. Sottolineiamo che viene specificato il nome della classe e non il nome del file in cui è contenuta questa classe.
>Java CiaoMondoNon è stato fatto molto lavoro utile, ma abbiamo verificato che il traduttore Java installato e l'ambiente runtime funzionino.
Passo dopo passo
HelloWorld è un esempio banale. Tuttavia, anche un programma così semplice per un principiante nella linguaJava può sembrare intimidatoriamente complesso perché introduce molti nuovi concetti e dettagli sulla sintassi del linguaggio. Diamo un'occhiata più da vicino a ciascuna riga del nostro primo esempio, analizzando gli elementi che compongono un programma Java.classe CiaoMondo(
Questa riga utilizza una parola riservata
classe. Dice al traduttore che definiremo una nuova classe.La definizione completa della classe appare tra la parentesi graffa di apertura alla riga 1 e la parentesi graffa di chiusura corrispondente alla riga 5. Le parentesi graffe inJava viene utilizzato esattamente allo stesso modo dei linguaggi C e C++.public static void main (Argomenti stringa) (
Questa stringa di esempio apparentemente eccessivamente complessa è una conseguenza di un requisito importante quando è stato progettato il linguaggio Java. Il punto è che dentro
Java non dispone di funzioni globali. Poiché linee simili appariranno nella maggior parte degli esempi della prima parte del libro, diamo un'occhiata più da vicino a ciascun elemento della seconda linea.Spezzando questa stringa in token separati, incontriamo immediatamente la parola chiave
pubblico Questo - modificatore di accesso, che consente al programmatore di controllare la visibilità di qualsiasi metodo e di qualsiasi variabile. In questo caso, il modificatore di accessopubblico significa il metodomain è visibile e accessibile a qualsiasi classe. Ci sono altri 2 indicatori del livello di accesso: privato e protetto, che conosceremo più nel dettaglio nelcapitolo 8 .La parola chiave successiva è
statico. Questa parola viene utilizzata per dichiarare i metodi e le variabili della classe utilizzati per lavorare con la classe nel suo insieme. I metodi che utilizzano la parola chiave static nella loro dichiarazione possono funzionare solo direttamente con variabili locali e statiche.Avrai spesso bisogno di metodi che restituiscano un valore di un tipo o di un altro: ad esempio,
int per valori interi, float - per quelli reali o il nome della classe per i tipi di dati definiti dal programmatore. Nel nostro caso, dobbiamo solo visualizzare una stringa e restituire il valore dal metodoprincipale non è obbligatorio. Ecco perché è stato utilizzato il modificatorevuoto. Questo problema è discusso più dettagliatamente incapitolo 4 .Finalmente arriviamo al nome del metodo
principale. Non c'è niente di insolito qui, è solo che tutte le implementazioni esistenti degli interpreti Java, dopo aver ricevuto il comando per interpretare una classe, iniziano il loro lavoro chiamando il metodo principale. Un traduttore Java può tradurre una classe che non ha un metodo principale. Ma l'interprete Java esegue le classi senza un metodo principale non può.Tutti i parametri che devono essere passati al metodo sono specificati all'interno di una coppia di parentesi come un elenco di elementi separati da ";" caratteri. (punto e virgola). Ogni elemento dell'elenco dei parametri è costituito da un tipo e un identificatore separati da uno spazio. Anche se un metodo non ha parametri, è comunque necessario inserire un paio di parentesi dopo il suo nome. Nell'esempio di cui stiamo ora discutendo, il metodo
main ha un solo parametro, anche se di tipo piuttosto complesso. Corda args dichiara un parametro denominatoargs, che è un array di oggetti, rappresentanti della classeCorda. Notare le parentesi quadre dopo l'identificatore args. Indicano che abbiamo a che fare con un array e non con un singolo elemento del tipo specificato. Torneremo alla discussione sugli array nel prossimo capitolo, ma per ora notiamo che il tipo Corda - questa è classe. Parleremo più dettagliatamente delle stringhe inCapitolo 9 .Sistema. fuori. prlntln("Ciao mondo!");
Questa riga esegue il metodo
println dell'oggetto out. Un oggetto out è dichiarato nella classeOutputStream ed è inizializzato staticamente nella classe System. IN capitoli 9 E 13 avrai la possibilità di conoscere le sfumature del funzionamento delle lezioni String e OutputStream.La parentesi graffa di chiusura sulla riga 4 termina la dichiarazione del metodo
main, e la stessa parentesi alla riga 5 termina la dichiarazione della classe HelloWorld.Nozioni di base lessicali
Ora che abbiamo esaminato in dettaglio la classe minima Java, torniamo indietro e guardiamo la sintassi generale del linguaggio. Programmi per
Giava- è una raccolta di spazi, commenti, parole chiave, identificatori, costanti letterali, operatori e delimitatori.un linguaggio che consente la formattazione arbitraria del testo del programma. Affinché il programma funzioni correttamente, non è necessario allineare il testo in modo speciale. Ad esempio, classeHelloWorld può essere scritto su due righe o in qualsiasi altro modo tu voglia. E funzionerà esattamente allo stesso modo, a condizione che ci sia almeno uno spazio, un carattere di tabulazione o un carattere di nuova riga tra i singoli token (tra i quali non ci sono operatori o separatori).Commenti
Sebbene i commenti non abbiano alcun effetto sul codice eseguibile del programma,
se usati correttamente, risultano essere una parte molto significativa del testo di partenza. Esistono tre tipi di commenti: commenti su riga singola, commenti su più righe e infine commenti sulla documentazione. I commenti a riga singola iniziano con i caratteri // e terminano alla fine della riga. Questo stile di commento è utile per fornire brevi spiegazioni di singole righe di codice:a = 42; // Se
42 - la risposta, allora qual era la domanda?Per spiegazioni più dettagliate è possibile utilizzare commenti posti su più righe, iniziando il testo del commento con i caratteri /* e terminando con i caratteri */. In questo caso tutto il testo compreso tra queste coppie di caratteri verrà considerato come un commento e il il traduttore lo ignorerà.
* Questo codice è un po' complicato...
*Cerco di spiegare:
La terza forma speciale di commenti è destinata al programma di servizio
javadocche utilizza componenti di traduzione Java per generare automaticamente la documentazione per le interfacce di classe. La convenzione utilizzata per questo tipo di commento consiste nel posizionare un commento di documentazione prima della dichiarazione di una classe, metodo o variabile pubblica., è necessario avviarlo con i caratteri /** (barra e due asterischi). Un commento di questo tipo termina allo stesso modo di un commento normale - con i simboli */. Il programma javadoc è in grado di riconoscere nei commenti di documentazione alcune variabili speciali i cui nomi iniziano con il simbolo @. Ecco un esempio di tale commento:* Questa classe può fare cose straordinarie. Lo consigliamo a chiunque
*vuole scrivere un corso ancora più avanzato, prendilo come
*di base.
* @vedi Java. applet. Applet
* ©autore Patrick Naughton
classe CoolApplet estende l'applet ( /**
* Questo metodo ha due parametri:
key è il nome del parametro.è il valore del parametro denominatochiave.*/ void put (chiave String, valore oggetto) (
Parole chiave riservate
Le parole chiave riservate sono identificatori speciali del linguaggio
Java viene utilizzato per identificare tipi incorporati, modificatori e controlli di esecuzione del programma. Oggi nella lingua J ava ha 59 parole riservate (vedi Tabella 2). Queste parole chiave, insieme alla sintassi degli operatori e dei delimitatori, sono incluse nella descrizione del linguaggioGiava. Possono essere utilizzati solo per lo scopo previsto e non possono essere utilizzati come identificatori per nomi di variabili, classi o metodi.Tavolo 2
Parole riservate Java
Si noti che le parole
byvalue, cast, const, future, generic, goto, inner, operator, external, rest, varprenotato in Giava, ma non ancora utilizzato. Inoltre, in Giava ci sono nomi di metodi riservati (questi metodi sono ereditati da ogni classe e non possono essere utilizzati tranne nei casi di sovrascrittura esplicita dei metodi della classe Oggetto).Tabella 3
Nomi di metodi riservati
GiavaIdentificatori
Gli identificatori vengono utilizzati per denominare classi, metodi e variabili. L'identificatore può essere qualsiasi sequenza di lettere minuscole e maiuscole, numeri e simboli _ (trattino basso) e $ (dollaro). Gli identificatori non dovrebbero iniziare con un numero, in modo che il traduttore non li confonda con costanti letterali numeriche, che verranno descritte di seguito.
Giava- linguaggio con distinzione tra maiuscole e minuscole. Ciò significa che, ad esempio, Valore e VALORE - vari identificatori.Letterali
Costanti dentro
Java sono dati dalla loro rappresentazione letterale. Interi, numeri in virgola mobile, valori booleani, caratteri e stringhe possono essere inseriti ovunque nel codice sorgente. Le tipologie verranno discusse incapitolo 4 .Letterali interi
I numeri interi sono il tipo più comunemente utilizzato nei programmi normali. Qualsiasi valore intero, come 1, 2, 3, 42, è un valore letterale intero. Questo esempio mostra i numeri decimali, cioè i numeri con base 10, esattamente quelli che usiamo ogni giorno al di fuori del mondo dei computer. Oltre ai decimali, i numeri con base 8 e 16 - ottali ed esadecimali - possono essere utilizzati anche come valori letterali interi. Java riconosce i numeri ottali preceduti da uno zero iniziale. I normali numeri decimali non possono iniziare con uno zero, quindi l'utilizzo del numero 09 valido esternamente in un programma risulterà in un messaggio di errore di traduzione perché 9 non è compreso nell'intervallo 0..
7, valido per cifre ottali. Le costanti esadecimali si distinguono per i caratteri zero-x iniziali (0x o 0X). L'intervallo dei valori delle cifre esadecimali è 0..15, e come numeri per i valori 10..Vengono utilizzate 15 lettere dalla A alla F (o da a a F). Con i numeri esadecimali puoi esprimere valori adatti al computer in modo conciso e chiaro, ad esempio scrivendo Okffff invece di 65535.I letterali interi sono valori di tipo
int, che è in Java è memorizzato in una parola a 32 bit. Se è necessario un valore superiore a circa 2 miliardi, è necessario utilizzare una costante similelungo. In questo caso, il numero verrà memorizzato in una parola a 64 bit. Per i numeri con una qualsiasi delle basi sopra menzionate, puoi assegnare una lettera minuscola o maiuscola a destraL, indicando così che il numero indicato è del tipolungo. Ad esempio, Ox7ffffffffffffffL o9223372036854775807L è il valore più grande per un numero di tipo lungo.Letterali in virgola mobile
I numeri in virgola mobile rappresentano valori decimali che hanno una parte frazionaria. Possono essere scritti in formato regolare o esponenziale. Nel formato usuale, un numero è costituito da un numero di cifre decimali, seguite da un punto decimale e dalle seguenti cifre decimali della parte frazionaria. Ad esempio, 2.0, 3.14159 e .6667 sono valori validi per i numeri a virgola mobile scritti in formato standard. Nel formato esponenziale, dopo gli elementi elencati, viene inoltre indicato l'ordine decimale. L'ordine è determinato dal numero decimale positivo o negativo che segue il simbolo E o e. Esempi di numeri in formato esponenziale: 6.022e23, 314159E-05, 2e+100. IN
I float Java vengono trattati come double per impostazione predefinita. Se hai bisogno di una costante di tipofloat, il simbolo F o f deve essere aggiunto a destra del letterale. Se sei un fan delle definizioni ridondanti, puoi aggiungere valori letterali come doppio carattere D o D. Valori del tipo predefinitodouble vengono memorizzati in una parola a 64 bit, valori di tipo meno precisi float - a 32 bit.Letterali booleani
Una variabile booleana può avere solo due valori:
vero e falso (falso). Valori booleani vero e false non vengono convertite in alcuna rappresentazione numerica. Parola chiave vero in Java non è uguale a 1 e falso non è uguale a 0. In In Java questi valori possono essere assegnati solo a variabili booleane o utilizzati in espressioni con operatori logici.Letterali dei caratteri
Simboli dentro
Giava- questi sono gli indici nella tabella dei simboliUNICODE. Sono valori a 16 bit che possono essere convertiti in numeri interi e ai quali si possono applicare operatori aritmetici interi, come addizione e sottrazione. I caratteri letterali vengono inseriti all'interno di una coppia di apostrofi (" "). Tutti i simboli della tabella visibiliL'ASCII può essere inserito direttamente all'interno di una coppia di apostrofi: -"a", "z", "@". Sono previste diverse sequenze di escape per i caratteri che non possono essere immessi direttamente.Tabella 3.
2. Sequenze di fuga
Sequenza di controllo |
Descrizione |
Carattere ottale (ddd) |
|
Carattere esadecimale CODICE UNICO (xxxx) |
|
Apostrofo |
|
Barra rovesciata |
|
Ritorno in carrozza |
|
Avanzamento riga (avanzamento riga, nuova riga) |
|
Traduzione della pagina (avanzamento modulo) |
|
Tabulazione orizzontale (scheda) |
|
Torna indietro di un passo (backspace) |
Stringhe letterali
Stringhe letterali in
Java ha lo stesso aspetto di molti altri linguaggi: è un testo arbitrario racchiuso tra virgolette doppie (""). Sebbene i letterali minuscoli inJava è implementato in un modo davvero unico(Java crea un oggetto per ogni riga), questo non appare esternamente. Esempi di stringhe letterali:"Ciao Mondo!"; "due\stringhe; \E questo è tra virgolette\". Tutte le sequenze di escape e le notazioni ottali/esadecimali definite per i caratteri letterali funzionano esattamente allo stesso modo nelle stringhe.I codici Java devono iniziare e terminare sulla stessa riga di codice sorgente. In questo linguaggio, a differenza di molti altri, non esiste una sequenza di escape per continuare una stringa letterale su una nuova riga.Operatori
Un operatore è qualcosa che esegue un'azione su uno o due argomenti e produce un risultato. Dal punto di vista sintattico, gli operatori sono spesso posizionati tra identificatori e valori letterali. Gli operatori verranno discussi in dettaglio in
Capitolo 5 , il loro elenco è riportato nella tabella 3. 3.Tabella 3.
3. Operatori linguistici GiavaSeparatori
Solo alcuni gruppi di caratteri che possono apparire in un programma Java sintatticamente corretto rimangono ancora senza nome. Si tratta di semplici separatori che influiscono sull'aspetto e sulla funzionalità del codice del programma.
Nome |
A cosa servono? |
|
parentesi tonde |
Evidenziano elenchi di parametri nella dichiarazione e chiamata di un metodo; vengono inoltre utilizzati per impostare la priorità delle operazioni nelle espressioni, evidenziare espressioni nelle istruzioni di controllo dell'esecuzione del programma e negli operatori di casting dei tipi. |
|
bretelle |
||
parentesi quadre |
Utilizzato nelle dichiarazioni di array e quando si accede a singoli elementi di array. |
|
punto e virgola |
Separa gli operatori. |
|
Separa gli identificatori nelle dichiarazioni di variabile, utilizzati anche per collegare le istruzioni in un'intestazione di ciclo per. |
||
Separa i nomi dei pacchetti dai sottopacchetti e dai nomi delle classi e viene utilizzato anche per separare il nome di una variabile o di un metodo da un nome di variabile. |
Variabili
Una variabile è l'elemento principale di memorizzazione delle informazioni in un programma Java. Una variabile è caratterizzata da una combinazione di identificatore, tipo e ambito. A seconda di dove dichiari la variabile, potrebbe essere locale, ad esempio nel codice all'interno di un ciclo for, oppure potrebbe essere una variabile di istanza della classe disponibile per tutti i metodi in quella classe. Gli ambiti locali vengono dichiarati utilizzando le parentesi graffe.
Dichiarazione variabile
La forma base di una dichiarazione di variabile è:
identificatore di tipo [ = valore] [, identificatore [ = valore
7...];Un tipo è uno dei tipi incorporati, ovvero
byte, breve, intero, lungo, carattere, float, doppio,booleano o il nome di una classe o di un'interfaccia. Discuteremo tutti questi tipi in dettaglio inprossimo capitolo . Di seguito sono riportati alcuni esempi di dichiarazione di variabili di vario tipo. Si noti che alcuni esempi implicano l'inizializzazione di un valore iniziale. Le variabili per le quali non sono specificati valori iniziali vengono automaticamente inizializzate a zero.L'esempio seguente crea tre variabili corrispondenti ai lati di un triangolo rettangolo e poi
C Utilizzando il teorema di Pitagora si calcola la lunghezza dell'ipotenusa, in questo caso il numero 5, la misura dell'ipotenusa di un classico triangolo rettangolo di lati 3-4-5.Variabili di classe(
public static void main (Argomenti stringa) (
= Math.qrt(a* a + b* b);System.out.println("c = "+ c);
Il tuo primo passo
Abbiamo già ottenuto molto: prima abbiamo scritto un piccolo programma in linguaggio
Java e ho esaminato in dettaglio in cosa consiste (blocchi di codice, commenti). Ci è stato presentato un elenco di parole chiave e operatori il cui scopo verrà spiegato in dettaglio nei capitoli successivi. Ora sei in grado di distinguere in modo indipendente le parti principali di qualsiasi programma Java e sei pronto per iniziare a leggerlocapitolo 4 , che tratta in dettaglio i tipi di dati semplici.La programmazione consiste nello scrivere il codice sorgente di un programma in uno dei linguaggi di programmazione. Esistono molti linguaggi di programmazione diversi, grazie ai quali vengono creati tutti i tipi di programmi che risolvono una certa gamma di problemi. Un linguaggio di programmazione è un insieme di parole riservate con cui viene scritto il codice sorgente di un programma. I sistemi informatici non sono (ancora) in grado di comprendere il linguaggio umano, tanto meno la logica umana (soprattutto quella femminile), quindi tutti i programmi sono scritti in linguaggi di programmazione, che vengono successivamente tradotti in linguaggio informatico o codice macchina. I sistemi che traducono il codice sorgente del programma in codice macchina sono molto complessi e, di norma, vengono creati nel corso di dozzine di mesi e dozzine di programmatori. Tali sistemi sono chiamati ambienti o strumenti di programmazione di applicazioni integrate.
Un sistema di programmazione è un ambiente visivo enorme e ben congegnato in cui puoi scrivere il codice sorgente di un programma, tradurlo in codice macchina, testare, eseguire il debug e molto altro. Inoltre, esistono programmi che consentono di eseguire le azioni di cui sopra utilizzando la riga di comando.
Probabilmente hai sentito più di una volta l'espressione "un programma è scritto per Windows, Linux o Unix". Il fatto è che gli ambienti di programmazione quando si traduce un linguaggio di programmazione in codice macchina possono essere di due tipi: compilatori e interpreti. La compilazione o l'interpretazione di un programma specifica come il programma continuerà ad essere eseguito sul dispositivo. I programmi scritti in Java funzionano sempre sulla base dell'interpretazione, mentre i programmi scritti in C/C++ vengono compilati. Qual è la differenza tra questi due metodi?
Il compilatore, dopo aver scritto il codice sorgente al momento della compilazione, legge in una sola volta l'intero codice sorgente del programma e lo traduce in codice macchina. Dopodiché il programma esiste come un tutt'uno e può essere eseguito solo nel sistema operativo in cui è stato scritto. Pertanto, i programmi scritti per Windows non possono funzionare in un ambiente Linux e viceversa. L'interprete esegue il programma passo dopo passo o riga per riga ogni volta che viene eseguito. Durante l'interpretazione non viene creato codice eseguibile, ma codice virtuale, che viene successivamente eseguito dalla Java virtual machine. Pertanto, su qualsiasi piattaforma, Windows o Linux, i programmi Java possono essere eseguiti allo stesso modo se nel sistema è presente una macchina Java virtuale, chiamata anche sistema runtime.
Programmazione orientata agli oggetti
La programmazione orientata agli oggetti è costruita sulla base di oggetti, che è in qualche modo simile al nostro mondo. Se ti guardi intorno, puoi sicuramente trovare qualcosa che ti aiuterà a comprendere più chiaramente il modello di tale programmazione. Ad esempio, ora sono seduto alla mia scrivania e scrivo questo capitolo su un computer, che è composto da monitor, unità di sistema, tastiera, mouse, altoparlanti e così via. Tutte queste parti sono gli oggetti che compongono un computer. Sapendo questo, è molto facile formulare una sorta di modello generalizzato del funzionamento dell'intero computer. Se non capisci le complessità delle proprietà software e hardware di un computer, allora possiamo dire che l'oggetto System Unit esegue determinate azioni mostrate dall'oggetto Monitor. A sua volta, l'oggetto Keyboard può regolare o addirittura impostare azioni per l'oggetto System Unit, che influenzano il funzionamento dell'oggetto Monitor. Il processo presentato caratterizza molto bene l'intero sistema di programmazione orientata agli oggetti.
Immagina un potente prodotto software contenente centinaia di migliaia di righe di codice. L'intero programma viene eseguito riga per riga, riga per riga, e in linea di principio ciascuna delle righe di codice successive sarà necessariamente collegata alla riga di codice precedente. Se non usi la programmazione orientata agli oggetti e quando devi modificare il codice di questo programma, ad esempio se devi migliorare alcuni elementi, dovrai lavorare molto con l'intero codice sorgente di questo programma.
Nella programmazione orientata agli oggetti tutto è molto più semplice, torniamo all'esempio di un sistema informatico. Diciamo che non ti accontenti più di un monitor da diciassette pollici. Puoi facilmente sostituirlo con un monitor da venti pollici, ovviamente, se disponi di determinate risorse finanziarie. Il processo di scambio in sé non comporterà grossi problemi, a meno che non sia necessario cambiare il driver, pulire la polvere da sotto il vecchio monitor e basta. La programmazione orientata agli oggetti si basa approssimativamente su questo principio di funzionamento, dove una certa parte del codice può rappresentare una classe di oggetti omogenei che possono essere facilmente aggiornati o sostituiti.
La programmazione orientata agli oggetti riflette molto facilmente e chiaramente l'essenza del problema da risolvere e, soprattutto, consente di rimuovere oggetti non necessari senza danneggiare l'intero programma, sostituendo questi oggetti con altri nuovi. Di conseguenza, la leggibilità complessiva del codice sorgente dell'intero programma diventa molto più semplice. È anche importante che lo stesso codice possa essere utilizzato in programmi completamente diversi.
Classi
Il nucleo di tutti i programmi Java sono le classi, sulle quali si basa la programmazione orientata agli oggetti. In sostanza sai già cosa sono le lezioni, ma non te ne rendi ancora conto. Nella sezione precedente abbiamo parlato di oggetti, prendendo come esempio la struttura di un intero computer. Ogni oggetto da cui viene assemblato un computer è un rappresentante della sua classe. Ad esempio, la classe Monitor unisce tutti i monitor, indipendentemente dal loro tipo, dimensione e capacità, e un particolare monitor posizionato sulla scrivania è un oggetto della classe monitor.
Questo approccio semplifica la modellazione di tutti i tipi di processi di programmazione, facilitando la risoluzione dei problemi. Ad esempio, ci sono quattro oggetti di quattro classi diverse: monitor, unità di sistema, tastiera e altoparlanti. Per riprodurre un file audio è necessario dare un comando all'unità di sistema tramite la tastiera; osserverai visivamente sul monitor l'azione stessa del comando e, di conseguenza, gli altoparlanti riprodurranno il file audio. Cioè, qualsiasi oggetto fa parte di una determinata classe e contiene tutti gli strumenti e le funzionalità disponibili per questa classe. Possono esserci tanti oggetti di una classe quanti sono necessari per risolvere il problema.
Metodi
Quando è stato fornito un esempio di riproduzione di un file audio, è stato menzionato che è stato dato un comando o un messaggio in base al quale sono state eseguite determinate azioni. Il compito di eseguire azioni viene risolto utilizzando i metodi di ciascun oggetto. I metodi sono un insieme di comandi che possono essere utilizzati per eseguire determinate azioni con un oggetto.
Ogni oggetto ha il suo scopo ed è progettato per risolvere una certa gamma di problemi utilizzando metodi. A cosa servirebbe un oggetto Keyboard, ad esempio, se non potessi premere i tasti ed essere comunque in grado di impartire comandi? L'oggetto Keyboard ha un certo numero di tasti con i quali l'utente ottiene il controllo sul dispositivo di input e può impartire i comandi necessari. Tali comandi vengono elaborati utilizzando metodi.
Ad esempio, si preme il tasto Esc per annullare qualsiasi azione e quindi dare un comando al metodo assegnato a questo tasto, che risolve questo compito a livello di programma. Sorge immediatamente la domanda sul numero di metodi dell'oggetto Keyboard, ma può esserci un'implementazione diversa: dalla definizione di metodi per ciascuno dei tasti (che, in generale, non è saggio) alla creazione di un unico metodo che monitorerà il funzionamento stato generale della tastiera. Cioè, questo metodo monitora se un tasto è stato premuto e quindi, a seconda del tasto attivato, decide cosa fare.
Quindi, vediamo che ciascuno degli oggetti può avere a disposizione una serie di metodi per risolvere vari problemi. E poiché ogni oggetto è un oggetto di una determinata classe, risulta che la classe contiene un insieme di metodi utilizzati da vari oggetti della stessa classe. In Java, tutti i metodi creati devono appartenere o far parte di una classe specifica.
Sintassi e semantica del linguaggio Java
Per parlare e leggere qualsiasi lingua straniera, devi imparare l'alfabeto e la grammatica di quella lingua. Una condizione simile si osserva quando si studiano i linguaggi di programmazione, con l'unica differenza, mi sembra, che questo processo è in qualche modo più semplice. Ma prima di iniziare a scrivere il codice sorgente del programma, devi prima risolvere il problema che ti è stato assegnato in qualsiasi forma conveniente per te.
Creiamo una certa classe responsabile, ad esempio, di un telefono, che avrà solo due metodi: accendere e spegnere proprio questo telefono. Poiché al momento non conosciamo la sintassi del linguaggio Java, scriveremo la classe Phone in un linguaggio astratto.
Telefono di classe
{
Metodo Enable()
{
// operazioni per accendere il telefono
}
Metodo Disabilita()
{
// operazioni per spegnere il telefono
}
}
La classe Phone potrebbe assomigliare a questa. Tieni presente che le parentesi graffe indicano rispettivamente l'inizio e la fine del corpo di una classe, di un metodo o di qualsiasi sequenza di dati. Cioè, le parentesi indicano l'appartenenza a un metodo o a una classe. Per ogni parentesi di apertura deve esserci una parentesi di chiusura. Per evitare confusione, solitamente vengono posizionati allo stesso livello nel codice.
Ora scriviamo la stessa classe solo in Java.
Telefono di classe
{
vuoto su()
{
// corpo del metodo on()
}
annullamento()
{
// corpo del metodo off()
}
}
La parola chiave class nel linguaggio Java dichiara una classe, seguita dal nome della classe stessa. Nel nostro caso, questo è Telefon. Solo qualche parola sul registro di registrazione. In quasi tutti i linguaggi di programmazione è importante salvare i nomi nel registro in cui sono stati scritti. Se hai scritto Telefon, un'ortografia come telefon o TELefoN genererà un errore durante la compilazione. Come abbiamo scritto inizialmente, è così che dovremmo continuare a scrivere.
Le parole chiave riservate o sono scritte nel loro caso specifico e non è possibile utilizzarle denominandole in metodi, classi, oggetti e così via. Gli spazi tra le parole non hanno importanza perché il compilatore semplicemente li ignora, ma sono importanti per la leggibilità del codice.
Nel corpo della classe Telefon ci sono due metodi: on() - accende il telefono e metodo off() - spegne il telefono. Entrambi i metodi hanno i propri corpi e, in teoria, dovrebbero contenere del codice sorgente che descriva le azioni necessarie di entrambi i metodi. Per noi ora non importa come vengono implementati questi metodi, la cosa principale è la sintassi del linguaggio Java.
Entrambi i metodi hanno parentesi on() all'interno delle quali è possibile scrivere i parametri, come on(int time) o on(int time, int time1). Con l'aiuto dei parametri si crea una sorta di connessione tra i metodi e il mondo esterno. Si dice che il metodo on(int time) richieda un parametro temporale. Cosa serve? Ad esempio, vuoi che il tuo telefono si accenda a una certa ora. Quindi il valore intero nel parametro time verrà passato al corpo del metodo e, in base ai dati ricevuti, il telefono verrà acceso. Se le parentesi sono vuote, il metodo non accetta alcun parametro.
Commenti
Nella classe Telefon, nel corpo di entrambi i metodi è presente una voce dopo due barre: //. Questa voce indica commenti che verranno ignorati dal compilatore, ma sono necessari per la leggibilità del codice. Più informazioni commenterai mentre scrivi il programma, più è probabile che ricorderai tra un anno ciò su cui hai lavorato per tutto questo tempo.
I commenti in Java possono essere di tre tipi:
//, /*…*/ E /**…*/
I commenti scritti utilizzando l'operatore // devono apparire su una riga:
// Una linea
!!! Errore! Non puoi avvolgerlo nella seconda riga!
// Prima linea
// Seconda linea
// …
// Ultima linea
I commenti che utilizzano gli operatori /*…*/ possono estendersi su più righe. All'inizio del tuo commento, metti /* e alla fine, quando finisci di commentare il codice, metti l'operatore */. L'ultimo tipo di commento /**…*/ viene utilizzato durante la documentazione del codice e può anche essere posizionato su un numero qualsiasi di righe.
Tipi di dati Java
Per impostare un valore arbitrario, Java dispone di tipi di dati. Nella classe Telefon abbiamo creato due metodi. Entrambi i metodi non avevano parametri, ma quando è stato fornito l'esempio del metodo on(int time) con un parametro time, si è parlato di passare un valore al metodo. Questo valore indicava l'ora in cui presumibilmente il telefono dovrebbe accendersi. L'identificatore int determina il tipo del valore temporale. Esistono sei tipi di dati in Java 2 ME.
Byte – valore intero piccolo da –128 a 128;
short – valore intero short compreso tra –32768 e 32767;
int – contiene qualsiasi valore intero compreso tra –2147483648 e 2147483647;
long – valore intero molto grande, da –922337203685475808 a 9223372036854775807;
char è una costante di carattere Unicode. L'intervallo di questo formato va da 0 a 65536, che equivale a 256 caratteri. Qualsiasi carattere di questo tipo deve essere scritto tra virgolette singole, ad esempio: 'G';
booleano è un tipo logico che ha solo due valori: falso e vero. Questo tipo viene spesso utilizzato nei loop, di cui parleremo più avanti. Il significato è molto semplice: se hai soldi in tasca, dovrebbe essere vero, altrimenti è falso. Quindi, se abbiamo soldi, andiamo al supermercato a prendere il pane o la birra (sottolineare ciò che è opportuno), se non ci sono soldi, restiamo a casa. Cioè, questo è un valore logico che contribuisce alla scelta di ulteriori azioni del tuo programma.
Per dichiarare un valore necessario, utilizzare la seguente voce:
Ora intera;
lungo BigTime;
parola di carattere;
L'operatore punto e virgola è obbligatorio dopo le immissioni e viene posizionato alla fine della riga. Puoi combinare più dichiarazioni dello stesso tipo, separate da virgole:
Mt tempo, tempo1, tempo2;
Ora miglioriamo la nostra classe Telefon aggiungendovi alcuni valori. Non abbiamo più bisogno dei metodi on() e off(); aggiungiamo nuovi metodi che possano effettivamente risolvere determinati problemi.
Telefono di classe
{
//S – area di visualizzazione
//w – larghezza di visualizzazione
//h – altezza del display
intero w, h, S;
//metodo che calcola l'area di visualizzazione
area del mondo()
{
S = l*h;
}
}
Quindi, abbiamo tre variabili S, w e h, che sono responsabili, rispettivamente, dell'area, della larghezza e dell'altezza del display in pixel. Il metodo Area() calcola l'area dello schermo del telefono in pixel. L'operazione è inutile, ma molto illustrativa e di facile comprensione. Il corpo del metodo Area() si è trovato e ha la forma S = w*h. In questo metodo, moltiplichiamo semplicemente la larghezza per l'altezza e assegniamo o, come si suol dire, memorizziamo il risultato nella variabile S. Questa variabile conterrà i valoridell'area di visualizzazione di questo telefono .
Ora ci siamo avvicinati agli operatori del linguaggio Java, con l'aiuto del quale è possibile eseguire tutti i tipi di operazioni. Gli operatori del linguaggio Java, così come di altri linguaggi di programmazione, hanno i propri scopi. Quindi ci sono operatori aritmetici, operatori di incremento e decremento, operatori logici e operatori relazionali. Diamo un'occhiata a ciascuno degli operatori di cui sopra.
Operatori aritmetici
Tutti gli operatori aritmetici sono molto semplici e simili agli operatori di moltiplicazione “*”, divisione “/”, addizione “+” e sottrazione “-” utilizzati in matematica. Esiste un operatore di divisione modulo “%” e una situazione a prima vista leggermente confusa con l'operatore uguale “=". L'operatore uguale è chiamato operatore di assegnazione nei linguaggi di programmazione:
Qui si assegna il valore 3 alla variabile x. E l'operatore “uguale” nei linguaggi di programmazione corrisponde a scrivere due operatori “uguale” consecutivi: “==”. Diamo un'occhiata ad un esempio di cosa possono fare i vari operatori aritmetici.
Intero x, y, z;
x = 5;
y = 3;
z = 0;
z = x + y;
In questo caso z avrà il valore della somma di xey, cioè 8.
La variabile x aveva il valore 5, ma dopo questa registrazione il valore precedente viene perso e viene scritto il prodotto z*x (8*5), che è uguale a 40. Ora, se proseguiamo ulteriormente il nostro codice, le variabili appariranno come questo:
// x = 40;
// y = 3;
// z = 8;
Gli operatori di addizione e sottrazione hanno gli stessi scopi della matematica. Anche i numeri negativi sono correlati.
Gli operatori di decremento “––” e incremento “++” sono molto specifici, ma molto semplici. Nella programmazione, ci sono spesso momenti in cui è necessario aumentare o diminuire un valore di uno. Ciò si verifica spesso in cicli. L'operazione di incremento aumenta una variabile di uno.
Intero x = 5;
x++;
// Qui x è già uguale a 6
L'operazione di decremento diminuisce una variabile di uno.
Intero x = 5;
X--;
// x è uguale a 4
Le operazioni di incremento e decremento possono essere post e prefisso:
Intero x = 5;
int y = 0;
y = x++;
Nell'ultima riga del codice, il valore x viene prima assegnato a y, che è il valore 5, e solo successivamente la variabile x viene incrementata di uno. Si scopre che:
L'incremento del prefisso ha la forma:
Intero x = 3;
int y = 0;
y = ++x;
E in questo caso, prima la variabile x viene aumentata di uno, e poi assegna a y il valore già aumentato.
Operatori relazionali
Gli operatori relazionali ti consentono di verificare se entrambi i lati di un'espressione sono uguali. Esiste un operatore di uguaglianza "==", operatori minori di "<» и больше «>", minore o uguale"<=» и больше или равно «>=", così come l'operatore di negazione "!=".
9 == 10;
Questa espressione non è vera, nove non è uguale a dieci, quindi il valore di questa espressione è falso.
Qui, al contrario, l'operatore di negazione indica la disuguaglianza dell'espressione e il valore sarà vero. Gli operatori maggiore di, minore di, maggiore o uguale a e minore o uguale a sono simili ai corrispondenti operatori della matematica.
Operatori logici
Ci sono due operatori logici. L'operatore “AND”, indicato dai simboli “&&” e l'operatore “OR”, indicato da due barre “||”. Ad esempio, c'è un'espressione:
A*B && B*C;
Se solo entrambe le parti di un'espressione sono vere, il valore dell'espressione è considerato vero. Se una delle parti è falsa, il valore dell'intera espressione sarà falso.
A differenza dell'operatore “&&” esiste l'operatore “||”, che non senza motivo viene chiamato “OR”.
A*B || AVANTI CRISTO;
Se una qualsiasi parte di un'espressione è vera, allora è vera l'intera espressione. Entrambi gli operatori possono essere combinati in un'unica espressione, ad esempio:
A*B || B*C && C*D || B*A;
Con l'aiuto di questa espressione ti ho messo, mi sembra, in difficoltà, vero? Il fatto è che in Java, come in matematica, esiste una priorità o una cosiddetta gerarchia di operatori, con l'aiuto della quale viene determinato quale degli operatori è più importante e, quindi, viene controllato per primo. Consideriamo utilizzando un elenco la priorità di tutti gli operatori del linguaggio Java disponibili:
, ., (),
!, ~, ++, – –, + (unario), – (unario), nuovo,
*, /, %,
+, –,
<<, >>, >>>,
<, <=, >, >=,
= =, !=,
&, ^, |,
&&,
||,
?:,
=, +=, –=, *=, /=, %=, |=, ^=, <<=, >>=, >>>=.
L'associatività degli operatori nell'elenco segue da sinistra a destra e dall'alto verso il basso. Cioè, tutto ciò che è a sinistra e al di sopra è di rango superiore e più importante.
Un breve corso nella storia della lingua Java
Questa sezione descrive brevemente la storia del linguaggio Java. Questa sezione si basa su vari materiali pubblicati (per lo più interviste con i creatori del linguaggio Java nel numero di luglio 1995 di SunWorld e-zine).
La storia di Java risale al 1991, quando un gruppo di ingegneri della Sun, guidati da Patrick Naughton e dal membro del consiglio (e mago del computer a tutto tondo) James Gosling, iniziarono a sviluppare un piccolo linguaggio che potesse essere utilizzato per programmare i dispositivi di uso quotidiano , ad esempio, dispositivi di controllo per la commutazione dei canali televisivi via cavo (quadri di commutazione TV via cavo).
Poiché tali dispositivi non consumano molta energia e non dispongono di chip di memoria di grandi dimensioni, dovevo essere piccolo e generare programmi molto compatti. Inoltre, poiché diversi produttori possono scegliere diverse unità centrali di elaborazione (CPU), era importante non lasciarsi impantanare da nessuna architettura di computer. Il progetto aveva il nome in codice "Green".
Nel tentativo di inventare un codice piccolo, compatto e indipendente dalla macchina, gli sviluppatori hanno ripreso il modello utilizzato per implementare le prime versioni del linguaggio Pascal agli albori dell'era dei personal computer. Niklaus Wirth, il creatore del linguaggio Pascal, una volta sviluppò un linguaggio indipendente dalla macchina che genera codice intermedio per una determinata macchina ipotetica. Questo linguaggio divenne un prodotto commerciale con il nome UCSD Pascal. (Tali macchine ipotetiche sono spesso chiamate macchine virtuali, ad esempio Java virtual machine o JVM.)
Questo codice intermedio può essere eseguito su qualsiasi macchina dotata di un interprete appropriato. Anche gli ingegneri che lavorano su Project Green hanno utilizzato una macchina virtuale, che ha risolto il loro problema principale.
Tuttavia, la maggior parte dei dipendenti Sun aveva esperienza con il sistema operativo UNIX, quindi il linguaggio da loro sviluppato era basato su C++ e non su Pascal. In particolare, hanno reso il linguaggio orientato agli oggetti piuttosto che alle procedure.
Come ha detto Gosling nella sua intervista: " La lingua è sempre un mezzo, non un fine"All'inizio, Gosling decise di chiamarlo "Oak". (Forse perché gli piaceva guardare la quercia che cresceva proprio fuori dalle finestre del suo ufficio alla Sun.) Poi i dipendenti Sun appresero che la parola Oak era già usata come nome di un linguaggio di programmazione creato in precedenza e ha cambiato il nome Java.
Nel 1992 furono lanciati i primi prodotti nell'ambito del progetto Green, chiamato
"*7". Era un mezzo per il controllo remoto estremamente intelligente. (Aveva la potenza di una workstation SPARK, ma stava in una scatola da 6x4x4 pollici.) Sfortunatamente, nessuna azienda di elettronica era interessata a questa invenzione.
Il gruppo iniziò quindi a sviluppare un dispositivo televisivo via cavo in grado di fornire nuovi tipi di servizi, come i video on demand. E ancora una volta non hanno ricevuto un solo contratto. (È curioso che una delle società che si rifiutò di firmare un contratto con loro fosse guidata da Jim Clark, il fondatore di Netscape, che in seguito fece molto per il successo del linguaggio Java.)
Per tutto il 1993 e la metà del 1994 è continuata la ricerca infruttuosa di acquirenti di prodotti sviluppati nell'ambito del progetto Green (sotto il nuovo nome "First Person, Inc."). (Patrick Naughton, uno dei fondatori del gruppo che in seguito lavorò principalmente nel marketing, volò per più di 300.000 miglia in totale cercando di vendere la tecnologia.) First Person, Inc. è stato interrotto nel 1994.
Nel frattempo, il World Wide Web cresceva all'interno di Internet. La chiave di questa rete è il browser, che trasforma l'ipertesto in un'immagine sullo schermo.
Nel 1994, la maggior parte delle persone utilizzava il browser Mosaic, un browser Web senza fini di lucro sviluppato presso il Supercomputing Center dell’Università dell’Illinois nel 1993. (Questo browser è stato scritto in parte da Mark Andreessen per 6,85 dollari l'ora. All'epoca Mark si stava laureando all'università e il browser era la sua tesi. Divenne poi uno dei fondatori e capo programmatore di Netscape, e la fama arrivò a lui e ricchezza.)
In un'intervista con la rivista Sun World, Gosling ha detto che a metà del 1994, gli sviluppatori del linguaggio si sono resi conto: "Dobbiamo creare un browser davvero interessante. Un browser del genere dovrebbe essere una delle poche applicazioni della sofisticata tecnologia client-server, dove esattamente ciò che è vitale sarebbe ciò che abbiamo fatto: indipendenza dell'architettura, esecuzione in tempo reale, affidabilità, sicurezza - questioni che non erano estremamente importanti per le workstation. E abbiamo creato un browser di questo tipo."
In effetti, il browser è stato sviluppato da Patrick Naughton e Jonathan Payne. Successivamente si è evoluto nel moderno browser HotJava. Questo browser è stato scritto in Java per dimostrare tutta la sua potenza. Tuttavia, gli sviluppatori non hanno dimenticato i potenti strumenti ora chiamati applet, che danno al browser la possibilità di eseguire codice all'interno delle pagine Web. La "demo tecnologica" fu presentata al Sun World '95 il 23 maggio 1995 e scatenò una mania per Java che continua ancora oggi.
Sun ha rilasciato la prima versione del linguaggio Java all'inizio del 1996. Pochi mesi dopo apparve la versione Java 1.02. Le persone si resero presto conto che Java 1.02 non era adatto allo sviluppo di applicazioni serie. Naturalmente, questa versione può essere utilizzata per sviluppare pagine Web con uomini che ballano, ma in Java 1.02 non puoi nemmeno stampare nulla.
Ad essere onesti, Java 1.02 era ancora grezzo. Il suo successore, Java 1.1, ha colmato la maggior parte delle lacune migliorando notevolmente le capacità di riflessione e aggiungendo un nuovo modello di eventi per la programmazione della GUI. Nonostante ciò, era ancora piuttosto limitato.
Il rilascio di Java 1.2 fu la notizia principale alla conferenza JavaOne del 1998. La nuova versione sostituisce strumenti deboli per la creazione di interfacce utente grafiche e applicazioni grafiche con strumenti complessi ed estesi. Questo è stato un passo avanti verso l'implementazione dello slogan "Write Once, Run Anywhere" ™, proposto durante lo sviluppo delle versioni precedenti.
Nel dicembre 1998, tre giorni (!) dopo il suo rilascio, il nome della nuova versione fu cambiato nell'ingombrante frase Java 2 Standard Edition Software Development Kit Version 1.2 (Edizione standard di un pacchetto di strumenti per lo sviluppo di software nel linguaggio Java 2 , versione 1.2).
Oltre all'edizione standard del pacchetto ("Standard Edition") sono state offerte altre due opzioni: una "micro edizione" ("Micro Edition") per dispositivi portatili, ad esempio per telefoni cellulari, ecc. "Industrial Edition" ("Enterprise Edition") per la creazione di applicazioni basate su server. Il nostro libro si concentra sull’edizione standard.
Le versioni 1.3 e 1.4 dell'edizione standard del toolkit sono molto più avanzate rispetto alla versione originale del linguaggio Java 2. Hanno nuove funzionalità e, ovviamente, contengono molti meno bug. Nella tabella La Figura 1 1 mostra la rapida crescita della libreria API man mano che diventano disponibili nuove versioni dell'SDK dell'edizione standard.
Tabella 1.1. La crescita della libreria API dal pacchetto Java Standard Edition
Numero di classi e interfacce |
Numero di metodi e campi |
|
Idee sbagliate comuni sul linguaggio Java
Questa sezione elenca e commenta alcuni dei malintesi più comuni su Java.
Il linguaggio Java è un'estensione del linguaggio HTML.
Java è un linguaggio di programmazione e HTML è un modo per descrivere la struttura delle pagine Web. Non c'è nulla in comune tra loro, ad eccezione delle estensioni del linguaggio HTML che consentono di inserire applet scritte in Java nelle pagine Web.
Sto lavorando in XML, quindi non ho bisogno di Java.
Java è un linguaggio di programmazione e XML è semplicemente un modo per descrivere i dati. I dati descritti utilizzando XML possono essere elaborati da programmi scritti in qualsiasi linguaggio di programmazione, ma solo la libreria API Java fornisce un eccellente supporto per l'elaborazione di tali dati. Inoltre, Java implementa molte delle funzionalità di XML. Sono descritti più dettagliatamente nel secondo volume.
Il linguaggio Java è facile da imparare.
Non esiste un linguaggio di programmazione potente come Java che possa essere appreso facilmente. È facile scrivere programmi giocattolo, ma fare un lavoro serio è sempre difficile. Inoltre, tieni presente che questo libro dedica solo quattro capitoli alla discussione del linguaggio Java stesso. I restanti capitoli spiegano come lavorare con le sue librerie, che contengono migliaia di classi e interfacce, oltre a molte migliaia di funzioni. Fortunatamente, non è necessario conoscerli tutti, ma realizzare un vero progetto richiede una sorprendente quantità di conoscenze da parte dell'utente.
Java è facile da programmare.
Java SDK non è facile da usare per nessuno, tranne che per i programmatori abituati alla riga di comando. Esistono ambienti di programmazione integrati che includono editor di testo, compilatori e strumenti per la creazione di moduli drag-and-drop, ma sembrano troppo complessi e intimidatori per un principiante. Inoltre, spesso generano programmi composti da centinaia di righe. Ci sembra che iniziare ad imparare il linguaggio Java utilizzando programmi lunghi, generati automaticamente e pieni di commenti del tipo “NON TOCCARSI LE MANI!” non sia una buona idea. Crediamo che il modo migliore per imparare Java sia utilizzare il tuo editor di testo preferito. Questo è esattamente ciò che faremo.
Il linguaggio Java diventerà presto un linguaggio di programmazione universale per tutte le piattaforme.
Teoricamente questo è possibile. Questo è ciò che sognano tutti i produttori di software, tranne Microsoft. Tuttavia, esistono molte applicazioni che funzionano perfettamente sui personal computer ma che non funzionano altrettanto bene su altri dispositivi o browser. Inoltre, queste applicazioni sono scritte per sfruttare appieno i processori e le librerie dipendenti dalla macchina. In ogni caso sono già stati portati su tutte le piattaforme importanti. Tali applicazioni includono editor di testo e grafici, nonché browser Web. In genere queste applicazioni sono scritte in C o C++ e l'utente non otterrà nulla riscrivendole in Java. Inoltre, la riscrittura in Java renderà questi programmi più lenti e meno efficienti, almeno nel prossimo futuro.
Il linguaggio Java è solo un altro linguaggio di programmazione.
Java è un meraviglioso linguaggio di programmazione. Molti programmatori lo preferiscono ai linguaggi C o C++. Tuttavia, ci sono centinaia di ottimi linguaggi di programmazione in tutto il mondo che non hanno mai raggiunto un’adozione diffusa, mentre linguaggi con evidenti carenze, come C++ e Visual Basic, hanno ottenuto un successo straordinario.
Perché? Il successo di qualsiasi linguaggio di programmazione è determinato principalmente dalla praticità del suo sistema di supporto piuttosto che dall'eleganza della sua sintassi. Esistono librerie utili, convenienti e standard che ti consentono di fare esattamente ciò di cui un programmatore ha bisogno? È stato sviluppato un ambiente conveniente per la creazione e il debug dei programmi? Il linguaggio e i suoi strumenti sono integrati nell’infrastruttura informatica? Il linguaggio Java ha fatto passi da gigante nelle applicazioni server perché le sue librerie di classi rendono facile fare cose che prima erano difficili, come il networking e il multithreading. Anche il fatto che Java abbia ridotto il numero di bug dei puntatori è a suo favore. Grazie a ciò, la produttività dei programmatori è aumentata. Tuttavia non è questo il motivo del suo successo.
I programmi Java vengono interpretati, il che significa che le applicazioni serie verranno eseguite troppo lentamente su una particolare piattaforma.
Molti programmi trascorrono la maggior parte del tempo interagendo con l'interfaccia utente o aspettando dati dalla rete. Tutti i programmi, indipendentemente dalla lingua in cui sono scritti, devono rispondere al clic del mouse entro un certo tempo. Naturalmente non dovresti eseguire attività che richiedono un uso intensivo della CPU utilizzando l'interprete Java. Tuttavia, sulle piattaforme che consentono la compilazione sincrona, è sufficiente eseguire i bytecode per l'esecuzione e la maggior parte dei problemi semplicemente scompariranno.
Dopotutto, Java è ottimo per lo sviluppo di programmi di rete. L'esperienza dimostra che mantiene facilmente velocità di trasmissione di rete elevate anche durante calcoli intensivi come la crittografia. Poiché Java è più veloce della velocità di Internet, non importa che i programmi C++ possano essere eseguiti ancora più velocemente. Java è più facile da programmare e i programmi scritti in esso sono indipendenti dalla macchina.
Tutti i programmi Java vengono eseguiti nei browser Web.
Tutte le applet scritte in Java funzionano effettivamente sotto il controllo dei browser Web. In realtà, questa è la definizione di applet: un programma eseguito da un browser Web. Tuttavia, è del tutto possibile e opportuno creare programmi Java autonomi che vengano eseguiti indipendentemente dal browser Web.
Questi programmi (solitamente chiamati applicazioni) sono completamente indipendenti dalla macchina. Basta prendere il programma ed eseguirlo su un'altra macchina! Poiché Java è più facile da usare e meno soggetto a errori rispetto a C++, è una buona scelta. Se combinato con strumenti di accesso al database come il pacchetto Java Database Connectivity, il linguaggio Java diventa irresistibile. È particolarmente conveniente impararlo come primo linguaggio di programmazione.
La maggior parte dei programmi contenuti in questo libro sono completamente autonomi. Naturalmente, le applet sono molto divertenti. Tuttavia, le applicazioni Java sono più importanti e utili nella pratica.
Le applet Java rappresentano una grande minaccia per i sistemi di sicurezza.
Sono stati pubblicati numerosi report su bug di sicurezza nel linguaggio Java. La maggior parte di essi riguardava l'implementazione del linguaggio Java utilizzando un browser specifico. I ricercatori hanno preso questo come una sfida e hanno iniziato a cercare scappatoie di sicurezza nel linguaggio Java per superare la forza e la complessità del modello di sicurezza dell'applet. Gli errori tecnici scoperti furono presto corretti e, per quanto ne sappiamo, nessun sistema reale è mai stato compromesso. Per apprezzare l'importanza di questo fatto, ricordiamo i milioni di virus presenti sui file eseguibili del sistema operativo Windows e sulle macro dell'elaboratore di testi Word, che in effetti hanno causato non pochi problemi, e la critica sorprendentemente insensata dei punti deboli della piattaforma attaccata . Inoltre, il meccanismo ActiveX nel browser Internet Explorer potrebbe suscitare molte critiche, ma i metodi per hackerarlo sono così evidenti che solo pochi esperti si sono presi la briga di pubblicare le loro ricerche.
Alcuni amministratori di sistema hanno persino iniziato a disattivare la protezione del linguaggio Java nei loro browser in modo che gli utenti possano continuare a scaricare file eseguibili, controlli ActiveX e documenti creati utilizzando l'elaboratore di testi Word. È curioso che attualmente la probabilità di superare il sistema di sicurezza degli applet Java sia paragonabile alla probabilità di morire in un incidente aereo, mentre il rischio di infettare un computer aprendo un documento creato da un elaboratore di testi Word è paragonabile al rischio di morire sotto le ruote di un'auto mentre si attraversa la strada in un'ora di punta.
Il linguaggio JavaScript è una versione semplificata del linguaggio Java.
JavaScript è un linguaggio di scripting che può essere utilizzato nelle pagine Web. È stato sviluppato da Netscape e inizialmente si chiamava LiveScript. La sintassi del linguaggio JavaScript è simile alla sintassi del linguaggio Java, ma le somiglianze finiscono qui (ad eccezione del nome, ovviamente). Un sottoinsieme del linguaggio JavaScript è stato standardizzato con il nome ECMA-262, ma le sue estensioni necessarie per il lavoro reale non sono state standardizzate.
Java: un linguaggio dei microsistemi Sun. È stato originariamente sviluppato come linguaggio per programmare dispositivi elettronici, ma in seguito iniziò ad essere utilizzato per scrivere applicazioni software per server. I programmi Java sono multipiattaforma, ovvero possono essere eseguiti su qualsiasi sistema operativo.
Nozioni di base sulla programmazione Java
Java, in quanto linguaggio orientato agli oggetti, segue i principi di base dell'OOP:
- eredità;
- polimorfismo;
- incapsulamento.
Al centro di Java, come in altri OYA, c'è un oggetto e una classe con costruttori e proprietà. È meglio iniziare ad apprendere il linguaggio di programmazione Java non da risorse ufficiali, ma da manuali per principianti. Tali manuali descrivono le funzionalità in dettaglio e forniscono esempi di codice. Libri come "The Java Programming Language for Beginners" spiegano in dettaglio i principi e le caratteristiche di base del linguaggio indicato.
Peculiarità
Il codice del linguaggio di programmazione Java viene tradotto in bytecode e quindi eseguito sulla JVM. La conversione in bytecode viene effettuata in Javac, Jikes, Espresso, GCJ. Esistono compilatori che traducono il linguaggio C in bytecode Java. Pertanto, un'applicazione C può essere eseguita su qualsiasi piattaforma.
La sintassi Java è caratterizzata da quanto segue:
- I nomi delle classi devono iniziare con una lettera maiuscola. Se il nome è composto da più parole, la seconda deve iniziare in maiuscolo.
- Se per formare un metodo vengono utilizzate più parole, la seconda deve iniziare con la lettera maiuscola.
- L'elaborazione inizia con il metodo main(): fa parte di ogni programma.
Tipi
Il linguaggio di programmazione Java ha 8 tipi primitivi. Sono presentati di seguito.
- Boolean è un tipo booleano che accetta solo due valori, true e false.
- Byte è il tipo intero più piccolo, misura 1 byte. Viene utilizzato quando si lavora con file o dati binari grezzi. Ha un intervallo compreso tra -128 e 127.
- Short ha un intervallo compreso tra -32768 e 32767 e viene utilizzato per rappresentare i numeri. La dimensione delle variabili di questo tipo è 2 byte.
- Anche Int sta per numeri, ma la sua dimensione è di 4 byte. Viene spesso utilizzato per lavorare con dati interi e talvolta byte e short vengono promossi a int.
- Long vengono utilizzati per numeri interi di grandi dimensioni. I valori possibili vanno da -9223372036854775808 a 9223372036854775807.
- Float e double vengono utilizzati per denotare valori frazionari. La loro differenza è che float è utile quando non è richiesta un'elevata precisione nella parte frazionaria di un numero.
- Double visualizza tutti i caratteri dopo il separatore ".", mentre float visualizza solo i primi.
- String è il tipo primitivo più comunemente utilizzato per definire le stringhe.
Classi e oggetti
Le classi e gli oggetti svolgono un ruolo importante nell'apprendimento del linguaggio di programmazione Java per principianti.
Una classe definisce un modello per un oggetto; ha necessariamente attributi e metodi. Per crearlo, utilizzare la parola chiave Class. Se viene creato in un file separato, il nome della classe e del file devono essere gli stessi. Il nome stesso è composto da due parti: il nome e l'estensione.Java.
In Java, puoi creare una sottoclasse che erediterà i metodi del genitore. La parola estende è usata per questo:
- classe nome_classe estende nome_superclasse ();
Un costruttore è un componente di qualsiasi classe, anche se non è specificato esplicitamente. In questo caso, il compilatore lo crea in modo indipendente:
- classe pubblica Classe( Classe pubblica())( ) Classe pubblica(Nome stringa)( ))
Il nome del costruttore è uguale al nome della classe per impostazione predefinita, ha un solo parametro:
- pubblico Cucciolo (nome stringa)
L'oggetto viene creato da una classe utilizzando l'operatore new():
- Punto p = nuovo Punto()
Riceve tutti i metodi e le proprietà della classe, con l'aiuto della quale interagisce con altri oggetti. Un oggetto può essere utilizzato più volte in diverse variabili.
- nomeclasse.variabile
- importa il nome della classe statica;
class Punto(int x, y;
void init(int a, int b) (
- Punto.init();
- int a, b, c;
- variabili locali (locali);
- variabili di istanza
- variabili statiche (statiche).
- numeri - 0;
- logica: falsa;
- i collegamenti sono nulli.
- finale;
- privato;
- pubblico
- NomeClasse.NomeVariabile.
- Edizione standard.
- Edizione aziendale.
- Edizione micro.
- Carta.
- SE è il principale, ampiamente utilizzato per creare applicazioni personalizzate per uso individuale.
- EE è un insieme di specifiche per lo sviluppo di software aziendale. Contiene più funzionalità di SE, quindi viene utilizzato su scala commerciale nelle grandi e medie imprese.
- ME - progettati per dispositivi con potenza e memoria limitate, solitamente hanno dimensioni del display ridotte. Tali dispositivi sono smartphone e PDA, ricevitori televisivi digitali.
- Carta - progettata per dispositivi con risorse di calcolo estremamente limitate, come smart card, carte SIM, bancomat. A tal fine sono stati modificati il bytecode, i requisiti della piattaforma e i componenti della libreria.
- IDE NetBeans.
- IDE di Eclipse.
- IDEA IntelliJ.
- JDeveloper.
- Java per iOS.
- Geny.
Punto p = nuovo Punto()
classe DuePunti (
public static void main(String args) (
Punto p1 = nuovo Punto();
Punto p2 = nuovo Punto();
Le variabili oggetto e gli oggetti sono entità completamente diverse. Le variabili oggetto sono riferimenti. Possono puntare a qualsiasi variabile di tipo non primitivo. A differenza del C++, la conversione del tipo è strettamente regolamentata.
Campi e metodi
I campi sono tutte le variabili associate a una classe o oggetto. Per impostazione predefinita sono locali e non possono essere utilizzati in altre classi. Per accedere ai campi, utilizzare l'operatore "."
È possibile definire campi statici utilizzando la parola chiave static. Tali campi sono l'unico modo per memorizzare variabili globali. Ciò è dovuto al fatto che Java semplicemente non ha variabili globali.
Implementata la possibilità di importare variabili per accedere da altri pacchetti:
Il metodo è una subroutine per le classi in cui è dichiarato. Descritte allo stesso livello delle variabili. È specificato come funzione e può essere di qualsiasi tipo, compreso void:
Nell'esempio sopra, la classe Point ha un numero intero xey, un metodo init(). Ai metodi, come alle variabili, si accede utilizzando l'operatore "."
La proprietà init non restituisce nulla, quindi è di tipo void.
Variabili
Nel tutorial sul linguaggio di programmazione Java, le variabili occupano un posto speciale. Tutte le variabili hanno un tipo specifico, determina la posizione richiesta per la memorizzazione dei valori, l'intervallo di valori possibili e l'elenco delle operazioni. Prima che i valori possano essere manipolati, le variabili vengono dichiarate.
È possibile dichiarare più variabili contemporaneamente. Per elencarli viene utilizzata una virgola:
L'inizializzazione avviene dopo o durante la dichiarazione:
int a = 10, b = 10;
Ne esistono diversi tipi:
Le variabili locali vengono dichiarate nei metodi e nei costruttori; vengono create quando questi ultimi vengono eseguiti e distrutte al termine. Per loro è vietato specificare modificatori di accesso e controllare il livello di disponibilità. Non sono visibili all'esterno del blocco dichiarato. In Java le variabili non hanno un valore iniziale, quindi è necessario assegnarle prima del primo utilizzo.
Le variabili di istanza devono essere dichiarate all'interno della classe. Vengono utilizzati come metodi, ma è possibile accedervi solo dopo la creazione dell'oggetto. La variabile viene distrutta quando l'oggetto viene distrutto. Le variabili di istanza, a differenza di quelle locali, hanno valori predefiniti:
Le variabili statiche sono chiamate variabili di classe. I loro nomi iniziano con un carattere maiuscolo e sono specificati dal modificatore statico. Vengono utilizzati come costanti; di conseguenza, ad essi viene aggiunto uno specificatore dall'elenco:
Vengono avviati all'inizio del programma e distrutti al termine dell'esecuzione. Proprio come le variabili di istanza, hanno valori standard assegnati a variabili vuote. I numeri hanno un valore pari a 0, le variabili booleane hanno un valore falso e i riferimenti agli oggetti sono inizialmente nulli. Le variabili statiche vengono chiamate come segue:
Netturbino
Nel tutorial "Il linguaggio di programmazione Java per principianti", la sezione sulla garbage collection automatica è la più interessante.
In Java, a differenza del linguaggio C, è impossibile rimuovere manualmente un oggetto dalla memoria. A questo scopo è stato implementato un metodo di rimozione automatica: un garbage collector. Con l'eliminazione tradizionale tramite null, viene rimosso solo il riferimento all'oggetto e l'oggetto stesso viene eliminato. Esistono metodi per forzare la raccolta dei rifiuti, sebbene non sia consigliabile utilizzarli nel normale lavoro.
Il modulo per l'eliminazione automatica degli oggetti non utilizzati funziona in background e viene avviato quando il programma è inattivo. Per cancellare gli oggetti dalla memoria, il programma si ferma; dopo aver liberato la memoria, viene ripresa l'operazione interrotta.
Modificatori
Esistono diversi tipi di modificatori. Oltre a quelli che determinano il metodo di accesso, esistono modificatori di metodi, variabili e classi. I metodi dichiarati privati sono disponibili solo nella classe dichiarata. Tali variabili non possono essere utilizzate in altre classi e funzioni. Public consente l'accesso a qualsiasi classe. Se devi ottenere una classe Public da un altro pacchetto, devi prima importarla.
Il modificatore protected è simile in effetti a public: apre l'accesso ai campi della classe. In entrambi i casi, le variabili possono essere utilizzate in altre classi. Ma il modificatore public è disponibile assolutamente per tutti, mentre il modificatore protected è disponibile solo per le classi ereditate.
Il modificatore utilizzato durante la creazione dei metodi è statico. Ciò significa che il metodo creato esiste indipendentemente dalle istanze della classe. Il modificatore Finale non controlla l'accesso, ma indica piuttosto l'impossibilità di un'ulteriore manipolazione dei valori dell'oggetto. Vieta di modificare l'elemento per il quale è specificato.
Final for field rende impossibile modificare il primo valore della variabile:
public static void mthod(String args) (
final int Nome = 1;
int Name = 2;// genererà un errore
Le variabili con il modificatore finale sono costanti. Di solito sono scritti solo in maiuscolo. CamelStyle e altri metodi non funzionano.
La finale dei metodi indica un divieto di modificare un metodo in una classe ereditata:
final void miometodo() (
System.out.printIn("Ciao mondo");
Finale per le classi significa che non è possibile creare discendenti di classi:
classe pubblica finale Classe (
Abstract: modificatore per la creazione di classi astratte. Qualsiasi classe astratta e metodo astratto sono destinati ad essere ulteriormente estesi in altre classi e blocchi. Modificatore transitorio indica alla macchina virtuale di non elaborare la variabile specificata. In questo caso, semplicemente non verrà salvato. Ad esempio, il transitorio int Name = 100 non verrà salvato, ma verrà salvato int b.
Piattaforme e versioni
Famiglie esistenti del linguaggio di programmazione Java:
Applicazione
I programmi scritti nel linguaggio di programmazione Java tendono ad essere più lenti e occupano più RAM. Un'analisi comparativa dei linguaggi Java e C ha mostrato che il C è un po' più produttivo. Dopo numerose modifiche e ottimizzazioni, la macchina virtuale Java ha migliorato le sue prestazioni.
Utilizzato attivamente per le applicazioni Android. Il programma viene compilato in bytecode non standard ed eseguito sulla macchina virtuale ART. Per la compilazione viene utilizzato Android Studio. Questo IDE di Google è quello ufficiale per lo sviluppo Android.
Microsoft ha sviluppato la propria implementazione della macchina virtuale Java MSJVM. Presentava differenze che rompevano il concetto fondamentale di multipiattaforma: non c'era supporto per alcune tecnologie e metodi, c'erano estensioni non standard che funzionavano solo sulla piattaforma Windows. Microsoft ha rilasciato il linguaggio J#, la cui sintassi e il funzionamento complessivo sono molto simili a Java. Non era conforme alle specifiche ufficiali e alla fine è stato rimosso dallo standard Microsoft Visual Studio Developer Toolkit.
Linguaggio e ambiente di programmazione Java
Lo sviluppo del software viene effettuato nei seguenti IDE:
Il JDK è distribuito da Oracle come kit di sviluppo Java. Include un compilatore, librerie standard, utilità e un sistema esecutivo. I moderni ambienti di sviluppo integrati si basano su JDK.
È conveniente scrivere codice nel linguaggio di programmazione Java in Netbeans ed Eclipse IDE. Si tratta di ambienti di sviluppo integrati gratuiti, adatti a tutte le piattaforme Java. Utilizzato anche per la programmazione in Python, PHP, JavaScript, C++.
IntelliJ IDE di Jetbrains è distribuito in due versioni: gratuita e commerciale. Supporta la scrittura di codice in molti linguaggi di programmazione; esistono plugin di terze parti di sviluppatori che implementano ancora più linguaggi.
JDeveloper è un altro sviluppo di Oracle. Completamente scritto in Java, quindi funziona su tutti i sistemi operativi.
In questa guida tratteremo tutto ciò che devi sapere prima di iniziare a studiare. programmazione in Giava. Imparerai le capacità della piattaforma, la sua applicazione e come iniziare ad apprendere correttamente Java.
Cos'è il linguaggio di programmazione Java?
Nel 1991 nasce il “Green Team”, una divisione della Sun Microsystems, guidata da James Gosling, ha creato un linguaggio per programmare i dispositivi elettronici di consumo. A quel tempo si chiamava Quercia (“Quercia”). Perché "quercia"? Semplicemente perché quest’albero cresceva fuori dalla finestra dell’ufficio di Gosling.
Il Green Team ha dimostrato l'uso di Oak in una TV interattiva. Ma per la televisione digitale via cavo di quegli anni questa tecnologia era troppo avanzata. Allo stesso tempo, Internet stava guadagnando popolarità, per la quale il nuovo linguaggio di programmazione era più adatto.
Dopo qualche tempo, la nuova lingua fu ribattezzata Verde, e successivamente Java, in onore del caffè dell'isola di Giava. Ecco perché il logo Java raffigura una tazza da caffè.
Durante lo sviluppo di Java, C/C++ era popolare, quindi Gosling rese la sintassi del linguaggio simile a C/C++ e implementò il " scrivi una volta - corri ovunque" Nel 1995, Sun Microsystems ha rilasciato la prima versione ufficiale di Java. E allo stesso tempo è stato annunciato che Java sarà incluso nel browser Netscape Navigator.
Nel 2010, Sun Microsystems, insieme al linguaggio di programmazione Java, è stata acquisita da Oracle Corporation.
Cronologia delle versioni di Java
- Giugno 1991 – inizio del progetto di sviluppo linguaggio di programmazione Giava.
- JDK 1.0 – gennaio 1996.
- JDK 1.1 – febbraio 1997.
- J2SE 1.2 – dicembre 1998.
- J2SE 1.3 – maggio 2000.
- J2SE 1.4 – Febbraio 2002.
- J2SE 5.0 – settembre 2004.
- Java SE 6 - dicembre 2006.
- Java SE 7 – luglio 2011.
- Java SE 8 – 18 marzo 2014.
- Java SE 9 – 21 settembre 2017.
Caratteristiche del linguaggio di programmazione Java
Java è un linguaggio multipiattaforma
Codice Java scritto su una piattaforma ( cioè il sistema operativo), può essere eseguito senza modifiche su altre piattaforme.
Java viene utilizzato per eseguire Java ( Macchina virtuale Java, JVM). La JVM elabora il codice byte, dopodiché il processore elabora il codice ricevuto dalla JVM. Tutte le macchine virtuali funzionano in modo simile, quindi lo stesso codice viene eseguito allo stesso modo su tutti i sistemi operativi, il che rende Java un linguaggio di programmazione multipiattaforma.
Linguaggio di programmazione orientato agli oggetti
Esistono diversi stili di programmazione e uno dei più popolari è la programmazione orientata agli oggetti. Con questo approccio, un problema complesso viene scomposto in problemi più piccoli creando oggetti. Grazie a questo, il codice può essere riutilizzato.
Le funzioni orientate agli oggetti si trovano in molti linguaggi di programmazione, inclusi Java, Python e C++. Se sei seriamente intenzionato a imparare a programmare, vale la pena aggiungere approcci orientati agli oggetti al tuo piano di apprendimento.
Java è veloce
Prime versioni linguaggio di programmazione Java è stato spesso criticato per la sua lentezza. Ma oggi la situazione è cambiata radicalmente. Le nuove versioni della JVM funzionano molto più velocemente e i processori che le interpretano stanno diventando sempre più veloci.
Oggi Java è uno dei linguaggi di programmazione più veloci. Il codice Java ben ottimizzato funziona quasi alla stessa velocità dei linguaggi di programmazione di basso livello come C/C++ e molto più velocemente di Python, PHP, ecc.
Java è una piattaforma sicura
Giava lo è:
- una piattaforma sicura per lo sviluppo e il lancio di applicazioni;
- fornisce strumenti per la gestione automatica della memoria, che riduce la vulnerabilità del codice;
- garantisce un trasferimento sicuro dei dati.
Ampia libreria principale
Uno dei motivi per cui Java è così diffuso è la sua enorme libreria standard. Contiene centinaia di classi e metodi di vari pacchetti che semplificano la vita agli sviluppatori. Per esempio,
java.lang è funzioni avanzate per stringhe, array, ecc.
java.util – libreria per lavorare con strutture dati, espressioni regolari, data e ora, ecc.
kava.io - libreria per input/output di file, gestione delle eccezioni, ecc.
Applicazione della piattaforma Java
Prima di imparare Java programmazione da zero, devi sapere che più di 3 miliardi di dispositivi nel mondo funzionano su questa piattaforma. Per cosa può essere utilizzato esattamente:
- Applicazioni Android: per sviluppare applicazioni Android, il linguaggio di programmazione Java viene spesso utilizzato in combinazione con Android SDK ( dall'inglese kit di sviluppo software - kit di sviluppo software).
- Applicazioni Web: Java viene utilizzato per creare applicazioni Web utilizzando programmi server, framework Struts e JSP. Alcune applicazioni Web popolari scritte in Java sono: Google.com, Facebook.com, eBay.com, LinkedIn.com.
Vale la pena notare che questi siti non sono necessariamente scritti esclusivamente in Java e possono utilizzare anche altri linguaggi di programmazione.
- Sviluppo software– programmi come Eclipse, OpenOffice, Vuze, MATLAB e molti altri sono scritti in Java.
- Elaborazione Big Data – per elaborare i “big data” è possibile utilizzare il framework Hadoop scritto in Java.
- Sistemi di scambio– utilizzando la piattaforma Piattaforma di trading Oracle Extreme Java, puoi scrivere programmi per il trading.
- Dispositivi incorporati– oggi miliardi di dispositivi, come televisori, schede SIM, lettori Blu-ray, ecc., si basano sulla tecnologia Java Embedded di Oracle.
Anche programmazione in Java viene utilizzato per sviluppare giochi, applicazioni scientifiche ( ad esempio, per l'elaborazione del linguaggio naturale) e in molti altri ambiti.
Terminologia Java che dovresti conoscere
Java è un insieme di tecnologie ( linguaggio di programmazione e piattaforma informatica), progettato per creare ed eseguire software. Tuttavia, il termine Java si riferisce spesso al linguaggio di programmazione stesso.
Linguaggio di programmazione Java è un linguaggio di programmazione multipiattaforma, orientato agli oggetti e di uso generale con ampie funzionalità.
Java 9 è l'ultima versione di Java al momento in cui scriviamo.
Java EE, Java Me e Java SE: questi nomi stanno rispettivamente per Java Enterprise Edition, Micro Edition e Standard Edition.
Java EE è rivolto alle applicazioni eseguite su server. Java ME è progettato per dispositivi con vincoli di potenza come i dispositivi incorporati. Java SE è l'edizione standard di Java per la scrittura di programmi generali.
Se sei nuovo a Programmazione Java, ti consigliamo di iniziare con Java SE.
JVM - Macchina virtuale Java (" Macchina virtuale Java") è un programma che consente a un computer di eseguire programmi scritti in Java.
JRE – Java Runtime Environment (“ Tempo di esecuzione Java") include la JVM, le librerie associate e altri componenti necessari per eseguire i programmi. Ma JRE non dispone di compilatore, debugger o altri strumenti di sviluppo.
JDK – Kit di sviluppo Java Sviluppatore Java) contiene JRE e altri strumenti di sviluppo come compilatori, debugger, ecc.
Come eseguire Java sul tuo sistema operativo
Come eseguire Java su Mac OS
Ecco cosa fare per Java programmazione da zero e installando la piattaforma su Mac OS X o macOS:
- Scarica l'ultima versione di Java ( JDK) con Pagine di download di Java SE.
- Fare doppio clic sul file DMG scaricato e seguire le istruzioni del programma di installazione.
- Per verificare l'installazione, aprire un terminale e immettere il seguente comando:
javac –versione
Se Java è installato correttamente, la versione del programma verrà visualizzata sullo schermo ( ad esempio javac 1.8.0_60).
Il passaggio successivo consiste nell'installare l'IDE ( ambiente di sviluppo integrato) per scrivere ed eseguire codice Java. Installeremo la versione gratuita di IntelliJ IDEA ed eseguiremo Java su di essa. Ecco cosa devi fare per farlo:
- Vai a Pagina di download di IntelliJ e scarica la Community Edition gratuita.
- Apri il file DMG scaricato e segui le istruzioni di installazione. Per un accesso rapido, puoi spostare IntelliJ IDEA nella cartella Applicazioni.
- Apri IntelliJ IDEA. Selezionare l'opzione “Non importare le impostazioni” (“ Non importare le impostazioni") e fare clic su "Ok". Successivamente, accetta l'informativa sulla privacy di Jetbrains facendo clic sul pulsante "Accetta".
- Ora puoi personalizzare l'interfaccia per te. Puoi anche saltare questo passaggio e lasciare tutto come predefinito. Se non sei sicuro, salta questo passaggio facendo clic sul pulsante "Salta tutto e imposta valori predefiniti" (" Salta tutto e ripristina le impostazioni predefinite»).
- Il programma ti mostrerà una pagina di benvenuto. Fare clic sul pulsante "Crea nuovo progetto" (“ Crea un nuovo progetto»).
- Nella finestra successiva, seleziona "Java" nel riquadro di sinistra e fai clic su "Nuovo" nella parte superiore della finestra del programma per selezionare "JDK". Qui devi selezionare la posizione in cui hai installato JDK, quindi fare clic su Avanti.
- Avrai la possibilità di creare un progetto da un modello ("Crea progetto da un modello"). Lo ignoriamo e facciamo clic sul pulsante "Avanti".
- Nella fase successiva dell'installazione linguaggio di programmazione Java inserisci il nome del progetto e fai clic sul pulsante "Fine".
- Nel pannello di sinistra vedrai il tuo progetto. Se il pannello non è visibile, vai al menu Viste > Finestre degli strumenti > Progetto.
- Vai a Hello > New > Java e dai un nome alla classe. L'abbiamo chiamato Primo.
- Per eseguire il programma che hai appena scritto, vai su Esegui > Esegui... Fai clic su Primo ( cioè il nome del file che abbiamo creato
Come eseguire Java su Linux
Da cui eseguire esempi lezioni di programmazione da zero Java su Linux avrà bisogno del kit di sviluppo JAVA SE ( JDK) e IDE per sviluppare i tuoi progetti. Segui le istruzioni passo dopo passo per iniziare con Java.
Installa Java
- Apri un terminale e digita il seguente comando per installare Java:
sudo add-apt-repository ppa:webupd8team/java sudo apt update; sudo apt install oracle-java8-installer
- Accettare il contratto di licenza e i termini di utilizzo facendo clic rispettivamente su "OK" e "Sì".
- Hai installato Java. Per verificare che l'installazione sia andata a buon fine, digitare in un terminale il seguente comando:
java –versione
Se viene visualizzata la versione corrente, l'installazione è riuscita. In caso contrario, verificare con Pagina di aiuto di Oracle.
Installazione di IntelliJ IDEA
- Vai a .
- Scarica la Community Edition gratuita facendo clic sul pulsante "Download".
- Dopo il download cambiare la directory nel terminale nella directory dei download ed estrai il file tar Java nella cartella /opt con il seguente comando:
sudo tarxf
- Dopo il disimballaggio, cambia la directory nella cartella bin del programma IntelliJ IDEA:
cd /opt/
/bidone - Per avviare l'IDE, immettere il seguente comando:
- Seleziona “Non importare impostazioni” (“ Non importare le impostazioni") e fare clic su "OK". Successivamente, accettiamo l'informativa sulla privacy di Jetbrains facendo clic sul pulsante "Accetta".
- Ora veniamo al passaggio corsi di programmazione Java, puoi personalizzare l'interfaccia per te stesso. Crea un collegamento sul desktop per accedere rapidamente al programma. Successivamente, per avviare l'IDE, fare clic su "Avanti" in tutte le fasi successive.
- Il programma mostrerà la pagina di benvenuto. Fare clic su "Crea nuovo progetto" (" Crea un nuovo progetto»).
- Nella finestra successiva, seleziona "Java" nel riquadro di sinistra e assicurati che Java sia selezionato nella riga Project SDK. In caso contrario, seleziona la posizione in cui hai installato JDK: /usr/lib/jvm/java-8-oracle.
- Fare clic due volte su "Avanti" e creare un progetto.
- Nel passaggio successivo, inserisci un nome per il progetto e fai clic sul pulsante "Fine". Ora vedrai il tuo progetto nel pannello di sinistra. Se questo pannello non è visibile, vai al menu Viste > Finestre degli strumenti > Progetto.
- Aggiungi una nuova classe Java. Seleziona src nel riquadro sinistro con il clic destro e vai su Nuovo > Classe Java. Fornire un nome per la classe. Il nome della classe non deve contenere spazi.
- Scrivi il codice Java e salva il progetto.
- Per eseguire il programma, vai su Esegui > Esegui... Fai clic su HelloWorld ( Nome del progetto) - il programma compilerà il file e lo eseguirà.
Come eseguire Java su Windows (XP, 7, 8 e 10)
Per padroneggiare Java nozioni di base sulla programmazione e se esegui la piattaforma su Windows, avrai bisogno di un JAVA SE Development Kit (JDK) e di un IDE per lo sviluppo di progetti. Segui le istruzioni passo passo riportate di seguito:
Installazione di Java
- Vai a pagina di download Kit di sviluppo Java Standard Edition.
- Nella sezione Java SE Development Kit nella parte superiore della tabella, fare clic su "Accetta contratto di licenza" (" Accettare il contratto di licenza"). Clicca quindi sul collegamento Windows (x64) se hai un sistema operativo a 64 bit oppure Windows (x86) se hai un sistema operativo a 32 bit.
- Dopo il download, esegui il file di installazione e segui le istruzioni che appaiono sullo schermo. Fare clic su " Prossimo" Selezionare tutte le funzioni premendo " Questa funzionalità verrà installata sul disco rigido locale" e copiare il percorso di installazione ( è evidenziato in giallo) nel Blocco note, quindi fare di nuovo clic Prossimo».
- Durante il processo di installazione, ti verrà richiesto di installare JRE. Fare clic su "Avanti" e poi su "Fine" per completare l'installazione.
- Ora devi modificare la variabile PATH. Vai a Pannello di controllo > Sistema e sicurezza > Sistema. Nel riquadro di sinistra, seleziona " Parametri di sistema aggiuntivi".
- Fare clic su " Variabili ambientali". Nel capitolo " Variabili di sistema" Trova la variabile PATH e nella finestra successiva fai clic su "Modifica".
- Seleziona tutto il testo in " Valore variabile" e copiarlo in un file di testo separato. Ciò renderà più semplice la modifica e la verifica degli errori. Verifica se il testo copiato contiene la riga: C: ProgramData Oracle Java javapath; . Se sì, puoi passare al passaggio successivo. In caso contrario, incolla il percorso di installazione copiato in precedenza all'inizio della variabile e aggiungi bin alla fine della riga in questo modo: C : Program Files (x 86) Java jdk 1.8.0_112 bin ; Tieni presente che la tua versione JDK (jdk 1.8.0_112) potrebbe essere diversa. Copia il valore della variabile e incollalo nella casella PATH.
- Fare clic su " OK" per salvare le modifiche.
- Per verificare se la piattaforma è installata correttamente introduzione alla programmazione Java, aperto riga di comando digitando cmd nella barra di ricerca di Windows o tramite il comando “Esegui…” ( Finestre-R). Immettere il comando java -version. Se viene visualizzata la versione corrente di Java, l'installazione è riuscita. In caso contrario, verificare con Pagina di aiuto di Oracle.
Installazione di IntelliJ IDEA
- Vai a Pagina di download di IntelliJ IDEA.
- Scarica la Community Edition gratuita facendo clic su "Download".
- Una volta scaricato, esegui il file di installazione e segui le istruzioni che appaiono sullo schermo. Quindi crea un collegamento sul desktop per la versione a 64 bit e aggiungi associazioni con l'estensione .java. Fare clic su "Avanti" e continuare con l'installazione.
- Una volta installato, apri IntelliJ IDEA facendo clic sull'icona sul desktop.
- Selezionare "Non importare impostazioni" (" Non importare le impostazioni") e fare clic su "OK". Successivamente, accettiamo l'informativa sulla privacy di Jetbrains facendo clic su "Accetta".
- Ora puoi personalizzare l'interfaccia per te. Puoi anche saltare questo passaggio e lasciare tutto come predefinito facendo clic sul pulsante "Salta tutto e imposta valori predefiniti".
- Il programma mostrerà la pagina di benvenuto. Fare clic su "Crea nuovo progetto" (" Crea un nuovo progetto»).
- Nella finestra successiva, seleziona "Java" nel riquadro di sinistra e fai clic su "Nuovo" nella parte superiore della finestra del programma per selezionare JDK. Qui è necessario selezionare la posizione in cui è stato installato JDK durante l'installazione di Java, quindi fare clic su "Avanti".
- IntelliJ IDEA troverà il JDK e lo riconoscerà. Non è necessario selezionare altre opzioni, basta fare clic su "Avanti".
- Nella schermata successiva, inserisci il nome del progetto: HelloWorld e fai clic su Fine. Se il programma dice che la directory non esiste, fare clic su OK. Se non vedi il riquadro sinistro, vai su Visualizzazioni > Finestre degli strumenti > Progetto.
- Per impostare il nome della classe, seleziona la cartella src nel riquadro di sinistra. Fai clic destro su di esso, vai su Nuovo> Java e imposta il nome della classe. Il nome della classe non deve contenere spazi.
- Scrivi il codice e salva il progetto Java lezione di programmazione.
- Per eseguire il programma, vai al menu Esegui > Esegui... Fai clic su HelloWorld: il programma compilerà il file e lo eseguirà.
Il tuo primo programma Java
Per introdurre gli utenti a un nuovo linguaggio di programmazione, utilizzano il programma Hello World ("Hello, world!"). Questo è un semplice programma che visualizza le parole Hello, World! In questa sezione ti insegneremo come scrivere questo programma in Java utilizzando IntelliJ IDEA.
- Apri IntelliJ IDEA.
- Vai a File > Nuovo > Progetto… > Java ( nella barra di navigazione sinistra).
- Imposta il nome del progetto da corso di programmazione Ja va. Lo chiameremo Hello World e faremo clic su Fine.
- Ora dobbiamo creare una nuova classe Java.
- Seleziona la cartella src nel riquadro di sinistra, quindi vai su File > Nuovo > Classe Java e chiama la nuova classe HelloWorld.
- Copia il seguente codice nel file HelloWorld.java e salvalo.
public class HelloWorld ( public static void main(String args) ( // stampa "Ciao, mondo!" System.out.println("Ciao, mondo!"); ) )
- Fare clic sul pulsante di avvio ( Correre). Se tutto è in ordine, sullo schermo vedrai Hello, World!
Come imparare Java?
Documentazione Java ufficiale
Oracle, la società proprietaria di Java, pubblica tutorial di qualità. La documentazione ufficiale copre tutte le funzionalità Java e viene aggiornata regolarmente.
Nota: l'unico aspetto negativo è che la documentazione ufficiale Java non è sempre scritta nel linguaggio più semplice.
Se vuoi davvero imparare programmazione in Java, compra un buon libro. Naturalmente non si possono leggere 1000 pagine in un giorno. Ma un buon tutorial ti aiuterà a imparare a programmare.
Java: la guida completa (decima edizione)
Un ottimo libro per chi ha appena iniziato a imparare Java. L'ultima edizione include tutte le funzionalità della versione Java 8.
Il libro tratta tutto ciò che devi sapere sulla programmazione Java, inclusa la sintassi, le parole chiave e i fondamenti della programmazione, nonché la libreria API Java, le applet Java e altro ancora.
Filosofia Java (4a edizione)
Se stai passando a Java da un altro linguaggio di programmazione, questo libro fa per te. Se inizi da zero, è meglio leggerlo insieme agli altri.
Java 8. Guida tascabile: primo soccorso per programmatori Java
Questo libro contiene risposte chiare alle domande che sorgono quando si insegna J programmazione ava da zero. Copre brevemente tutti i concetti di base di Java (inclusi Giava9). Non vuoi sfogliare centinaia di pagine alla ricerca della riga giusta? Compra questo libro.
Invece di una conclusione
Se inizi a imparare Java, non puoi sbagliare: è un linguaggio di programmazione promettente, pieno di un'ampia varietà di possibilità.
Prima di iniziare a imparare Java, ecco alcuni suggerimenti:
- Non leggere articoli ed esempi educativi come un romanzo. L'unico modo per diventare un buon programmatore è scrivere molto codice.
- Se provieni da un altro linguaggio di programmazione (ad esempio C#), non è necessario scrivere codice in stile C#.
- Trova comunità Java online. Una volta che hai imparato a scrivere semplici programmi in Java, trova siti e forum popolari dedicati a Java. Prova a risolvere i problemi che hanno altri programmatori. Questo è un ottimo modo per espandere le tue conoscenze. Inoltre, se rimani bloccato, saprai dove chiedere aiuto.
Ci auguriamo che questo articolo ti incoraggi a imparare Java e ti aiuti a iniziare a lavorare sui tuoi primi programmi.
Questa pubblicazione è una traduzione dell’articolo “ Impara la programmazione Java. La guida definitiva", preparato dal simpatico team di progetto