Capitolo 1
Introduzione
Cay S. Horstmann
Concetti di informatica e fondamenti di Java
Obiettivi del capitolo
•
Comprendere la distinzione fra linguaggi macchina
e linguaggi di programmazione di alto livello
•
Prendere confidenza con l’ambiente di programmazione
e con il compilatore
•
Compilare ed eseguire il primo programma Java
•
Riconoscere gli errori logici e di sintassi
Codice macchina
•
Java Virtual Machine (JVM) – una tipica sequenza di
istruzioni macchina:
1.
2.
3.
ƒ
Carica il contenuto della posizione di memoria 40.
Carica il valore 100.
Se il primo valore è maggiore del secondo, prosegui
con l’istruzione contenuta nella posizione di memoria 240.
Le istruzioni macchina sono codificate sotto forma
di numeri:
21 40 16 100 163 240
ƒ
Il compilatore traduce la descrizione di alto livello
nelle istruzioni macchina
Self Check
6. What is the code for the Java virtual machine
instruction "Load the contents of memory location
100"?
7. Does a person who uses a computer for office work
ever run a compiler?
6.
21 100
7.
No–a compiler is intended for programmers,
to translate high-level programming
instructions into machine code.
Il linguaggio di programmazione Java
• Semplice
• Sicuro
• Indipendente dalla piattaforma
• Ha una ricca libreria
• Pensato per internet
Figura 7:
Un applet
in una pagina
Web
Self Check
8. What are the two most important benefits of the Java
language?
9. How long does it take to learn the entire Java library?
8. Safety and portability.
9. No one person can learn the entire library–it is too
large.
Prendere confidenza con il computer
• Log in
• Individuare il compilatore Java
• Capire file e folder
ƒ I programmi sono memorizzati in file
ƒ File: un insieme di informazioni memorizzate insieme; un file
Java è un contenitore di istruzioni Java.
ƒ I file hanno un nome e le regole per i nomi validi sono diverse
da un sistema all’altro.
ƒ I file sono conservati in cartelle o directory. Si tratta di contenitori
di file, che si possono annidare, ovvero inserire uno dentro
l’altro.
Continua…
Prendere confidenza con il computer
• Scrivere un programma semplice (later)
• Salvare il proprio lavoro
ƒ Sviluppare una strategia di salvataggio del proprio lavoro, fare
copie di backup.
Figura 8:
Una finestra di comando
Figure 9:
Un ambiente di sviluppo integrato
Figura 10:
Cartelle annidate
Self Check
10. How are programming projects stored on a computer?
11. What do you do to protect yourself from data loss
when you work on programming projects?
10. Programs are stored in files, and files are stored in
folders or directories.
11. You back up your files and folders.
File HelloTester.java
1: public class HelloTester
2: {
3:
public static void main(String[] args)
4:
{
5:
// visualizza un messaggio di saluto sulla finestra di console
6:
7:
System.out.println("Hello, World!");
8:
}
9: }
Visualizza
Hello, World!
Figura 11
Esecuzione del programma HelloTester in una finestra di comando
Figura 12
Esecuzione del programma HelloTester in un ambiente di sviluppo integrato
Un semplice programma
•
•
•
•
public class NomeClasse
public static void main(String[] args)
// comment
Method call
Figura 13:
Invocazione
di un metodo
System Class
System.out Oggetto
println Metodo
Sintassi di Java
1.1: Invocazione di metodo
object.methodName(parameters)
Esempio:
System.out.println("Hello, Dave!");
Obiettivo:
Invocare il metodo di un oggetto e fornire eventuali parametri aggiuntivi.
Self Check
12.
How would you modify the HelloTester program to print the words
"Hello," and "World!" on two lines?
13.
Would the program continue to work if you omitted the line starting with
//?
14.
What does the following set of statements print?
System.out.print("My lucky number is");
System.out.println(3 + 4 + 5);
12.
System.out.println("Hello,");
System.out.println("World");
13.
Yes–the line starting with // is a comment, intended for human readers.
The compiler ignores comments.
14.
The printout is My lucky number is12.
It would be a good idea to add a space after the is.
Errori
• Errore di sintassi
System.ouch.print(". . .");
System.out.print("Hello);
• Identificato dal compilatore
• Errore di escuzione o errore logico
System.out.print("Hell");
• Identificato tramite collaudo
Self Check
15.
Suppose you omit the // characters from the HelloTester.java
program but not the remainder of the comment. Will you get a
compile-time error or a run-time error?
16.
How can you find logic errors in a program?
15.
A compile-time error. The compiler will not know what to do with
the word display.
16.
You need to run the program and observe its behavior.
Il processo di compilazione
Figura 14:
Dal codice sorgente al programma in esecuzione
Figura 15
Il ciclo modifica-compila-collaudara
Figure 15:
The Edit—Compile—Loop Test
Self Check
17.
What do you expect to see when you load a class file into your
text editor?
18.
Why can't you test a program for run-time errors when it has
compiler errors?
17.
A sequence of random characters, some funny-looking. Class
files contain virtual machine instructions that are encoded as
binary numbers.
18.
When a program has compiler errors, no class file is produced,
and there is nothing to run.