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.