Java come linguaggio di programmazione

Slides:



Advertisements
Presentazioni simili
Introduzione al linguaggio C++
Advertisements

Ambiente Java.
Programmazione in Java
1 Introduzione ai calcolatori Parte II Software di base.
Introduzione al linguaggio C
© 2007 SEI-Società Editrice Internazionale, Apogeo Unità A1 Introduzione a Java.
Code::Blocks Ambiente di sviluppo.
Recupero debito quarto anno Primo incontro
I linguaggi di programmazione
Massa Laura Mela Enrica
1 Semantica Operazionale di un frammento di Java: lo stato.
1 Informatica Generale Susanna Pelagatti Ricevimento: Mercoledì ore presso Dipartimento di Informatica, Via Buonarroti,
1 Istruzioni, algoritmi, linguaggi. 2 Algoritmo per il calcolo delle radici reali di unequazione di 2 o grado Data lequazione ax 2 +bx+c=0, quali sono.
Tipi di dato e controllo del flusso Dott. Ing. Leonardo Rigutini Dipartimento Ingegneria dellInformazione Università di Siena Via Roma 56 – – SIENA.
Introduzione a JAVA Dott. Ing. Leonardo Rigutini Dipartimento Ingegneria dellInformazione Università di Siena Via Roma 56 – – SIENA
1 Corso di Laurea in Biotecnologie Informatica (Programmazione) Introduzione a JAVA Anno Accademico 2009/2010.
1 Corso di Informatica (Programmazione) Lezione 6 (31 ottobre 2008) Introduzione a Java: primo programma, installazione dellambiente di sviluppo, compilazione.
1 Corso di Informatica (Programmazione) Lezione 7 (5 novembre 2008) Programmazione in Java: lessico, variabili, tipi primitivi, assegnamento a variabile.
1 Corso di Laurea in Biotecnologie Informatica (Programmazione) Variabili e tipi primitivi Anno Accademico 2009/2010.
Corso di Laurea in Biotecnologie Informatica (Programmazione)
1 Corso di Informatica (Programmazione) Lezione 12 (19 novembre 2008) Programmazione in Java: i metodi statici.
1 Corso di Informatica (Programmazione) Lezione 4 (24 ottobre 2008) Architettura del calcolatore: la macchina di Von Neumann.
Corso di Informatica (Programmazione)
1 Corso di Informatica (Programmazione) Lezione 13 (21 novembre 2008) Programmazione in Java: stringhe e array.
1 Corso di Laurea in Biotecnologie Informatica (Programmazione) Le stringhe di caratteri in Java Anno Accademico 2009/2010.
Introduzione al linguaggio Java
eliana minicozzi linguaggi1a.a lezione2
Gestione dei Progetti Software 2 (a.a. 2004/05) - Lezione 3 1 JAVA e Internet: il World Wide Web Internet: milioni di computer collegati fra di loro attraverso.
Struttura dei sistemi operativi (panoramica)
Approfondimento delle classi
CAPITOLO 1 JAVA: UN TUFFO NEL LINGUAGGIO E NELL'AMBIENTE.
CAPITOLO 4 LINGUAGGIO JAVA: COSTRUTTI DI BASE. ALFABETO Java adotta la codifica standard Unicode della società Unicode, Inc. (ftp://ftp.unicode.org) definito.
Unità Didattica 2 I Linguaggi di Programmazione
Le classi Definizione di classe Attributi e metodi di una classe Costruttori e distruttori Private e public Funzioni friend Il puntatore this.
Strutture di controllo in C -- Flow Chart --
Dichiarazioni e tipi predefiniti nel linguaggio C
Il Linguaggio C.
Espressioni condizionali
Algoritmi e Programmazione (in C) Stefano Cagnoni e Monica Mordonini
Argomenti della lezione
LA DOCUMENTAZIONE È noto che un buon programma dovrebbe essere ben documentato.. ma lesperienza insegna che quasi mai ciò viene fatto! –non cè tempo, ci.
Programmazione in Java
Programmazione in Java Claudia Raibulet
JAVA Franco Bombi 8 ottobre FB Introduzione Java è un linguaggio di impiego generale, basato su classi e orientato agli oggetti Java.
Java Contardi Carlo A.S. 2008/09.
Scheda Ente Ente Privato Ente Pubblico. 2ROL - Richieste On Line.
ISTITUTO STATALE DI ISTRUZIONE SUPERIORE F. ENRIQUES CORSO JAVA – PROVA INTERMEDIA DEL 12 MARZO 2007 NOME: COGNOME: ________________________________________________________________________________.
1 Ly-LAB Sistema di gestione dei dati analitici di laboratorio.
© M. Badella, G. Malnati, L. Tessitore Programmazione ad Oggetti A.A GESTIONE DEL TESTO.
Fopndamenti di programmazione. 2 La classe String Una stringa è una sequenza di caratteri La classe String è utilizzata per memorizzare caratteri La classe.
Fondamenti di Programmazione Prof.ssa Elisa Tiezzi
1Piero Scotto - C14. Finalità del corso Programma Materiale Requisiti Spendibilità 2Piero Scotto - C14.
Sviluppare un programma in C che, dato un array da 100 elementi interi caricato con numeri casuali compresi tra [10,100], sia in grado di cercare il valore.
ISTITUTO STATALE DI ISTRUZIONE SUPERIORE F. ENRIQUES CORSO JAVA – PROVA INTERMEDIA DEL 12 MARZO 2007 NOME: COGNOME: ________________________________________________________________________________.
© M. Badella, G. Malnati, L. Tessitore Programmazione ad Oggetti A.A Package.
Appunti di Java (J2SDK 1.4.2, JDK 1.6.0) prof. Antonella Schiavon settembre 2009.
JAVA Per iniziare. Verificare installazione javac –version java –version Cercare i files e sistemare eventualmente il path.
Programmazione ad oggetti
Ingresso e uscita in Java F. Bombi 10 ottobre 2002.
Fondamenti di informatica Oggetti e Java Luca Cabibbo Luca Cabibbo – Fondamenti di informatica: Oggetti e Java Copyright © 2004 – The McGraw-Hill Companies.
la traduzione dei programmi
© Copyright NTT DATA Italia – All Rights Reserved The information contained in this document is the property of NTT DATA Italia S.p.A. and the addressee.
Programmazione in Java
TW Asp - Active Server Pages Nicola Gessa. TW Nicola Gessa Introduzione n Con l’acronimo ASP (Active Server Pages) si identifica NON un linguaggio di.
1 Il linguaggio C Precisazioni sull’esperienza in laboratorio.
Programmazione Attività di progettazione ed implementazione di programmi I programmi permettono di realizzare funzioni complesse su un hardware in grado.
Programmazione orientata agli Oggetti Introduzione a Java.
Introduzione alle Classi e agli Oggetti in Java 1.
Transcript della presentazione:

Java come linguaggio di programmazione

Argomenti della lezione Programmare in Java Un esempio elementare Gli strumenti di Java Struttura di un programma Java Metodi statici Variabili Tipi elementari Istruzioni principali

Il linguaggio Java Formalismo ad alto livello... Permette di descrivere programmi basandosi su concetti primitivi “sofisticati” (file, finestre, tabelle, liste, ecc.) ...basato su una notazione testuale familiare Codice sorgente Simile, nella sintassi e nelle istruzioni al linguaggio C

Codice Sorgente I programmi Java sono suddivisi in “classi” Le classi sono descritte all’interno di file di testo con estensione “.java” Ogni file contiene una sola classe Il nome file deve coincidere con il nome della classe

Un esempio Hello.java public class Hello { // Il programma più semplice public static void main(String[] args) { // Stampa un messaggio sul video System.out.println(“Hello Java”); } }

Passi concettuali (1) J .java .class Scrittura Compilazione 1001 0110 110.. .java Codice sorgente .class ByteCode

I passi concettuali (2) .class Esecuzione ByteCode Hello, Java! 1001 0110 110.. Hello, Java! .class ByteCode

Gli strumenti di Java La macchina virtuale Il compilatore Gli ambienti di sviluppo La documentazione Il debugger

Applicazione tradizionale Macchina virtuale (1) Applicazione tradizionale Applicazione Java Macchina Virtuale Sistema Operativo Hardware

Macchina virtuale (2) Astrazione di un elaboratore “generico” Esempio: Ambiente di esecuzione delle applicazioni Java Esempio: java Hello Responsabilità: Caricamento classi dal disco Verifica consistenza codice Esecuzione applicazione

Il compilatore J Traduzione dei sorgenti testuali in bytecode 1001 0110 110.. Traduzione dei sorgenti testuali in bytecode Linguaggio della macchina virtuale Java Esempio: javac Hello.java

Ambienti di sviluppo Il codice sorgente Java è composto da testo Un editor qualsiasi è sufficiente Si possono usare ambienti integrati per lo sviluppo (IDE) Offrono strumenti per la redazione, la compilazione, l’esecuzione e la ricerca degli errori

Esempi Eclipse JCreator BlueJ http://www.eclipse.org http://www.jcreator.com BlueJ http://www.bluej.org

Documentazione (1) Strumento necessario alla sopravvivenza del programmatore Java!! Raccolta di informazioni relative alle classi appartenenti alle librerie standard di Java http://java.sun.com/docs/

Documentazione (2) Per ogni classe: Descrizione funzionale Elenco di attributi: funzionalità, caratteristiche Elenco dei metodi: funzionalità, parametri in ingresso, valori di ritorno, …

Il debugger Strumento ausiliario al programmatore Comando jdb.exe Monitorare l’esecuzione di una applicazione Analisi dei valori assunti dalle variabili, i metodi della classe, … Comando jdb.exe

Dove si usa Java? Cellulari e PC palmari Apparati di rete PC client Elettrodomestici Server

Java nei sistemi Client Vantaggi Facilità di realizzazione delle interfacce grafiche Indipendenza dalla piattaforma di sviluppo e di utilizzo Ciclo di sviluppo rapido Distribuzione immediata, a richiesta, tramite web Svantaggi Prestazioni limitate rispetto ad applicazioni native Ambienti di esecuzione in forte evoluzione Oggetto di questo corso

Java nei sistemi Server Varie tipologie di utilizzo: Servlet / Java Server Pages / Java Server Faces EnterpriseJavaBean Application server È il contesto in cui Java sta ottenendo il massimo successo Oggetto del corso “Programmazione in ambienti distribuiti”

Java nei sistemi Embedded Segmento di mercato in forte crescita: Milioni di PC connessi ad Internet Centinaia di milioni di telefoni cellulari Miliardi di elettrodomestici Vengono usate librerie specifiche JavaCard, Java Micro Edition, …

Installare Java (1) Java Software Development KIT (J2SE SDK) Versione utilizzata nel corso 1.4.x Disponibile gratuitamente: http://java.sun.com/ compilatore, librerie standard, macchina virtuale, …

Installare Java (2) Necessario modificare la variabile d’ambiente PATH= ... ;<JAVA_HOME>/bin per invocare i comandi java (compilatore, macchina virtuale, debugger, ...) In Windows 2000/XP Pannello di controllo  Sistema  Avanzate  Variabili d’ambiente

Struttura dei file (1) <File>.java <File>.class Contengono il codice sorgente Java <File>.class Contengono il risultato della compilazione Espressi in bytecode (formato binario) All’interno sono presenti le istruzioni, la tabella dei simboli, le informazioni ausiliarie necessarie all’esecuzione

Struttura dei file (2) <File>.jar <File>.properties Archivi compressi che consentono di aggregare più file Contengono una o più classi Java, risorse e ulteriori informazioni ausiliarie (documentazione, parametri di configurazione, …) <File>.properties Coppie chiave – valore proprietà del sistema o dell’applicazione Si usano per configurare il sistema

Programmi Java Java è un linguaggio ad oggetti L’unità minima di programmazione è la classe Un programma Java utilizza una o più classi Per ora, consideriamo programmi formati da una sola classe Un solo file sorgente Il nome del file coincide con il nome della classe L’estensione del file è “.java”

Formato generale Prova.java public class Prova { /* Stesso nome! Prova.java public class Prova { /* qui vengono riportati attributi e metodi della classe … */ }

main(…): la porta sul mondo Java public static void main(String[] args){ /* istruzioni ... */ } Punto di ingresso di ogni applicazione Invocato automaticamente dalla VM Java

Metodi statici Sequenze di istruzioni che svolgono un determinato compito Hanno un nome Possono avere dei parametri Possono ritornare un valore Dovrebbero avere un commento!

public class Test { static int m1(int a, int b) { int c = a*a+b*b; return c; } public static void main(String[] args) { int i = m1(3,4); System.out.println(i);

Commenti Servono a documentare un programma (o una sua parte) Racchiusi da “/*” e “*/” “//” inizia un commento che termina a fine riga Usati sempre troppo poco!

Variabili locali I metodi possono utilizzare variabili: Servono a memorizzare risultati intermedi Dichiarate nel corpo del metodo Durata temporanea: quando il metodo ritorna, la variabile è distrutta

Tipi: una forma per i dati Variabili, parametri, valori ritornati hanno un tipo che ne precisa /limita l’uso Possono contenere solo valori conformi al proprio tipo Esistono tipi Semplici (primitivi) Composti (classi) – descritti nelle lezioni successive

Tipi primitivi Numerici interi Numerici reali Non numerici byte, short, int, long Numerici reali float, double Non numerici boolean, char 3

Tipi numerici interi (1) Valori ammissibili byte {-128 ... 127} short {-32768 ... 32767} int {-2147483648 ... 2147483647} long {-9.22 E18 ... 9.22E18}

Tipi numerici interi (2) Operazioni consentite aritmetiche +, -, *, /, %, ++, --, >> logiche (bit a bit) ^, &, |, ~, <<, >>> confronto ==, !=, >, >=, <, <=

Tipi numerici reali Valori Operazioni float {±3.403E38} 6 cifre significative double {±1.798E308} 15 cifre significative Operazioni aritmetiche (+, -, *, /) confronto (==, !=, >, >=, <, <=)

Tipi non numerici: boolean Valori {false, true} Operazioni logiche (&&, ||, !) confronto (==, !=)

Tipi non numerici: char Rappresentazione dei caratteri secondo lo standard Unicode Lettere di vari alfabeti arabo, armeno, bengalese, cirillico, greco, latino, ... Simboli diacritici, punteggiatura, matematici, tecnici, ...

Tipi non numerici: char Rappresentazione su due byte Le costanti sono indicate tra apici semplici (‘a’) I valori non stampabili sono rappresentati nel formato unicode (‘\u27AF’) Operazioni confronto (==, !=, >,>=, <, <=)

Dichiarazioni Introducono l’utilizzo di una variabile Formato generale <Tipo> <Nome> ‘;’ <Tipo> <Nome> ‘=’ <ValoreIniziale> ‘;’ Esempi char c; int i = 10; long l1, l2; La mancata dichiarazione è un errore sintattico Opzionale

Usare le variabili (1) Si può dichiarare una variabile ovunque nel codice di un metodo Bisogna farlo, però, prima di usarla Visibilità limitata al blocco di istruzioni in cui è dichiarata Le variabili devono essere inizializzate! int a; int b = a; Errore! La variabile “a” non è stata inizializzata, e il suo valore è casuale

Usare le variabili (2) Ad una variabile può essere assegnato: Esempi Un valore costante Il risultato di una formula Esempi int i = 1, j = 5; i = (5*j) % 10; long l = 10L; char c1 = ‘a’, c2 = ‘\u0062’; boolean b = false;

Convenzioni sui nomi Le classi hanno nomi che iniziano con la lettera maiuscola Metodi, attributi e variabili hanno l’iniziale minuscola Se un nome è composto da più parole giustapposte, l’iniziale di ogni parola successiva alla prima è maiuscola int contatoreNumeroOccorrenze = 0; class CentraleTelefonica { } 8

Costrutti di programmazione Istruzioni semplici Scelta Ripetizione Salto strutturato Invocazione di metodi Trattata più in dettaglio successivamente Blocchi di istruzioni Racchiusi tra parentesi graffe {...}

Istruzioni di scelta (1) if (condizione)... if (condizione)... else ... Verifica della condizione Vera si esegue l’istruzione o il blocco di istruzioni successivo Falsa si salta all’istruzione successiva oppure viene eseguito il blocco “else”

Istruzioni di scelta (2) switch (var) { case val1: … break; case valN: … break; default: … } Struttura di selezione multipla Valutazione del valore di una variabile val1, …, valN: espressioni costanti (interi o caratteri)

Istruzioni di ripetizione (1) for(espr1; espr2; espr3){ … //istruzioni da ripetere } espr1: inizializzazione variabile/i di controllo espr2: condizione di continuazione espr3: modifica della/e variabili di controllo

Istruzioni di ripetizione (2) while (cond ){ … } do { … } while(cond ); Esecuzione di un blocco di istruzioni finché la condizione rimane vera do/while garantisce almeno una iterazione

Salto strutturato Istruzioni che permettono di alterare il flusso di esecuzione: break : provoca l’uscita immediata dal blocco continue: salto delle rimanenti istruzioni del blocco, procede con l’interazione successiva del ciclo Usati nei costrutti while, do/while, for, switch (quest’ultimo, solo break)