Java Language Creare il tuo primo programma Java

Esempio

Crea un nuovo file nell'editor di testo o IDE denominato HelloWorld.java . Quindi incolla questo blocco di codice nel file e salva:

public class HelloWorld {
    public static void main(String[] args) {
        System.out.println("Hello, World!");
    }
}

Esegui live su Ideone

Nota: affinché Java riconosca questo come una public class (e non genera un errore di compilazione ), il nome del file deve essere uguale al nome della classe ( HelloWorld in questo esempio) con un'estensione .java . Dovrebbe esserci anche un modificatore di accesso public prima di esso.

Le convenzioni di denominazione raccomandano che le classi Java inizino con un carattere maiuscolo e siano in formato cammello (in cui la prima lettera di ogni parola è in maiuscolo). Le convenzioni raccomandano rispetto ai caratteri di sottolineatura ( _ ) e ai simboli del dollaro ( $ ).

Per compilare, apri una finestra di terminale e vai alla directory di HelloWorld.java :

cd /path/to/containing/folder/

Nota: cd è il comando del terminale per cambiare directory.

Immettere javac seguito dal nome e dall'estensione del file come segue:

$ javac HelloWorld.java

È abbastanza comune ottenere l'errore 'javac' is not recognized as an internal or external command, operable program or batch file. anche quando hai installato JDK e sei in grado di eseguire il programma da IDE ex. eclipse ecc. Poiché il percorso non viene aggiunto all'ambiente per impostazione predefinita.

Nel caso in cui si ottenga questo su Windows, per risolverlo, provare prima a navigare sul percorso di javac.exe , è molto probabilmente in C:\Program Files\Java\jdk(version number)\bin . Quindi prova a eseguirlo con sotto.

$ C:\Program Files\Java\jdk(version number)\bin\javac HelloWorld.java

In precedenza, quando stavamo chiamando javac , era lo stesso del comando precedente. Solo in quel caso il tuo OS sapeva dove risiedeva javac . Quindi diciamolo ora, in questo modo non è necessario digitare l'intero percorso ogni volta. Dovremmo aggiungere questo al nostro PATH

Per modificare la variabile di ambiente PATH in Windows XP / Vista / 7/8/10:

  • Pannello di controllo ⇒ Sistema ⇒ Impostazioni di sistema avanzate
  • Passare alla scheda "Avanzate" ⇒ Variabili d'ambiente
  • In "Variabili di sistema", scorrere verso il basso per selezionare "PERCORSO" ⇒ Modifica

Non puoi annullare questo, quindi fai attenzione. Prima copia il tuo percorso esistente sul blocco note. Quindi, per ottenere l'esatto PERCORSO sul tuo javac cerca manualmente nella cartella in cui risiede javac e fai clic sulla barra degli indirizzi e poi copialo. Dovrebbe sembrare qualcosa come c:\Program Files\Java\jdk1.8.0_xx\bin

Nel campo "Valore variabile", incolla questo IN FRONTE di tutte le directory esistenti, seguito da un punto e virgola (;). NON CANCELLARE le voci esistenti.

Variable name  : PATH
Variable value : c:\Program Files\Java\jdk1.8.0_xx\bin;[Existing Entries...]

Ora questo dovrebbe risolversi.

Per i sistemi basati su Linux, prova qui .

Nota: il comando javac richiama il compilatore Java.

Il compilatore genererà quindi un file bytecode chiamato HelloWorld.class che può essere eseguito nella Java Virtual Machine (JVM) . Il compilatore del linguaggio di programmazione Java, javac , legge i file sorgente scritti nel linguaggio di programmazione Java e li compila in file di classe bytecode . Facoltativamente, il compilatore può anche elaborare annotazioni trovate nei file di origine e di classe utilizzando l'API Pluggable Annotation Processing. Il compilatore è uno strumento da riga di comando, ma può anche essere richiamato utilizzando l'API Java Compiler.

Per eseguire il tuo programma, inserisci java seguito dal nome della classe che contiene il metodo main ( HelloWorld nel nostro esempio). Nota come viene omessa la .class .

$ java HelloWorld

Nota: il comando java esegue un'applicazione Java.

Questo verrà prodotto nella tua console:

Ciao mondo!

Hai codificato e costruito con successo il tuo primo programma Java!

Nota: affinché i comandi Java ( java , javac , ecc.) javac riconosciuti, è necessario accertarsi che:

Dovrai utilizzare un compilatore ( javac ) e un executor ( java ) fornito da JVM. Per scoprire quali versioni sono state installate, immettere java -version e javac -version nella riga di comando. Il numero di versione del programma verrà stampato nel terminale (ad es. 1.8.0_73 ).


Uno sguardo più da vicino al programma Hello World

Il programma "Hello World" contiene un singolo file, che consiste in una definizione di classe HelloWorld , un metodo main e un'istruzione all'interno del metodo main .

public class HelloWorld {

La class parola chiave inizia la definizione di classe per una classe denominata HelloWorld . Ogni applicazione Java contiene almeno una definizione di classe ( Ulteriori informazioni sulle classi ).

