Laboratorio Primo Impatto

Documenti analoghi
Cosa fare prima di iniziare. Laboratorio Primo Impatto. Hello World. L editor. Compilazione da riga di comando. Compilazione da riga di comando

Cosa fare prima di iniziare. Laboratorio Primo Impatto. Hello World. L editor

public class Hello { public static void main(string[] args){ // visualizza un messaggio sulla finestra di // console System.out.

Laboratorio di Programmazione Laurea in Bioinformatica

Eclipse e SDK. Capiamo che sistema operativo abbiamo

INTRODUZIONE ALLA PROGRAMMAZIONE AD ALTO LIVELLO IL LINGUAGGIO JAVA. Struttura di un programma Java

Capitolo 1. Introduzione. Cay S. Horstmann Concetti di informatica e fondamenti di Java

Corso sul linguaggio Java

Modulo 2: Strutture fondamentali della programmazione Java

L oggetto creato. Creazione di Oggetti. Rectangle: il concetto 10. Costruzione. Lo spazio di memoria del linguaggio Java. Rectangle: l oggetto

Fondamenti di informatica T-1 (A K) Esercitazione 2 Basi del linguaggio Java

Primi programmi in Java. Lezione II

Usare e costruire oggetti. Concetti Fondamentali. Interfaccia Pubblica di una. Application Program Interface

Le classi in java. Un semplice programma java, formato da una sola classe, assume la seguente struttura:

Introduzione alla programmazione

Introduzione Programmazione Java

Installazione Java Standard Edition (SDK)

INTRODUZIONE ALLA PROGRAMMAZIONE AD ALTO LIVELLO IL LINGUAGGIO JAVA. Fondamenti di Informatica - D. Talia - UNICAL 1. Fondamenti di Informatica

INTRODUZIONE ALLA PROGRAMMAZIONE AD ALTO LIVELLO IL LINGUAGGIO JAVA. Fondamenti di Informatica - Programma

Corso di Laurea Ingegneria Informatica Laboratorio di Informatica

Scrivere un programma in Java

Programmazione in Java e gestione della grafica (I modulo) Lezione 2: Prime nozioni di Java

Fondamenti di informatica T-1 (A K) Esercitazione 6: Eclipse

Guida all uso dell ambiente di sviluppo 1 integrato o IDE JCreator LE

Strumenti Java. Fondamenti di informatica L-B A.A Alessandra Toninelli

Installazione Java Standard Edition (SDK)

Fondamenti di Informatica 1. Prof. B.Buttarazzi A.A. 2010/2011

Programmazione I - corso B a.a prof. Viviana Bono

Introduzione all uso degli oggetti in Java (parte I) Walter Didimo

2 - Introduzione al linguaggio Java

Le basi del linguaggio Java

Installazione di Java

Programmazione a Oggetti e JAVA. Prof. B.Buttarazzi A.A. 2012/2013

C: primi elementi. Lezione 4

Fondamenti di Informatica T-1. Guida al LAB4 Introduzione a JDK e Eclipse

Programmazione II. Lezione 6. Daniele Sgandurra 5/11/2010.

Linguaggi di Programmazione

Il linguaggio C. Prof. E. Occhiuto INFORMATICA 242AA a.a. 2010/11 pag. 1

3) Descrivere l architettura di un elaboratore tramite astrazione a livelli

Laboratorio di Programmazione 1. Docente: dr. Damiano Macedonio Lezione 4 24/10/2013

Università degli Studi di Padova

Introduzione a Java. Riferimenti

Programmare in Java. Olga Scotti

Corso di Laurea Ingegneria Civile Fondamenti di Informatica. Dispensa 07. Oggetti e Java. Marzo Programmazione Java 1

Fondamenti di Informatica

Capitolo 5. Array e collezioni. c 2005 Pearson Education Italia Capitolo 5-1 / 61

Appunti di Informatica 1

Esonero di Informatica I. Ingegneria Medica

Introduzione al linguaggio C

Linguaggio C Struttura dei programmi

Corso di Laurea in Bioinformatica Dipartimento di Informatica - Università di Verona

Classpath e Esercizi su RMI

Unità F1. Obiettivi. Il linguaggio C. Il linguaggio C++ Linguaggio C. Pseudolinguaggio. Primi programmi

Introduzione a. Funzioni di Ingresso e Uscita. Compilazione

Programmazione A.A Costrutti di base. ( Lezione XII, parte I ) Gestione dell input. Prof. Giovanni Gallo Dr.

Input. Il tipo char Alcune modalità di acquisizione di input. Laboratorio di Programmazione - Luca Tesei

I Metodi. Fondamenti di Informatica A-K

A. Ferrari. informatica. Java basi del linguaggio. Alberto Ferrari Informatica

NOTE SULL USO DI ECLIPSE per la compilazione di programmi c

Impariamo a programmare in. Lezione 4

Autore: Prof. Agostino Sorbara ITIS "M. M. Milano" Polistena (RC)

Struttura di un programma Java

IL LINGUAGGIO JAVA. Introduzione alla sintassi di Java La sintassi formalizza le regole sintattiche per scrivere frasi ben formate

Introduzione alla programmazione Java. Dott. Ing. M. Banci, PhD

Programmazione Orientata agli Oggetti in Linguaggio Java

Primo programma in C

Fondamenti di informatica T-1 (A K) Esercitazione 2: Linguaggio Java, basi e controllo del flusso

Metodologie di Programmazione A.A Stefano Guerrini. Febbraio 2009

Sintassi Java PA RTE 1 FONDAMEN TI DI I N FORMAT ICA PER IL CORSO DI LAUREA I N M AT EMAT ICA PA O L A L E C C A

Definiamo la prima classe vera. Concetti fondamentali 2. Il corpo del metodo. Definizione di un metodo

Roadmap. Questioni di stile. 0. Primi passi con Java 1. Buone abitudini

Operazioni numeriche - Input

Matlab: Script e Funzioni

OO puro. Primi concetti di Java. Tipi primitivi. Ogni cosa è un oggetto. Java è object-oriented puro Non come il C+ + (OO ibrido) Lorenzo Bettini

Introduzione a Java. Prof. Francesco Accarino IIS Altiero Spinelli Via Leopardi132 Sesto San Giovanni

Introduzione a Ingresso e Uscita. Scrittura di un programma C++ Compilazione Esecuzione

Java: Primo Approccio. Walter Cazzola. Lo Sviluppo SW. Codifica Compilazione Esecuzione. Librerie e Packages.

Linguaggio C: introduzione

Metodi e variabili istanza

Concetti introduttivi

Variabili e tipi di. Alessandra Giordani Lunedì 11 aprile

Le basi del linguaggio Java

Unità B1 Programmazione base

IL LINGUAGGIO JAVA. Input, Tipi Elementari e Istruzione Condizionale. Primo esempio di un programma Java

Corso di Laurea Ingegneria Civile Fondamenti di Informatica. Dispensa 11. Leggibilità. Aprile Leggibilita 1

IL LINGUAGGIO JAVA. Input, Tipi Elementari e Istruzione Condizionale. Fondamenti di Informatica - D. Talia - UNICAL 1. Fondamenti di Informatica

STORIA E CARATTERISTICHE

Scopo del progetto è la costruzione di un compilatore per il linguaggio descritto qui di seguito.

Scelte. Costrutto condizionale. Il costrutto if. Il costrutto if. Rappresentazione con diagramma a blocchi. Il costrutto if

Java Gli array. Array

Primi passi Output formattato Le quattro operazioni. Programmazione 1. Lezione 2 Parte 2. Vincenzo Marra.

IL LINGUAGGIO JAVA Input, Tipi Elementari e Istruzione Condizionale

Concetti introduttivi

Debug di un programma

Transcript:

Made with OpenOffice.org 1 Laboratorio Primo Impatto Scrivere un semplice programma Compilare Avviare la JVM Convenzioni sul codice Classi, oggetti, metodi Errori di compilazione

Made with OpenOffice.org 2 Cosa fare prima di iniziare Effettuare il login e/o accendere il computer :-D Localizzare la directory (cartella) in cui la J2SE SDK è installata Localizzare l editor con cui si vogliono editare i programmi (va bene un qualsiasi editor per file di testo) Aprire l editor per cominciare a scrivere il primo programma Java

Made with OpenOffice.org 3 L editor Se si è scelto di usare un editor evoluto e specializzato per Java (emacs, Jedit, Ginipad, NetBeans, BlueJ, eclipse,...) le operazioni di compilazione, correzione ed esecuzione dei programmi sono facilitate I programmi possono essere formattati automaticamente Le parole chiave e le componenti sintattiche sono evidenziate con colori diversi Familiarizzare bene con l editor scelto e personalizzarlo (si legga l help in linea) All'inizio si consiglia di usare BlueJ

Made with OpenOffice.org 4 Hello World public class Hello { public static void main(string[] args){ // visualizza un messaggio sulla finestra di // console System.out.println( Hello, World! ); Salvare in un file di nome Hello.java Compilare Eseguire

Made with OpenOffice.org 5 Compilazione da riga di comando Per compilare e mandare in esecuzione un programma Java occorre una finestra di console/shell Da Windows: Prompt dei comandi (o prompt di MSDOS) Da Linux: finestra di shell (xterm con bash, csh, tcsh,...) La variabile di ambiente PATH deve contenere il path alla cartella di installazione della SDK, sottocartella bin (es. PATH =... :C:\ProgramFiles\j2sdk\j2sdk1.5\bin\) Leggere l'help del sistema per modificare PATH

Made with OpenOffice.org 6 Compilazione da riga di comando C:\Java> javac Hello.java C:\Java> Il compilatore (il programma javac.exe nel caso di Windows) è rimasto silenzioso e quindi la compilazione è andata a buon fine. Nella stessa directory (cartella) del file sorgente (.java) apparirà il file compilato (.class) Il file compilato ha sempre lo stesso nome del sorgente, ma con estensione diversa (Hello.class) Il comando javac fa partire il compilatore Java sui file.java indicati di seguito, separati da spazi, nella linea di comando (in questo caso solo uno)

Made with OpenOffice.org 7 Avvio della Java Virtual Machine C:\Java> java Hello Hello, World! C:\Java> Il comando java (java.exe ( in Windows) fa partire la JVM ed esegue il file bytecode Hello.class Non bisogna specificare.class, ma solo il nome della classe: Hello Il programma stampa la riga Hello, World! e termina

Made with OpenOffice.org 8 Guardiamo il programma Definisce una classe pubblica di nome Hello public class Hello { public static void main(string[] args){ // visualizza un messaggio sulla finestra di console System.out.println( Hello, World! ); Ogni file sorgente deve contentere una classe dichiarata public e si deve chiamare obbligatoriamente con il nome di questa classe e l'estensione.java (in questo caso Hello.java)

Made with OpenOffice.org 9 Nomi e lettere maiuscole/minuscole I nomi di classe, per convenzione: Devono sempre iniziare con lettera maiuscola Non devono contenere spazi Se contengono più parole, la nuova parola comincia con lettera maiuscola. Es: HelloWorld, InsiemeDiCaratteri, ContoPersonalizzato Java è case sensitive : le lettere maiuscole e minuscole sono considerate differenti: Helloworld HelloWorld

Made with OpenOffice.org 10 Ancora convenzioni Le parole riservate Java (class ( class, public, static, int,,...) sono in lettere minuscole I nomi di altre entità diverse dalle classi (variabili, nomi di metodi, campi) devono iniziare per lettera minuscola Se sono formati da più parole, queste devono essere attaccate come per le classi Esempi: x, println, indicediascolto, sommadariportare,,...

Made with OpenOffice.org 11 Indentazione Le parole chiave e gli identificatori sono separati da spazi bianchi public class Hello { public static void main(string[] args){ // visualizza un messaggio sulla finestra di // console System.out.println( Hello, World! ); Spazi bianchi sono lo spazio, il tab, il newline n spazi bianchi equivalgono a uno

Made with OpenOffice.org 12 Indentazione Il compilatore non bada alla formattazione del testo del programma Il programmatore invece viene facilitato nella lettura/scrittura/modifica se il testo evidenzia la struttura logica del programma E importante fissare e seguire delle regole di indentazione (l editor le suggerisce) In molti editor è possibile far indentare il sorgente automaticamente Comunque il compilatore compila anche: Il compilatore non bada alla formattazione del testo

Come NON va indentato un programma Made with OpenOffice.org 13 public class Hello { public static void main(string[] args){ // visualizza un messaggio sulla finestra // di console System.out.println ( Hello, World! ); Il compilatore lo compila lo stesso, ma un codice scritto in questo modo risulta altamente illeggibile

Made with OpenOffice.org 14 class?? Una applicazione Java è, in generale, la definizione di un insieme di classi in diversi file con l'estensione.java Una classe si dichiara con la parola riservata class seguita dal nome della classe e da un blocco (tutto ciò che appare tra due parentesi graffe) Opzionalmente, prima della parola class è possibile inserire la parola public che indica che la classe è utilizzabile da tutti (chiariremo meglio in seguito)

Made with OpenOffice.org 15 Classi Una classe è, idealmente, la collezione di tutti i possibili oggetti che hanno le caratteristiche da lei definite Una classe è la definizione di un tipo a cui tutti gli oggetti della classe sono uniformati Una classe è una mera definizione La JVM utilizza questa definizione per creare e usare oggetti di quella classe Ogni oggetto della classe è diverso dagli altri oggetti della stessa classe, ma tutti hanno la stessa struttura (o tipo)

Made with OpenOffice.org 16 Definizione di una classe public class NomeClasse {... All interno del blocco possono essere definiti Variabili istanza (dette anche campi) Metodi

Made with OpenOffice.org 17 Metodi In questa particolare classe non ci sono variabili istanza Definisce un metodo di nome main public class Hello { public static void main(string[] args){ // visualizza un messaggio sulla finestra di // console System.out.println( Hello, World! ); Corpo del metodo: un altro blocco

Made with OpenOffice.org 18 Il metodo speciale main Ogni applicazione Java deve contenere almeno una classe pubblica con un metodo: Ogni applicazione Java deve contenere almeno Pubblico (parola chiave public) Statico (parola chiave static) Di nome main Che ha come parametro un array di stringhe: (String[] args) (il nome args del parametro non importa, può essere un nome qualsiasi, l importante è il tipo array di stringhe )

Made with OpenOffice.org 19 Metodi Un metodo contiene al suo interno una sequenza di istruzioni In generale i metodi operano su oggetti I metodi statici, come main,, non operano su oggetti, ma si riferiscono a tutta una classe Un metodo può avere, in generale, zero o più parametri di ingresso (appaiono tra le parentesi tonde che seguono il nome) Per ogni parametro va indicato un tipo e un nome

Made with OpenOffice.org 20 Il metodo speciale main Nel caso di main il parametro è un array (una sequenza) di stringhe che la JVM inizializza con le parole digitate sulla riga di comando, dopo java Hello,, all invocazione del programma Il contenuto del metodo main della classe pubblica invocata dal comando java deve contenere la sequenza di istruzioni che fanno partire l'applicazione In genere si limita a creare oggetti e ad inizializzarli per poi passare il controllo ad altri

Made with OpenOffice.org 21 Commenti Commento al codice: ignorato dal compilatore public class Hello { public static void main(string[] args){ // visualizza un messaggio sulla finestra di // console System.out.println( Hello, World! );

Made with OpenOffice.org 22 Commenti I commenti nel codice sono parte integrante del programma anche se non sono considerati dal compilatore I commenti spiegano cosa fa il programma, il significato delle variabili, il comportamento dei metodi, ecc. È buonissima abitudine commentare il codice: esso risulta più leggibile da altri (e dallo stesso programmatore già qualche giorno dopo la sua scrittura)

Made with OpenOffice.org 23 Formato dei commenti Java Commento lungo una linea: // testo del commento Il compilatore ignora // e tutti i caratteri che seguono fino alla fine della linea È utile per i commenti corti Commento su più linee: Commento su più linee: /* testo del commento */ Il compilatore ignora tutto ciò che è compreso tra /* e il successivo */

Made with OpenOffice.org 24 Invocazione di un metodo Il metodo println viene invocato passandogli la stringa Hello, World!. Stampa la stringa sullo standard output public class Hello { public static void main(string[] args){ // visualizza un messaggio sulla finestra di // console System.out.println( Hello, World! );

Made with OpenOffice.org 25 Invocazione di un metodo Un metodo non statico deve essere sempre invocato su un certo oggetto In questo caso l oggetto è out out, lo stream standard di caratteri in uscita associato al programma (normalmente è la finestra di console da cui è stato lanciato il programma) L oggetto out è reperibile a partire dalla classe speciale System,, inizializzata dalla JVM, contenente diversi campi statici che si riferiscono ad oggetti relativi al computer che si sta usando

Made with OpenOffice.org 26 Uso dell operatore. Per selezionare un campo statico da una classe: System.out = oggetto di tipo PrintStream Per selezionare un campo o per chiamare un metodo di un oggetto: System.out.println( Hello, World! ); println(string s) è un metodo definito nella classe PrintStream (inclusa nei packages della SDK) che invia i caratteri della stringa s, seguiti da un newline, sullo stream rappresentato dall oggetto su cui si invoca il metodo (in questo caso l oggetto System.out)

Made with OpenOffice.org 27 Stringhe Una stringa è una sequenza finita di caratteri racchiusa da (doppie virgolette, Shift-2) Una stringa è un oggetto della classe String In Java il set di caratteri è Unicode (65536 caratteri dagli alfabeti di tutto il mondo) Sia gli identificatori che le stringhe possono contenere caratteri qualsiasi di Unicode

Made with OpenOffice.org 28 Stringhe Ciao \t Ciao \n\ Unicode \\u007d\ : \u007d Corrisponde a: Ciao Ciao Unicode \u007d : \t è il carattere tab, \n è il carattere a capo newline \u007d è una sequenza di escape che rappresenta il carattere Unicode corrispondente al numero esadecimale 007D = 125 decimale \ sono i doppi apici e \\ è il backslash I primi 128 caratteri Unicode corrispondono ai caratteri ASCII a 7 bit

Made with OpenOffice.org 29 Parametri Il metodo println della classe PrintStream viene invocato sull oggetto System.out con un parametro di tipo String (L oggetto della classe String corrispondente a Hello, World! è implicitamente creato scrivendo la stringa fra apici nel programma) Per la stessa classe di oggetti PrintStream sono definiti metodi di nome println che accettano anche un numero intero, un numero in virgola mobile, un carattere singolo, un intero oggetto! System.out.println(3+5); // Stampa 8

Made with OpenOffice.org 30 Errori di compilazione Proviamo a modificare il codice di Hello.java inserendo qualche imprecisione sintattica: Proviamo a modificare il codice di Hello.java public class Hello { public static void main(string[] args){ // visualizza un messaggio sulla finestra di // console System.ouch ouch.println( Hello, World! );

Made with OpenOffice.org 31 Errori di compilazione C:\Java> javac Hello.java Hello.java:4: : cannot resolve symbol symbol: variable ouch location: class java.lang.system System.ouch.println( Hello, World! ); ^ 1 error C:\Java> Il compilatore indica la riga (4) ( ) e il punto (^) in cui ha trovato errore e un breve messaggio sulla natura dello stesso

Made with OpenOffice.org 32 Errori di Compilazione Gli editor evoluti danno la possibilità di andare, cliccando sull errore, direttamente alla linea di codice incriminata Gli editor evoluti si accorgono degli errori di sintassi anche durante la scrittura del programma I colori delle diverse componenti sintattiche sono dei validi aiuti per prevenire gli errori durante la scrittura

Made with OpenOffice.org 33 Errori di compilazione public class Hello { public static void main(string[] args){ // visualizza un messaggio sulla finestra di // console System.out.println( Hello, World!);

Made with OpenOffice.org 34 Errori di compilazione C:\Java> javac Hello.java Hello.java:4: unclosed string literal System.out.println( Hello, World!); ^ Hello.java:5: ) expected ^ 2 errors C:\Java> Il compilatore ha trovato due errori derivanti entrambi dall omissione del di chiusura e li segnala entrambi (dopo il primo errore trovato tenta di continuare ad interpretare il codice che segue)

Made with OpenOffice.org 35 Errori a runtime public class Hello { public static void Main(String[] args){ // visualizza un messaggio sulla finestra di // console System.out.println( Hello, World! );

Made with OpenOffice.org 36 Errori a runtime C:\Java> javac Hello.java C:\Java> java Hello Exception in thread main java.lang.nosuchmethoderror: main C:\Java> Il compilatore non dà nessun errore Durante l esecuzione della JVM non viene trovato il metodo main della classe e quindi viene sollevata un eccezione (un meccanismo per la gestione degli errori che vedremo) che fa terminare il programma

Made with OpenOffice.org 37 Errori logici public class Hello { public static void main(string[] args){ // visualizza un messaggio sulla finestra di // console System.out.println( Hell, World! );

Made with OpenOffice.org 38 Errori logici C:\Java> javac Hello.java C:\Java> Il compilatore non ha trovato nessuna imperfezione sintattica nel programma Il programma stampa la riga: Hell, World! Questo tipo di errori non è rilevabile dal compilatore L unico, difficile, modo per trovarli (a parte che in casi semplici come questo) è quello di analizzare attentamente il programma magari con l aiuto di un debugger

Made with OpenOffice.org 39 Esercizi Scrivere una classe che contiene un metodo main che stampi il proprio nome in un rettangolo disegnato coi caratteri ASCII tipo Scrivere una classe che contiene un metodo +--------+ Luca +--------+

Made with OpenOffice.org 40 Esercizi Fare stampare la scala: +----+ +----+----+ +----+----+----+ +----+----+----+ Fare stampare la scala:

Esercizio Eseguire il seguente programma: import javax.swing.joptionpane; public class DialogViewer { public static void main(string[] args) { JOptionPane.showMessageDialog(null, System.exit(0); Hello, World! ); Modificarlo in modo da fare stampare Hello, vostro nome! Made with OpenOffice.org 41

Made with OpenOffice.org 42 Esercizio Scrivere ed eseguire il seguente programma: import javax.swing.joptionpane; public class InputDialogViewer { public static void main(string[] args) { String nome = JOptionPane. showinputdialog( Come ti chiami? ); System.out.println(nome); System.exit(0); Modificarlo in modo che stampi Hello, nome!

Made with OpenOffice.org 43 Esercizio Scrivere un programma che: Legge il nome dell'utente con una finestra Apra una finestra di dialogo chiedendo Che cosa vuoi che faccia? Apre una finestra dicendo Scusami, nome,, non posso farlo!

Made with OpenOffice.org 44 Esercizi Scrivere un programma che stampi tutti i caratteri Unicode dal 120 al 130 (decimali) Scrivere un programma che stampi la somma dei primi 10 numeri naturali Scrivere un programma che stampi il primo (args[0]) dei suoi argomenti della linea di comando. Mandarlo in esecuzione con zero, uno, due argomenti sulla linea di comando Scrivere un programma che generi un congruo numero di errori di compilazione a causa di un limitato numero di errori di digitazione Scrivere un programma che stampi tutti i caratteri