Introduzione a Java. Riferimenti

Documenti analoghi
Le basi del linguaggio Java

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

Programmazione ad Oggetti. Java Parte II

Esonero di Informatica I. Ingegneria Medica

Linguaggio Java. Robusto. Orientato agli oggetti. Protegge e gestisce dagli errori. Non permette costrutti pericolosi

Informatica 1 Tipi e dichiarazioni in C++ C++ - Tipi e dichiarazioni 1

Corso di Fondamenti di Informatica Il sistema dei tipi in C++

AMBIENTI DI PROGRAMMAZIONE

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

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

Progettazione del Software

Indice. Introduzione a tool per lo sviluppo e l'esecuzione di programmi in linguaggio Java. Compilazione ed esecuzione di un programma

OCA JAVA 7 SE PROGRAMMER I DOCENTE: DOTT. FAUSTO DELL ANNO

Lezione 6 Introduzione al C++ Mauro Piccolo

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

Elementi lessicali. Lezione 4. La parole chiave. Elementi lessicali. Elementi lessicali e espressioni logiche. Linguaggi di Programmazione I

Le basi del linguaggio Java

Indice. Prefazione. 3 Oggetti e Java 53

IL LINGUAGGIO JAVA Input, Tipi Elementari e Istruzione Condizionale

INSTALLAZIONE, DOCUMENTAZIONE, TUTORIAL E PRIMI PROGRAMMI

Il paradigma di programmazione a oggetti

Riassunto. I mattoni di base di un programma Java. Oggi. Un programma complicato. Oggi. Perché è complicato? Stefano Mizzaro 1.

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

Linguaggio Java. Robusto. Orientato agli oggetti. Protegge e gestisce dagli errori. Non permette costrutti pericolosi

Corso sul linguaggio Java

Università degli studi di Roma Tor Vergata Ingegneria Medica Informatica I Programma del Corso

Laboratorio di Programmazione Lezione 2. Cristian Del Fabbro

Concetti introduttivi

Prof. Pagani corrado JAVA

Il linguaggio C. Notate che...

Programmazione. Cognome... Nome... Matricola... Prova scritta del 22 settembre Negli esercizi proposti si utilizzano le seguenti classi:

Algebra di Boole: Concetti di base. E un algebra basata su tre operazioni logiche

Linguaggio C++ Linguaggi di terza generazione

Programmazione. Cognome... Nome... Matricola... Prova scritta del 11 luglio 2014

Programmazione Java Struttura di una classe, Costruttore, Riferimento this

Java il Corso Fondamentale

Programmazione Orientata agli Oggetti in Linguaggio Java

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

Prima lezione di laboratorio. I mattoni di base di un programma Java. Comandi Unix. Riassunto. Oggi. Un programma complicato.

Programmazione Orientata agli Oggetti in Linguaggio Java

19 - Eccezioni. Programmazione e analisi di dati Modulo A: Programmazione in Java. Paolo Milazzo

Introduzione alla programmazione in linguaggio C

Java Native Interface Appunti

Un esecutore di un linguaggio simbolico e costituito dalla coppia Compilatore, processore (o Interprete, processore)

Programmazione con Java

Introduzione alla programmazione

Corso di Laurea Ingegneria Informatica Laboratorio di Informatica

Sommario. Introduzione... xv. Giorno 1 Elementi base del linguaggio C

Prima lezione di laboratorio. I mattoni di base di un programma Java. Riassunto. Comandi Unix. Oggi. Blog & Group.

Linguaggio C - sezione dichiarativa: costanti e variabili

Introduzione a Java. Giovanni Pardini Dipartimento di Informatica Università di Pisa.

Introduzione Programmazione Java

Java. Java: compilatore e interprete. Programma Java. Java Virtual Machine. Token. Alfabeto