    public static void main(String[] args)  {

Questo è un metodo del punto di ingresso (definito dal nome e dalla firma del public static void main(String[]) ) da cui JVM può eseguire il programma. Ogni programma Java dovrebbe averne uno. È:

  • public : il che significa che il metodo può essere chiamato da qualsiasi parte anche al di fuori del programma. Vedi Visibilità per maggiori informazioni su questo.
  • static : significa che esiste e può essere eseguito da solo (a livello di classe senza creare un oggetto).
  • void : il significato non restituisce alcun valore. Nota: questo è diverso da C e C ++ in cui è previsto un codice di ritorno come int (il modo in cui Java è System.exit() ).

Questo metodo principale accetta:

Quasi tutto ciò è richiesto per un metodo di punto di ingresso Java.

Parti non richieste:

  • Il nome args è un nome variabile, quindi può essere chiamato qualsiasi cosa tu voglia, anche se in genere è chiamato args .
  • Se il suo tipo di parametro è un array ( String[] args ) o Varargs ( String... args ) non ha importanza perché gli array possono essere passati in vararg.

Nota: una singola applicazione può avere più classi contenenti un metodo del punto di ingresso ( main ). Il punto di ingresso dell'applicazione è determinato dal nome della classe passato come argomento al comando java .

All'interno del metodo principale, vediamo la seguente dichiarazione:

        System.out.println("Hello, World!");

Analizziamo questa affermazione elemento per elemento:

Elemento Scopo
System questo denota che l'espressione successiva invocherà la classe System , dal pacchetto java.lang .
. questo è un "punto operatore". Gli operatori di punti forniscono l'accesso a membri di classi 1 ; cioè i suoi campi (variabili) e i suoi metodi. In questo caso, questo operatore punto consente di fare riferimento al out campo statico all'interno del System di classe.
out questo è il nome del campo statico di tipo PrintStream all'interno della classe System contenente la funzionalità di output standard.
. questo è un altro operatore punto. Questo operatore punto fornisce accesso al metodo println all'interno della variabile out .
println questo è il nome di un metodo all'interno della classe PrintStream. Questo metodo in particolare stampa il contenuto dei parametri nella console e inserisce una nuova riga dopo.
( questa parentesi indica che si sta accedendo a un metodo (e non a un campo) e inizia i parametri passati nel metodo println .
"Hello, World!" questo è il letterale String che viene passato come parametro nel metodo println . Le doppie virgolette su ciascuna estremità delimitano il testo come una stringa.
) questa parentesi significa la chiusura dei parametri passati nel metodo println .
; questo punto e virgola segna la fine della dichiarazione.

Nota: ogni istruzione in Java deve terminare con un punto e virgola ( ; ).

Il corpo del metodo e il corpo della classe vengono quindi chiusi.

    }  // end of main function scope
}      // end of class HelloWorld scope 

Ecco un altro esempio che dimostra il paradigma OO. Modelliamo una squadra di calcio con un membro (sì, uno!). Ce ne possono essere di più, ma ne parleremo quando arriveremo agli array.

Per prima cosa, definiamo la nostra classe Team :

public class Team {
    Member member;
    public Team(Member member) {  // who is in this Team?
        this.member = member;  //  one 'member' is in this Team!
    }
}

Ora, definiamo la nostra classe Member :

class Member {
    private String name;
    private String type;
    private int level; // note the data type here
    private int rank; // note the data type here as well

    public Member(String name, String type, int level, int rank) {
        this.name = name; 
        this.type = type;
        this.level = level;
        this.rank = rank;
    }
}

Perché usiamo private qui? Beh, se qualcuno volesse sapere il tuo nome, dovrebbe chiederti direttamente, invece di prendere in tasca e tirare fuori la tua tessera di previdenza sociale. Questo private fa qualcosa del genere: impedisce alle entità esterne di accedere alle tue variabili. È possibile restituire solo membri private tramite le funzioni getter (mostrate sotto).

Dopo aver messo tutto insieme e aggiunto i getter e il metodo principale come discusso in precedenza, abbiamo:

public class Team {
    Member member;
    public Team(Member member) {  
        this.member = member;  
    }

    // here's our main method
    public static void main(String[] args) {
       Member myMember = new Member("Aurieel", "light", 10, 1); 
       Team myTeam = new Team(myMember); 
       System.out.println(myTeam.member.getName());
       System.out.println(myTeam.member.getType());
       System.out.println(myTeam.member.getLevel());
       System.out.println(myTeam.member.getRank());
    }
}

class Member {
    private String name;
    private String type;
    private int level;
    private int rank;

    public Member(String name, String type, int level, int rank) {
        this.name = name; 
        this.type = type;
        this.level = level;
        this.rank = rank;
    }
    
    /* let's define our getter functions here */
    public String getName() { // what is your name?
        return this.name; // my name is ...
    }
   
    public String getType() { // what is your type?
        return this.type; // my type is ...
    }
    
    public int getLevel() { // what is your level?
        return this.level; // my level is ...
    }
    
    public int getRank() { // what is your rank?
        return this.rank; // my rank is
    }
}

Produzione:

Aurieel
light
10
1

Corri su ideone

Ancora una volta, il metodo main all'interno della classe Test è il punto di ingresso al nostro programma. Senza il metodo main , non possiamo dire a Java Virtual Machine (JVM) da dove iniziare l'esecuzione del programma.


1 - Poiché la classe HelloWorld ha una scarsa relazione con la classe System , può solo accedere public dati public .