Literals
Independentment de la seva complexitat, un programa
sempre realitza operacions sobre números, texts i altres valors.
Aquests valors són anomenats literals.
Hi ha molts tipus de literals en Java, però pel moment ens
centrarem només en alguns d'ells: aquells que ens envolten
tot el temps en el dia a dia.
Números
Enters
Aquests nombres s'utilitzen per a comptar coses al món real. I també,
els utilitzarem sovint en Java.
Aquí tens exemples de literals enters vàlids separats
per comes: 0, 1, 2, 10, 11, 100.
Si un valor enter conté molts dígits, podem afegir "guions baixos"
per a dividir el nombre en blocs i augmentar la seva
legibilitat: 1_000_000. És més legible que el mateix
valor escrit 1000000.
Decimals
Els nombres decimals expressen una fracció d'un nombre enter. S'utilitzen
en les medicions: l'alçada d'una persona, la temperatura, els diners.
En llenguatge Java expressarem els nombres decimals utilitzant el
punt . i afegirem una f al final. Per exemple:
3.14f, 0.123f, 100.5f
Si la part decimal d'un número és .0 no és necessari posar-ho.
És a dir, és el mateix 100.0f que 100f.
En els decimals també podem utilitzar guions baixos _ per a separar dígits.
Per exemple: 10_000_000.75f.
Java també permet literals decimals sense la terminació f,
però en aquest curs sempre els utilitzarem amb la f al final.
Hi ha altres formes per a representar literals: hexadecimals, binaris,
notació científica, unicode, seqüències d'escapament, ...
Podeu trobar més info al tutorial de Java d'Oracle.
Text
Caracters
Un simple caracter pot representar un dígit, una lletra o un altre símbol.
Per a escriure un caracter, utilitzem cometes simples així:
'A', 'B', 'C', 'z', '0', '1', '9'.
Els literals caracter poden representar símbols d'un alfabet, dígits de '0'
a '9', espais en blanc ' ', o altres símbols '$'.
No s'han de confondre caracters que representen números (e.g. '9'),
amb els propis números (e.g. 9).
Un caracter no pot incloure més d'un dígit, lletra o símbol perquè
només en pot representar un. Per exemple, 'abc' o '543',
són incorrectes perquè contenen massa caracters.
Strings
Un string (cadena) és una seqüència de varis caracters.
Els Strings representen un text.
Per a escriure un string utilitzarem cometes dobles en lloc de simples.
Aquí hi ha alguns exemples vàlids: "text", "Vull aprendre Java",
"123456", "email123@mail.com". Un string que conté només
un caracter com "A" també és vàlid, per no s'ha de confondre amb
el caracter 'A'.
Pots veure que els strings poden incloure lletres, dígits, espais, i altres caracters.
Booleans
Els valors booleans expressen la veracitat o falsedat d'una afirmació.
En Java hi ha dos valors especials, true i false, que
permeten expressar els dos valors booleans.
S'escriuen en mínuscules i sense cometes.
Recorda! No s'han de confondre aquests literals:
- 123 és un número enter, "123" és un String;
- 'A' és un caracter, "A" és un String;
- '1' és un caracter, 1 és un número enter.
- true és un booleà, "true" és un String.
Emparella els tipus de literals
String "4631###0207"
Enter 100_000_000
Caracter 'H'
Booleà false
Decimal 1.75f
Literal invàlid 'text'
Troba el literal invàlid
"10000000"
'10000000'
10_000_000
10000000
10000000f
Selecciona els literals que NO són strings
7000
"7000"
true
'3'
"false"
"3"
'a'
Els caracters literals s'escriuen com
'A', 'B', 'C',...
A, B, C, ...
{A}, {B}, {C}, ...
"A", "B", "C", ...
Selecciona els literals string vàlids
443
'q'
"q"
'5'
"text"
"2312"
true
Selecciona les sentències que NO són vàlides
"123456" és un número
"1" és un string
'8' és un caracter
1 és un número
True és un booleà
1f és un enter
Quin literal és adequat per a representar una adreça postal?
un caracteral literal
un enter literal
un string literal
un decimal literal
un booleà literal
Selecciona els literals numèrics (enters i decimals)
"500f"
'8'
"800_000"
100_000_000
0
0.0f
3_0_0f
El programa Hello World
Tornem a veure el programa Hello world:
public class Main {
public static void main(String[] args) {
System.out.println("Hello, World!");
}
}
Quan executem aquest programa, veurem:
Hello, world!
Escriu i executa el programa Hello World utilitzant IntelliJ.
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