Terminologia bàsica
Un cop vist el resultat, anem a aprendre alguna terminologia bàsica i
després tractarem d'entendre aquest programa.
- Programa - una seqüència d'instruccions
(anomenades sentències), que són executades una darrera l'altra d'una
manera predictible.
- Sentència - una única acció (com mostrar un text)
acabada amb un punt-i-coma ;
- Bloc - un grup de zero, una o més sentències tancades
dintre d'un parell de claus {...}.
Al programa Hello, world! n'hi han dos blocs.
- Mètode - una seqüència de sentències que representen
una acció de més alt nivell
- Sintaxi - un conjunt de regles que defineixen la forma
en que s'ha d'escriure un programa per a ser vàlid; Java té la seva pròpia
sintaxi que aprendrem
- Paraula clau - una paraula que té un significat especial
en el llenguatge de programació (public, class, i moltes altres).
- Identificadors o noms - una paraula que es refereix a alguna cosa en un programa
- Comentari - una explicació textual del que fa el codi. Els comentaris en
Java començen amb //
- Espai en blanc - els caracters que no són visibles (space, tab, newline, etc.)
El programa Hello World sota el microscopi
El programa Hello World conté els elements bàsics dels programes Java.
De moment, veurem solament els més importants.
1. La classe pública. És la unitat bàsica d'un programa. Tots els programes
Java han de tenir al menys una classe. La definició d'una classe consisteix amb la paraula-clau
class seguit del nom de la classe. Una classe pot tenir qualsevol nom, com App,
Main, Programa, però no pot començar amb un dígit. Un parell de claus {...}
envolten el cos de la classe.
public class Main {
// ...
}
El text que va després de // és solament un comentari, no forma part del programa.
Aprendrem més sobre comentaris més endavant.
2. El mètode main. Per a fer que un programa sigui executable, hem de posar
un mètode anomenat main dintre de la classe. És el punt d'entrada al programa Java.
Novament, les claus {...} envolten el cos del mètode, que conté sentències.
public static void main(String[] args) {
// les sentencies van aqui
}
Les paraules-clau public, static, i void les veurem més endavant, de
moment només les has de recordar. El nom d'aquest mètode (main) està predefinit i sempre
ha de ser el mateix. Les majúscules i minúscules importen; si anomenes el mètode Main,
MAIN o d'una altra manera, el programa no es podrà iniciar.
L'element String[] args representa una seqüència d'arguments que es passen al programa
des del món exterior. No et preocupis per ells ara mateix.
3. Imprimir "Hello, World!". El cos del mètode consisteix en sentències que
determinen què ha de fer el programa quan s'inicia. El nostre programa imprimeix
Hello, World! utilitzant aquesta sentència:
System.out.println("Hello, World!"); // les sentencies han d'acabar amb ;
Aquesta és una de les coses més importants que s'han de comprendre del programa
Hello World. Estem invocant un mètode especial println
per a mostrar un string seguit per una nova línia en pantalla. El text s'imprimeix sense les cometes que delimiten l'string.
Important!, "Hello, World!" no és una paraula-clau o un identificador; és
solament un text per a ser imprimit.
Paraules-clau
Com pots veure, inclús un simple prorgama Java consisteix en molts elements, incloent
paraules-clau que són parts del llenguatge. En total, Java té més de
50 paraules-clau que anirem aprenent durant el curs. Pots veure aquí la
llista completa de paraules-clau,
però no tractis de recordar-la en aquest moment.
Nota, main no està a la llista perquè no és una paraula clau.
Conclusió
Hem vist el programa més simple possible que es pot escriure en Java. Té una única classe
amb un únic mètode main. Tots els programes Java han de tenir un mètode main ja
que és el que s'executa en primer lloc quan s'inicia el programa.
Selecciona les afirmacions correctes sobre el següent programa:
public class HelloWorldProgram {
public static void main(String[] args) {
System.out.println("Hello, World!");
}
}
HelloWorldProgram és un nom
main és una paraula-clau
void és una sentència
class és una paraula-clau
Selecciona les afirmacions correctes
El mètode main pot tenir un altre nom (start, run, program)
Una classe que contingui el mètode main pot tenir qualsevol nom vàlid (Main, App, Demo, etc.)
Per a mostrar un string li'l passem a System.out.println(...)
El mètode main es pot posar a fora de la classe
Ara que has aprés l'anatomia bàsica d'un programa Java, prova a fer aquest exercici:
Cita Einstein
Imprimir dades
Durant aquest curs realitzarem molt sovint programes que imprimeixen dades
a la pantalla. Anem a aprendre com fer-ho utilitzant la forma estàndard en Java.
Mostrar text amb println() i print()
El mètode System.out.println() mostra l'string que se li passa,
seguit d'una nova línia a la pantalla (print-line). Per exemple, el
següent fragment de codi imprimeix 4 línies a la pantalla
System.out.println("I ");
System.out.println("know ");
System.out.println("Java ");
System.out.println("well.");
La sortida:
I
know
Java
well.
Tots els strings s'imprimeixen tal qual, sense les cometes dobles.
El mètode et permet imprimir una línia buida quan no li passes cap string:
System.out.println("Java is a popular programming language.");
System.out.println(); // imprimeix una línia en blanc
System.out.println("It is used all over the world!");
La sortida:
Java is a popular programming language.
It is used all over the world!
-
El mètode System.out.print() mostra el valor que se li passa i
posa el cursor (la posició on es mostra un valor) a continuació. Per exemple, el
següent codi mostra tots els strings a la mateixa línia.
System.out.print("I ");
System.out.print("know ");
System.out.print("Java ");
System.out.print("well.");
La sortida:
I know Java well.
Imprimir números i caracters
Ambdós mètodes, print i println permeten imprimir no solament
strings, sinò també caracters, números i booleans.
System.out.print(108); // imprimir un enter
System.out.print('c'); // imprimir un caràcter que representa una lletra
System.out.print("Q"); // imprimir un string
System.out.println('3'); // imprimir un caracter que representa un dígit
System.out.print(22);
System.out.print('E');
System.out.print(8);
System.out.println('1');
Mostrarà:
108cQ3
22E81
Com passa amb els strings, no s'imprimeixen les cometes dels caracters.
Quan imprimim un número decimal, no s'imprimeix la f del final:
System.out.print(1.75f);
1.75
Els literals booleans s'imprimeixen tal qual:
System.out.println(true);
System.out.println(false);
true
false
Què imprimirà el següent codi?
System.out.print("1");
System.out.print("2");
System.out.println("3");
System.out.println();
System.out.println("4");
1234
123
4
12
3
4
123
4
Què imprimirà el següent codi?
System.out.print("**");
System.out.println();
System.out.println("**");
System.out.print("**");
****
**
**
***
*
**
**
**
**
**
**
**
**
**
Resol aquests problemes:
De 0 a 4
Jota amb asteriscs
Bonus track:
Hello World ASCII-art