Utilizza i tipi di dati comuni a tutto il framework.net Accesso nativo ai tipi.net (C# è nato con.net) Concetti fondamentali:

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

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

Informatica Generale Andrea Corradini I linguaggi di programmazione

Funzioni, Stack e Visibilità delle Variabili in C

Prefazione. Capitolo 1 Sistemi di elaborazione 1

Corso sul linguaggio Java

Java SE 7. Introduzione.

Primi passi col linguaggio C

Scrivere un programma in Java

Unità Didattica 2 Linguaggio C. Espressioni, Operatori e Strutture linguistiche per il controllo del flusso

Java. Java : compilatore e interprete. Programma Java. Java Virtual Machine. Il linguaggio Java è un linguaggio di programmazione ad alto livello

Java. Java : compilatore e interprete. Programma Java. Java Virtual Machine. Token. Alfabeto

Modulo 2: Strutture fondamentali della programmazione Java

Il linguaggio Java Istruzioni di Controllo

Puntatori in C. Puntatori. Variabili tradizionali Esempio: int a = 5; Proprietà della variabile a: nome: a

Le command line di Java

Primi programmi in Java. Lezione II

9 - Array. Programmazione e analisi di dati Modulo A: Programmazione in Java. Paolo Milazzo

Esercitazione n 1. Obiettivi

Programmazione in Java (I modulo)

OCA JAVA 8 SE PROGRAMMER I DOCENTE: DOTT. FAUSTO DELL ANNO

Nascita di Java. Che cos e Java? Caratteristiche di Java. Java: linguaggio a oggetti

Definizione di una classe

La sintassi del C APPENDICE H

Perché il linguaggio C?

Fondamenti di Informatica T-1. Introduzione al linguaggio Java Input/output, variabili, tipi

Esercitazione 11. Liste semplici

Introduzione a Matlab

Uso di classi e oggetti. Prof. Francesco Acarino IIS Altiero Spinelli Via Leopardi 132 Sesto San Giovanni

Java Gli array. Array

Strumenti per la programmazione

Corso: Fondamenti di Informatica (Gruppo 2) a.a Corsi di laurea: Ing. Settore Informazione

Introduzione al corso. Obiettivo del corso

Fondamenti di C++ Input/Output di base

Indice PARTE A. Prefazione Gli Autori Ringraziamenti dell Editore La storia del C. Capitolo 1 Computer 1. Capitolo 2 Sistemi operativi 21 XVII XXIX

Lezione 9 programmazione in Java Classi come contenitori

Costanti e Variabili

14 - Metodi e Costruttori

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

Argomenti Avanzati.! I puntatori! Stack! Visibilità delle Variabili

Corso di Calcolatori Elettronici Un computer è un dispositivo in grado di eseguire dei calcoli e di prendere delle decisioni logiche.

Programmazione in Java. Indipendenza dalla piattaforma. Indipendenza dalla piattaforma. Autore: Roberto Fabbrica Diapo 1.

Linguaggi Object Oriented: Principi e Introduzione a Java

Corso sul linguaggio Java

Programmazione in Java Parte I: Fondamenti

Esercitazione n 2. Obiettivi

Transcript:

Introduzione a Java Si ringraziano Massimiliano Curcio e Matteo Giacalone 1: Introduction 1 Riferimenti! Java tutorial: http://java.sun.com/docs/books/tutorial/! Il Java tutorial è parte di una più ampia documentazione disponibile al sito Sun! J. Bishop: Java gently Corso introduttivo. Addison - Wesley! P. Niemeyer e altri. Learning Java. O'REILLY! D. Flanagan. Java in a nutshell. O'REILLY! M. Hughes e altri. Java network programming, 2nd edition. Manning 1: Introduction 2

Parte I: Cos è Java! Generalità sul linguaggio! Come è fatto un programma Java (Helloworld.java)! Come si compila un programma Java! Tipi primitivi in Java! Costrutti del linguaggio Osservazioni:! Si assume la conoscenza dei concetti della programmazione orientata agli oggetti sviluppati nei corsi del II anno! Molti argomenti non saranno trattati: Swing, AWT, RMI, applet, ecc.! Altri argomenti saranno toccati quando necessario e andranno approfinditi dallo studente (es. classi che gestiscono liste 1: Introduction 3 Generalità su Java! Linguaggio OO sviluppato dalla Sun Microsystems! Obiettivi: µ Max. portabilità µ Semplicità nella gestione di aspetti complessi ma frequenti nelle applicazioni: Interfacce grafiche Programmazione di rete Programmazione concorrente! Simile al C++, ma con alcune differenze importanti! Gestione trasparente (o quasi) della memoria dinamica µ Non va allocata esplicitamente µ Non esiste un tipo esplicito puntatore µ In realtà l accesso agli oggetti avviene per riferimento 1: Introduction 4

Perché Java è portabile! Java è sia compilato che interpretato µ Il codice sorgente è compilato in un codice binario (byte code) indipendente dalla piattaforma µ Il codice binario è interpretato a runtime da un interprete (Java Virtual Machine) che traduce istruzioni byte code in istruzioni della piattaforma reale Codice sorgente Compilatore Byte code Interprete Interprete Interprete Linux Mac Win 1: Introduction 5 La piattaforma Java (rif.: Java Tutorial)! Java non consiste solamente del compilatore, ma include una vera piattaforma: µ Interprete (JVM) dipende dal Sistema Operativo, implementa una macchina virtuale µ Insieme di API (Application Programming Interface) per la macchina virtuale! API: insieme di librerie di classi Java predefinite, raggruppate in Package. Offrono numerosi strumenti: µ I/O di base µ Supporto alla programmazione di rete µ Supporto per la creazione di interfacce complesse µ Tipi di dati complessi (liste, vettori, ecc.) 1: Introduction 6

Come è fatto un programma Java! Insieme di classi! Come in C++, esiste una classe che implementa il metodo main() e costituisce il punto di ingresso del programma import java.io.* /* Importo il package che contiene le classi per la gestione dell I/O */ public class primaclasse { public static void main(string args[]) { System.out.println( Hello world!! ); /* Fine della classe */ 1: Introduction 7 Come è fatto un programma Java/2! import : permette di usare i nomi brevi per tutte le classi del package specificato µ Es. (con import java.io.*): System.out.println( pippo ) invece di java.io.system.out.println( pippo ) µ Dettagli più avanti! main() deve essere dichiarato public static void e ha come argomento un vettore di stringhe! Stesse convenzioni del C/C++: µ /* Commenti */ µ Uso delle parentesi µ Operatori (quasi tutti) µ Punteggiatura µ Case sensitive!! 1: Introduction 8

Scrittura e compilazione di programmi (rif.: Java Tutorial)! Un programma Java è costituito da un insieme di classi, di cui una contenente il metodo main()! File e classi µ 1 file.java per ogni classe pubblica Es.: pippo.java per la classe pubblica pippo Attenzione: possono aversi più classi in un file, ma solo una di esse può essere pubblica µ Per la classe pubblica pippo il nome del file deve essere pippo.java! Per eseguire un programma Java servono (almeno): µ Compilatore Java µ Interprete Java (JVM) 1: Introduction 9 Scrittura e compilazione di programmi/2! JDK (Java Development Kit) µ Si può scaricare dal sito della SUN (http://java.sun.com/products/jdk) µ Contiene compilatore (javac) e interprete (java) µ Il codice sorgente si può scrivere con qualsiasi editor di testo! Ambienti di sviluppo più complessi µ Esistono strumenti (ad esempio JBuilder e JCreator) che permettono di integrare i vari strumenti, offrendo un interfaccia più amichevole µ Richiedono la presenza di JDK! Esistono versioni successive del JDK (perché Java evolve tuttora) 1: Introduction 10

Scrittura e compilazione di programmi/3 1. Scrittura (es.: file pippo.java in c:\\varie) 2. Compilazione 1. Cambiare directory in modo da trovarsi in quella contenente il file (c:\\varie ) 2. Avviare la compilazione: javac pippo.java (non dimenticare l estensione) 3. Si ottiene così il codice oggetto (byte code). Il file corrispondente ha lo stesso nome ma estensione class. Dunque, nel nostro caso pippo.class 3. Esecuzione 1. Accertarsi di essere nella directory contenente il file.class 2. Avviare l esecuzione: java pippo (stavolta senza estensione) Nota: gli ambienti di sviluppo come JBuilder fanno le stesse cose, ma in modo trasparente 1: Introduction 11 Tipi di dato primitivi! boolean: assume valori true o false! int: intero a 32 bit in complemento a 2! byte: intero a 8 bit in complemento a 2! short: intero a 16 bit in complemento a 2! long: intero a 64 bit in complemento a 2! char: carattere rappresentato in formato Unicode a 16 bit! float (32 bit)! double (64 bit)! Esiste una classe predefinita corrispondente a ognuno dei tipi primitivi (es.: Int per int, Char per char ecc.)! La dichiarazione delle variabili segue le stesse convenzioni C/C++! Una variabile locale a un metodo deve essere esplicitamente inizializzata prima dell uso! Le variabili di classe possono non essere inizializzate, nel qual caso sono poste a valori di 1: Introduction 12 default

Costrutti! if - else! while! do - while! switch! for! try catch - finally! La sintassi e la semantica sono sotanzialmente le stesse del C/C++! Si illustreranno soprattutto le (poche) differenze! Attenzione al costrutto try catch finally! Blocco di codice: sequenza di istruzioni semplici o complesse racchiuso tra parentesi graffe 1: Introduction 13 Costrutti/2 if (<condizione>) {... oppure: if (<condizione>) {... else {...! A differenza del C/C++ <condizione> deve essere un espressione che restituisce un valore booleano! Es.: (i==0) oppure bool, purché bool sia una variabile booleana 1: Introduction 14

Costrutti/3 while (<condizione>) { do {...... while (<condizione>) switch(n) { case 1: <Blocco istruzioni 1> break; case 2: <Blocco istruzioni 1> break; default: <Blocco istruzioni default> break;! n deve essere un espressione (o una variabile) a valore di tipo int, byte, char o short! n non può essere di tipo long 1: Introduction 15 Costrutti/4 for (int i = 1, j = 10; i < j; i += 3, j++) {...! try catch finally è usato per gestire le eccezioni! Dettagli più avanti! L operatore, non esiste in Java, tranne che nel costrutto for, dove funziona come in C/C++ 1: Introduction 16

Operatori ed espressioni! Esistono quasi tutti gli operatori C, più alcuni operatori nuovi! Operatori mancanti: µ Operatore, (tranne nel costrutto for) µ * e &, poiché non si ha gestione esplicita dei puntatori µ sizeof()! Nuovi operatori: µ + sovraccarico, può essere usato per concatenare stringhe µ >> : shift aritmetico a destra con estensione del segno µ >>> : shift aritmetico a destra senza estensione del segno µ new ha lo stesso significato che in C++ 1: Introduction 17 Operatori ed espressioni/2! Le convenzioni circa la precedenza tra gli operatori sono le stesse che in C! La valutazione delle espressioni avviene in generale da sinistra a destra, l uso delle parentesi tonde è analogo (es.: 7-3*2=1 ma (7-3)*2=8)! null: l espressione null può essere assegnata a tutti i tipi non primitivi! Come vedremo, l accesso ai tipi non primitivi avviene (implicitamente) per riferimento! null assegnato a una variabile di tipo non primitivo (array, oggetti ecc.) significa che la variabile non punta a nulla 1: Introduction 18

Dichiarazione di variabili e assegnazioni! Dichiarazione di variabili µ int i, j; µ myclass myobject; /* myobject è un oggetto di classe myclass */ µ int i = 0; /* Dichiarazione e inizializzazione */! Assegnazioni µ j = (i = 5); /* j e i valgono 5 al termine dell istruzione */ µ Se Object1 e Object2 sono oggetti della stessa classe: Object1 = Object2; /* Al termine Object1 punta allo stesso oggetto di Object2 */! L accesso per riferimento ai tipi non primitivi verrà discusso più avanti 1: Introduction 19 Campo di azione degli identificatori! Variabili di classe: sono visibili in tutta la classe a meno di **! Variabili locali: quelle definite all interno di un blocco di codice (variabili locali ai metodi ma non solo)! Parametri dei metodi: visibili in tutto il corpo del metodo if (...) { int i = 10; /* var. locale */ <Altre istruzioni> /* End if */ System.out.println(i); /* Errore!! */ Attenzione: le variabili locali devono essere inizializzate prima dell uso 1: Introduction 20