Programmazione ad oggetti

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "Programmazione ad oggetti"

Transcript

1 DAIS Univ. Ca' Foscari Venezia Programmazione ad oggetti Samuel Rota Bulò

2 Informazioni generali Docente: Samuel Rota Homepage: ooprogramming2012.html Ricevimento: da concordare previa Durata: 30 ore Lezioni: mercoledì 18:15-19:45 sabato 08:45 10:15 Esame: scritto + laboratorio + progetto

3 Libro di testo

4 Il linguaggio JAVA

5 Un po' di storia 1991: nasce alla Sun Microsystems con il nome green per utilizzarlo in elettrodomestici. 1994: l'ideatore di green si rende conto che il nuovo linguaggio poteva avere grosse potenzialità per applicazioni client/server. 1995: nasce ufficialmente Java 1996: v : v1.1, classi innestate 1998: v1.2, swing e collections 2000: v1.3, miglioramento delle prestazioni 2002: v1.4, asserzioni, XML 2004: v5.0, classi generiche, estensione ciclo for, autoincapsulamento, enumerazioni 2006: v6.0, miglioramento della libreria 2010: v7.0, piccole modifiche al linguaggio e miglioramento libreria

6 Caratteristiche di Java Alto livello: assenza di puntatori e gestione esplicita della memoria Imperativo: sequenza di istruzioni che modificano la memoria Ad oggetti: ogni cosa in Java è un oggetto (salvo piccole eccezioni) Portabile: bytecode eseguibile su Java Virtual Machine (JVM) Fortemente tipato: controllo forte dei tipi da parte del compilatore Sicuro: progettato per eseguire codice remotamente in modo sicuro Vivo: in continua evoluzione

7 La piattaforma Java

8 Dal sorgente all'esecuzione Macchina Hardware X Sorgente programma JAVA Compilatore JAVA Bytecode programma JAVA Macchina Virtuale JAVA Bytecode librerie JAVA Esecuzione programma Macchina Hardware Y

9 Java Virtual Machine (JVM) Macchina astratta: Esegue codice intermedio (bytecode) Specifica indipendente dall'architettura sottostante Indipendente del sistema operativo Esistono diverse implementazioni Componenti: Class loader: carica in memoria le classi necessarie al programma Bytecode verifier: controlla l'integrità degli accessi in memoria e l'aderenza alla specifica della JVM,... Security manager: verifica la sicurezza delle classi caricate a runtime, controlla gli accessi ai file,... Class Loader Bytecode verifier JVM Interpreter Security manager

10 Hello world! HelloWorld.java: public class HelloWorld { } public static void main(string[] args){ //stampa in console un messaggio System.out.println( Hello, World! ); } Compilazione: javac HelloWorld questo genera il bytecode HelloWorld.class Esecuzione su JVM: java HelloWorld Output: Hello, World!

11 Tipi e variabili Ogni valore nel linguaggio ha un tipo Il tipo identifica un insieme di valori e quali operazioni sono legali sugli stessi. Una variabile è una porzione di memoria del calcolatore caratterizzata da un tipo, un nome e un valore contenuto. Una variabile di tipo X può assumere solo valori di tipo X. Una variabile viene dichiarata con: nometipo nomevariabile; nometipo nomevariabile = valore; Esempi: String greetings = Hello, World! ; PrintStream printer = System.out; int width = 20;

12 L'operatore di assegnamento Abbiamo visto che possiamo assegnare valori alle variabili in fase di dichiarazione Mediante l'operatore = possiamo assegnare un nuovo valore ad una variabile nomevariabile = valore; Una variabile non può essere utilizzata se non viene prima assegnato un valore Il valore può essere il risultato di un espressione. Es: int width = 10; int height; height = 3; width = height + 10; // width=13 height = height + 1; // height=4

13 Oggetti e classi Una classe è la descrizione di una struttura dati complessa caratterizzata principalmente da: campi: variabili che conterranno i dati metodi: operazioni che agiscono sui dati Un oggetto è un'istanza di una certa classe, in cui i campi assumono valori ed è manipolabile attraverso l'invocazione dei metodi descritti nella classe. La classe rappresenta il tipo di un oggetto. In Java ogni cosa è un oggetto (salvo piccole eccezioni).

14 Esempio di oggetti Oggetti appartenenti alla stessa classe condividono gli stessi nomi e gli stessi tipi per i propri campi e lo stesso codice dei metodi. Oggetti distinti, anche se appartenenti alla stessa classe, occupano celle di memoria distinte per memorizzare i valori dei propri campi. Ogni oggetto ha una copia privata dei suoi campi. String data= Hello length(...) touppercase(...) String data= Pippo length(...) touppercase(...)

15 Nota sugli identificatori I nomi di variabili, metodi, classi devono seguire determinate regole per non incorrere in errori di compilazione: possono essere composti di lettere, cifre, $, _, ma non possono iniziare con una cifra non si possono usare simboli come?, % o spazi non si possono usare parole riservate del linguaggio come public, class, int, Esistono poi delle convenzioni sugli identificatori: le variabili e metodi iniziano con una lettera minuscola se vogliamo usare parole multiple per un identificatore le separiamo usando le lettere iniziali maiuscole. Es: lunghezzaparola le classi iniziano con una lettera maiuscola

16 Utilizzo di oggetti Consideriamo la classe Rectangle presente nella libreria java.awt di Java. La classe Rectangle descrive i campi necessari per modellare un rettangolo (x,y,altezza,larghezza) e i metodi per manipolarlo. Un oggetto di tipo Rectangle rappresenta una specifica istanza di rettangolo (es: x=5, y=10, larghezza=20, altezza=30) (x,y) Rectangle x=5 y=10 width=20 height=30 height... width

17 Costruttori Il costruttore è un metodo speciale che consente di allocare ed inizializzare un nuovo oggetto. il nome del costruttore coincide con il nome della classe può avere o meno dei parametri associati che servono a determinare l'inizializzazione dell'oggetto I costruttori vengono descritti all'interno delle classi. Un costruttore viene invocato con new e ritorna un riferimento all'oggetto costruito. new NomeClasse(parametri) Esempio: Rectangle box = new Rectangle(5,10,20,30);

18 Costruttori Una classe può fornire più di un costruttore In questo modo abbiamo diverse modalità con cui possiamo costruire un oggetto sulla base delle parametrizzazioni del costruttore Esempio: Rectangle box = new Rectangle(5,10,20,30); Rectangle box2 = new Rectangle(); Il costruttore Rectangle() inizializza i campi dell'oggetto a 0.

19 Metodi I metodi descrivono le operazioni che possono essere usate per manipolare gli oggetti L'implementazione e la firma dei metodi è descritta nella classe Il metodo agisce esclusivamente sui campi dell'oggetto che lo invoca oggetto.metodo(parametri) Un metodo può avere dei parametri o meno Un metodo può ritornare o meno un valore Es.: il metodo length di String ritorna lunghezza della stringa su cui viene invocato String greetings = Hello, world! ; String greetings2 = Ciao ; int n1 = greetings.length(); // n1=13 int n2 = greetings2.length(); // n2=4

20 Metodi I metodi possono accedere ai campi dell'oggetto in lettura o scrittura a seconda dell'operazione che vogliamo svolgere. I metodi che ritornano il valore di un campo per convenzione hanno un nome del tipo getnomecampo. Es: getx(), gety(). I metodi che modificano direttamente il valore di un campo per convenziona hanno un nome del tipo setnomecampo. Es: setx(10), sety(30). Metodi che modificano il valore di uno o più campi di un oggetto si dicono con side effects o mutators. Rectangle box = new Rectangle(); box.setwidth(10); box.setheight(20); box.translate(5,10); // x=x+5, y=y+10 System.out.println(box.getX()); //stampa 5

21 Variabili di tipo oggetto e primitive Le variabili di tipo oggetto, se inizializzate, memorizzano la posizione di un oggetto in memoria (riferimento all'oggetto) o null (riferimento nullo). Tutti gli oggetti vengono memorizzati nello heap. Il costrutto new, usato per creare un oggetto, ritorna un riferimento al nuovo oggetto creato. Diverse variabili di tipo oggetto possono condividere un riferimento ad uno stesso oggetto. In Java non abbiamo esclusivamente oggetti, ma lavoriamo anche con valori di tipo primitivo (numeri interi, virgola mobile, booleani, caratteri). In questo caso la variabile contiene un valore del loro tipo.

22 Variabili di tipo oggetto e primitive Rectangle box1 = new Rectangle (0,0,10,10); Rectangle box2 = box1; Rectangle box3 = null; box1.setx(2); System.out.println(box2.getX()); //stampa 2 e non 0 int width = 10; int height = width; height = 2; System.out.println(width); //stampa 10 box3.sety(0); //errore a run time box1= box2= box3= width= height= null Rectangle x=0 y=0 width=10 height=10...

23 Main Un programma è composto da più classi La classe applicazione è quella che ha il metodo statico main, da cui parte la computazione. Per eseguire il programma bisogna invocare la virtual machine passando una classe applicazione (es: java HelloWorld) I parametri del main identificano i paramatri passati all'applicazione in fase di esecuzione public class HelloWorld { } public static void main(string[] args){ //stampa in console un messaggio System.out.println( Hello, World! ); }

24 Classi di libreria Il codice Java viene organizzato in librerie (packages) Un package può essere una directory un speciale archivio jar Importiamo una classe specificando i nomi del package e della classe import java.awt.rectangle; Le classi del package java.lang sono importante in automatico. Ne fanno parte per esempio String e System. I package seguono un'organizzazione gerarchica. Possiamo avere sotto-package di altri package (es: java.awt.event) Possiamo importare tutte le classi di un package (ma non verranno inclusi in automatico i sotto-package) import java.awt.*; import java.awt.event.*;

25 Documentazione Java Le librerie Java sono ben documentate. La documentazione on-line (javadoc) include una descrizione dei package e delle relative classi (campi, metodi e costruttori con accesso non privato)

26 Documentazione Java

27 Documentazione Java

28 Documentazione Java

29 Documentazione Java

Programmazione AA 2012 2013

Programmazione AA 2012 2013 Programmazione ad Oggetti AA 2012 2013 Contenuti del corso Modulo A Tecniche di programmazione Docente: Prof. Michele Bugliesi Modulo B Tecniche di progetto Docente: Prof. Alessandro Roncato Contenuti

Dettagli

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

Linguaggio Java. Robusto. Orientato agli oggetti. Protegge e gestisce dagli errori. Non permette costrutti pericolosi Linguaggio Java Robusto Non permette costrutti pericolosi Eredità Multipla Gestione della Memoria Orientato agli oggetti Ogni cosa ha un tipo Ogni tipo è un oggetto (quasi) Protegge e gestisce dagli errori

Dettagli

Primi programmi in Java. Lezione IV

Primi programmi in Java. Lezione IV Primi programmi in Java Lezione IV Scopo della lezione Realizzare dei semplici programmi scritti in Java. Esercitarsi nelle operazioni necessarie per passare dalla scrittura di codice Java all esecuzione

Dettagli

Introduzione a Classi e Oggetti

Introduzione a Classi e Oggetti Introduzione a Classi e Oggetti Oggetto: concetto astratto Entità di un programma dotata di tre proprietà caratteristiche stato informazioni conservate nell oggetto condizionano il comportamento dell oggetto

Dettagli

Java: Compilatore e Interprete

Java: Compilatore e Interprete Java: Compilatore e Interprete Java Virtual Machine Il bytecode non è Linguaggio Macchina. Per diventarlo, deve subire un ulteriore trasformazione che viene operata dall interprete Java in modalità JIT

Dettagli

PROGETTO LAUREE SCIENTIFICHE

PROGETTO LAUREE SCIENTIFICHE 1 PROGETTO LAUREE SCIENTIFICHE Write once, write everywhere è il motto dei progettisti del linguaggio java. Infatti questo linguaggio è il risultato dell esigenza di programmare per quello che si può chiamare

Dettagli

Scrivere un programma in Java

Scrivere un programma in Java Programmare in JAVA Leonardo Rigutini Dipartimento Ingegneria dell Informazione Università di Siena Via Roma 56 53100 SIENA uff. 0577 234850 - interno: 7102 Stanza 119 rigutini@dii.unisi.it http://www.dii.unisi.it/~rigutini/

Dettagli

Programmazione ad oggetti

Programmazione ad oggetti DAIS Univ. Ca' Foscari Venezia Programmazione ad oggetti Samuel Rota Bulò Classi astratte Le classi astratte sono un ibrido tra le classi concrete e le interfacce. Hanno le stesse caratteristiche di una

Dettagli

Oggetti Lezione 3. aspetti generali e definizione di classi I

Oggetti Lezione 3. aspetti generali e definizione di classi I Programmazione a Oggetti Lezione 3 Il linguaggio Java: aspetti generali e definizione di classi I Sommario Storia e Motivazioni Definizione di Classi Campi e Metodi Istanziazione di oggetti Introduzione

Dettagli

Il linguaggio di programmazione JAVA

Il linguaggio di programmazione JAVA Introduzione a JAVA Dott. Ing. Leonardo Rigutini Dipartimento Ingegneria dell Informazione Università di Siena Via Roma 56 53100 SIENA Uff. 0577233606 rigutini@dii.unisi.it http://www.dii.unisi.it/~rigutini/

Dettagli

Java: Compilazione e Traduzione. Fondamenti di Informatica L-B Esercitazione n 3 Introduzione a JAVA. C: Editing, compilazione, esecuzione

Java: Compilazione e Traduzione. Fondamenti di Informatica L-B Esercitazione n 3 Introduzione a JAVA. C: Editing, compilazione, esecuzione Fondamenti di Informatica L-B Esercitazione n 3 Introduzione a JAVA A.A. 2007/08 Tutor: Barbara Pettazzoni barbara.pettazzoni@studio.unibo.it Java: Compilazione e Traduzione Editing, compilazione, esecuzione

Dettagli

Fondamenti di programmazione in Java. Lezione III

Fondamenti di programmazione in Java. Lezione III Fondamenti di programmazione in Java Lezione III Scopo della lezione Descrivere gli strumenti che utilizzeremo nel resto del corso per sviluppare programmi in java UltraEdit Java SDK Imparare a scrivere

Dettagli

introduzione alla programmazione in Java classi, oggetti ed altro

introduzione alla programmazione in Java classi, oggetti ed altro introduzione alla programmazione in Java classi, oggetti ed altro nomi file ed estensioni file.java: sorgenti Java creati con editor javac.exe: compilatore Java es.: per compilare il sorgente in pippo.java

Dettagli

Appunti dei corsi di Programmazione di Rete Sistemi di elaborazione: Reti II

Appunti dei corsi di Programmazione di Rete Sistemi di elaborazione: Reti II Appunti dei corsi di Programmazione di Rete Sistemi di elaborazione: Reti II PROF. G. BONGIOVANNI 0) INTRODUZIONE AL LINGUAGGIO JAVA PER PROGRAMMATORI C++...2 0.1) Caratteristiche principali... 2 0.1.1)

Dettagli

Programmazione in Java Parte I: Fondamenti

Programmazione in Java Parte I: Fondamenti Programmazione in Java Parte I: Fondamenti Lezione 1 Dott. Marco Faella Riferimenti Testi consigliati: Progettazione del software e design pattern in Java di C.S. Horstmann Apogeo Gli esempi di codice

Dettagli

INTRODUZIONE INTRODUZIONE JAVA JAVA

INTRODUZIONE INTRODUZIONE JAVA JAVA INTRODUZIONE INTRODUZIONE Lo sviluppo di applicazioni complesse porta a costruire moduli software sempre più potenti e versatili, che possano essere riutilizzati in numerosi progetti I linguaggi ad oggetti

Dettagli

Classi ed Oggetti in JAVA

Classi ed Oggetti in JAVA Classi ed Oggetti in JAVA Dott. Ing. Leonardo Rigutini Dipartimento Ingegneria dell Informazione Università di Siena Via Roma 56 53100 SIENA Uff. 0577233606 rigutini@dii.unisi.it www.dii.unisi.it/~rigutini/

Dettagli

Struttura di un programma Java

Struttura di un programma Java Struttura di un programma Java Un programma in Java è un insieme di dichiarazioni di classi. Una classe non può contenere direttamente delle istruzioni, ma può contenere la dichiarazione di metodi, che

Dettagli

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

Guida all uso dell ambiente di sviluppo 1 integrato o IDE. JCreator LE 4.50 Guida all uso dell ambiente di sviluppo 1 integrato o IDE JCreator LE 4.50 Inizializzazione: creazione del nuovo progetto e del file sorgente in ambiente JCreator Al lancio del programma si apre la finestra

Dettagli

Prova Finale a.a. 2011/2012. Laboratorio 1: Introduzione a Java e Eclipse

Prova Finale a.a. 2011/2012. Laboratorio 1: Introduzione a Java e Eclipse Prova Finale a.a. 2011/2012 Laboratorio 1: Introduzione a Java e Eclipse 1 Java 6 Standard Edition Linguaggio Java (... (javac, Tool di sviluppo Librerie per l'interfaccia grafica Librerie di base Macchina

Dettagli

13 - Gestione della Memoria nella Programmazione Orientata agli Oggetti

13 - Gestione della Memoria nella Programmazione Orientata agli Oggetti 13 - Gestione della Memoria nella Programmazione Orientata agli Oggetti Programmazione e analisi di dati Modulo A: Programmazione in Java Paolo Milazzo Dipartimento di Informatica, Università di Pisa http://www.di.unipi.it/

Dettagli

Linguaggio e Piattaforma Java

Linguaggio e Piattaforma Java Linguaggio e Piattaforma Java Davide Di Ruscio Dipartimento di Informatica Università degli Studi dell Aquila davide.diruscio@univaq.it. Sommario 2 2» Tecnologia Java: Linguaggio e Piattaforma» Java Virtual

Dettagli

Programmare in Java. Olga Scotti

Programmare in Java. Olga Scotti Programmare in Java Olga Scotti Linguaggi di programmazione linguaggio macchina assembler linguaggi ad alto livello Linguaggi ad alto livello istruzioni comprensibili linguaggio simile a quello naturale

Dettagli

Progettazione di classi

Progettazione di classi Progettazione di classi Scegliere una classe Una classe rappresenta un singolo concetto Esempi: Una classe puo` rappresentare un concetto matematico Point Rectangle Ellipse Una classe puo` rappresentare

Dettagli

Java? Sì, grazie. Scopo del corso

Java? Sì, grazie. Scopo del corso Modulo di Java? Sì, grazie Il linguaggio di Internet? Portabilità su qualunque piattaforma (non solo calcolatori): It works everywhere Supporto e disponibilità di strumenti, librerie e documentazione garantiti

Dettagli

! Programmazione strutturata ! TDA. ! Classi, incapsulamento, ! OO. ! Scambio messaggi, eredità, polimorfismo. ! OO in Java

! Programmazione strutturata ! TDA. ! Classi, incapsulamento, ! OO. ! Scambio messaggi, eredità, polimorfismo. ! OO in Java Riassunto Rassegna API - 1 Stefano Mizzaro Dipartimento di matematica e informatica Università di Udine http://www.dimi.uniud.it/mizzaro/ mizzaro@uniud.it Programmazione, lezione 17 3 maggio 2015! Programmazione

Dettagli

IL LINGUAGGIO JAVA: CARATTERISTICHE

IL LINGUAGGIO JAVA: CARATTERISTICHE CHE COS È JAVA È un linguaggio (e relativo ambiente di programmazione) definito dalla Sun Microsystems per permettere lo sviluppo di applicazioni sicure, performanti e robuste su piattaforme multiple,

Dettagli

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

public class Hello { public static void main(string[] args){ // visualizza un messaggio sulla finestra di // console System.out. javac Hello.java javac.exe javac.exe java Hello Hello, World! java.exe java.exe console public HelloWorld InsiemeDiCaratteri ContoPersonalizzato HelloworldHelloWorld HelloWorld class classpublic public

Dettagli

Corso Base. Liceo Norberto Rosa Bussoleno Prof. Angelo GIORGIO

Corso Base. Liceo Norberto Rosa Bussoleno Prof. Angelo GIORGIO Corso Base Liceo Norberto Rosa Bussoleno Prof. Angelo GIORGIO Java Java è un Linguaggio di Programmazione orientato agli oggetti. Un Linguaggio di Programmazione è un linguaggio ad alto livello, dotato

Dettagli

R. Focardi 2002 Laboratorio di Ingegneria del Software Slide 1. Applicazioni = programmi stand-alone

R. Focardi 2002 Laboratorio di Ingegneria del Software Slide 1. Applicazioni = programmi stand-alone Il linguaggio Java Nato nel maggio 95 (James Gosling & al.) Orientato ad oggetti, basato sulle classi, concorrente Fortemente tipato: distinzione chiara tra errori statici ed errori dinamici Ad alto livello:

Dettagli

Le variabili. Olga Scotti

Le variabili. Olga Scotti Le variabili Olga Scotti Cos è una variabile Le variabili, in un linguaggio di programmazione, sono dei contenitori. Possono essere riempiti con un valore che poi può essere riletto oppure sostituito.

Dettagli

Corso di Laurea Ingegneria Informatica Fondamenti di Informatica

Corso di Laurea Ingegneria Informatica Fondamenti di Informatica Corso di Laurea Ingegneria Informatica Fondamenti di Informatica Dispensa 19 Ricorsione A. Miola Marzo 2012 http://www.dia.uniroma3.it/~java/fondinf/ Ricorsione 1 Contenuti q Funzioni e domini definiti

Dettagli

Strumenti per la programmazione

Strumenti per la programmazione Editing del programma Il programma deve essere memorizzato in uno o più files di testo editing codice sorgente 25 Traduzione del programma Compilazione: è la traduzione effettuata da un compilatore Un

Dettagli

Java:Struttura di Programma. Fabio Scanu a.s. 2014/2015

Java:Struttura di Programma. Fabio Scanu a.s. 2014/2015 Java:Struttura di Programma Fabio Scanu a.s. 2014/2015 Altre Attenzioni da riservare Java è Case Sensitive: La variabile «a» e la variabile «A» sono diverse Java ha alcune regole di scrittura: I nomi delle

Dettagli

Esercizi Java. class somma2 { static int somma(int a,int b) {return a+b; }

Esercizi Java. class somma2 { static int somma(int a,int b) {return a+b; } Java è un linguaggio di programmazione c indipendente dalla piattaforma, ovvero un linguaggio di programmazione che permette di compilare i programmi una volta sola e di installarli su computer che usano

Dettagli

Introduzione alla programmazione in Java

Introduzione alla programmazione in Java Introduzione alla programmazione in Java 1 Programmare ad oggetti La programmazione come attività di creazione di modelli. I concetti di classe, oggetto e scambio di messaggi. Un primo esempio di programma

Dettagli

12 - Introduzione alla Programmazione Orientata agli Oggetti (Object Oriented Programming OOP)

12 - Introduzione alla Programmazione Orientata agli Oggetti (Object Oriented Programming OOP) 12 - Introduzione alla Programmazione Orientata agli Oggetti (Object Oriented Programming OOP) Programmazione e analisi di dati Modulo A: Programmazione in Java Paolo Milazzo Dipartimento di Informatica,

Dettagli

Oggi. Programmazione e laboratorio: introduzione al corso. Docenti: laboratorio. Docenti: teoria. Il corso. Orario.

Oggi. Programmazione e laboratorio: introduzione al corso. Docenti: laboratorio. Docenti: teoria. Il corso. Orario. Programmazione e laboratorio: introduzione al corso Stefano Mizzaro Dipartimento di matematica e informatica Università di Udine http://www.dimi.uniud.it/mizzaro mizzaro@dimi.uniud.it Programmazione per

Dettagli

La prima applicazione Java con NetBeans IDE. Dott. Ing. M. Banci, PhD

La prima applicazione Java con NetBeans IDE. Dott. Ing. M. Banci, PhD La prima applicazione Java con NetBeans IDE Dott. Ing. M. Banci, PhD Creare la prima applicazione 1. Creare un progetto: Quando si crea un progetto IDE occorre creare un ambiente nel quale costruire e

Dettagli

La velocità di una carovana

La velocità di una carovana Programmazione A.A. 2002-03 I linguaggio Java ( Lezione X, Parte I ) Il primo programma Prof. Giovanni Gallo Dr. Gianluca Cincotti Dipartimento di Matematica e Informatica Università di Catania e-mail

Dettagli

15 - Packages. Programmazione e analisi di dati Modulo A: Programmazione in Java. Paolo Milazzo

15 - Packages. Programmazione e analisi di dati Modulo A: Programmazione in Java. Paolo Milazzo 15 - Packages Programmazione e analisi di dati Modulo A: Programmazione in Java Paolo Milazzo Dipartimento di Informatica, Università di Pisa http://www.di.unipi.it/ milazzo milazzo di.unipi.it Corso di

Dettagli

Introduzione a classi e oggetti

Introduzione a classi e oggetti 2 Introduzione a classi e oggetti Obiettivi del capitolo Capire i concetti di classe e oggetto Apprendere la differenza tra oggetti e riferimenti a oggetti Acquisire familiarità con il procedimento di

Dettagli

Info Architettura, JVM Installazione JDK (Windows, Linux) Hello world!

Info Architettura, JVM Installazione JDK (Windows, Linux) Hello world! Info Architettura, JVM Installazione JDK (Windows, Linux) Hello world! Laboratorio di Programmazione Esercitazioni - Iuri Frosio - frosio@dsi.unimi.it 1 Info Orario: Lunedì (8,30) 9,00 12,30, Aula 309

Dettagli

Programmazione Java Avanzata Concetti su Java

Programmazione Java Avanzata Concetti su Java Programmazione Java Avanzata Concetti su Java Ing. Giuseppe D'Aquì Testi di Riferimento Java ( R. Liguori, P. Liguori), O'Reilly Hops Tecniche Nuove (2008) Java Virtual Machine Il codice scritto in Java

Dettagli

Un primo programma Java. Introduzione alla programmazione in Java. Programmi e mondo reale. Programmare ad oggetti. I programmi come modelli

Un primo programma Java. Introduzione alla programmazione in Java. Programmi e mondo reale. Programmare ad oggetti. I programmi come modelli 4 Un primo programma Java Introduzione alla programmazione in Java class Program1 { System.out.println("Benvenuti al corso"); 1 5 Programmi e mondo reale Programmare ad oggetti Il codice di un programma

Dettagli

Informatica. Terzo anno Prof. A. Longheu

Informatica. Terzo anno Prof. A. Longheu Informatica Terzo anno Prof. A. Longheu INTRODUZIONE AL LINGUAGGIO JAVA Originariamente, il progetto che avrebbe portato al linguaggio Java era noto come progetto Green Nome del progetto Sun con l obiettivo

Dettagli

14 - Packages. Programmazione e analisi di dati Modulo A: Programmazione in Java. Paolo Milazzo

14 - Packages. Programmazione e analisi di dati Modulo A: Programmazione in Java. Paolo Milazzo 14 - Packages Programmazione e analisi di dati Modulo A: Programmazione in Java Paolo Milazzo Dipartimento di Informatica, Università di Pisa http://www.di.unipi.it/ milazzo milazzo di.unipi.it Corso di

Dettagli

Programmazione. Programmare ad oggetti. Programmi e calcolatori. Focalizzazione del corso. Alcuni linguaggi famosi. Programmi e linguaggi

Programmazione. Programmare ad oggetti. Programmi e calcolatori. Focalizzazione del corso. Alcuni linguaggi famosi. Programmi e linguaggi 1 Programmazione Anno accademico 2002-2003 Orario delle lezioni: Mercoledì: 16-19, Giovedì: 16-19 Prof. Gerardo Canfora canfora@unisannio.it Libro di testo: David Arnow, Gerald Weiss Introduzione alla

Dettagli

Appunti di Informatica www.mimmocorrado.it 1

Appunti di Informatica www.mimmocorrado.it 1 Installare Java Il programma può essere scaricato dal seguente indirizzo: http://www.java.com/it/download/windows_ie.jsp?locale=it&host=www.java.com Per installare la JDK è necessario: 1. scaricare il

Dettagli

Linguaggi 2 e laboratorio

Linguaggi 2 e laboratorio Linguaggi 2 e laboratorio Docente: Leonardo Badia Contatti: leonardo.badia@gmail.com Pagina web del corso: www.unife.it/scienze/informatica/ insegnamenti/linguaggi-2-laboratorio Argomenti del corso: Java

Dettagli

Corso di Laurea Ingegneria Civile Fondamenti di Informatica. Traduzione ed esecuzione di programmi. Dispensa 08

Corso di Laurea Ingegneria Civile Fondamenti di Informatica. Traduzione ed esecuzione di programmi. Dispensa 08 Corso di Laurea Ingegneria Civile Fondamenti di Informatica Dispensa 08 Traduzione ed esecuzione di programmi Traduzione ed esecuzione di programmi 1 Nota bene Alcune parti del presente materiale didattico

Dettagli

RMI: metodi equals e hashcode

RMI: metodi equals e hashcode RMI: metodi equals e hashcode Per verificare se due oggetti remoti contengono gli stessi dati, la chiamata indirizzata al metodo equals() avrebbe bisogno di contattare i server dove si trovano gli oggetti

Dettagli

Eclipse. Avviare un progetto e compilare un semplice programma

Eclipse. Avviare un progetto e compilare un semplice programma Eclipse Avviare un progetto e compilare un semplice programma Descrizione di Eclipse Eclipse è un ambiente di sviluppo che facilita la scrittura ed il debug di programmi java Permette di: Scrivere il codice

Dettagli

Telematica II 2. Introduzione al JAVA

Telematica II 2. Introduzione al JAVA Concetto di portabilità tradizionale (p.e. linguaggio C/C++) Telematica II 2. Introduzione al JAVA codice C/C++ Compilatore (Linux) Eseguibile (Linux) Linux Compilatore (Pentium) Eseguibile (Win32) Windows

Dettagli

Programmazione distribuita

Programmazione distribuita Programmazione distribuita 1 Architettura client-server È il modo classico di progettare applicazioni distribuite su rete Server offre un servizio "centralizzato" attende che altri (client) lo contattino

Dettagli

Guida allo svolgimento di esercizi con Java. JAVA for DUCK

Guida allo svolgimento di esercizi con Java. JAVA for DUCK JAVA for DUCK Pag.1-130 Appunti Prof.Grazia Cesarini (versione β) 12/07/2014 Indice Introduzione all'uso di Java... 7 La portabilità di JAVA... 7 Ambiente di sviluppo... 9 Struttura dei programmi... 9

Dettagli

Le motivazioni, che guidarono lo sviluppo di Java, erano quelle di creare un linguaggio semplice e familiare. Esso è

Le motivazioni, che guidarono lo sviluppo di Java, erano quelle di creare un linguaggio semplice e familiare. Esso è JAVA Introduzione Java è un linguaggio di alto livello e orientato agli oggetti, creato dalla Sun Microsystem nel 1995. Le motivazioni, che guidarono lo sviluppo di Java, erano quelle di creare un linguaggio

Dettagli

Java Virtual Machine

Java Virtual Machine Java Virtual Machine programmi sorgente: files.java compilatore files.class bytecode linker/loader bytecode bytecode Java API files.class interprete macchina ospite Indipendenza di java dalla macchina

Dettagli

Java. Traditional portability (ideal)

Java. Traditional portability (ideal) 1 Java JAVA: una introduzione 2 Traditional portability (ideal) C-code (Linux) (Pentium) Executable (Linux) Executable (Win32) Linux Windows 32 (Mac) Executable (Mac) Mac 1 1 3 Portability of Java programs

Dettagli

Class File bytecode. Class loader. Verifier JIT. Run-time System

Class File bytecode. Class loader. Verifier JIT. Run-time System Un file.class è ottenuto compilando il codice sorgente Java. Esso contiene il bytecode, ovvero la sequenza di istruzioni per la JVM, ed anche molte informazioni simboliche. Il bytecode è il linguaggio

Dettagli

Mobilità di Codice. Massimo Merro Programmazione di Rete 128 / 144

Mobilità di Codice. Massimo Merro Programmazione di Rete 128 / 144 Mobilità di Codice Abbiamo già visto come un dato host possa trasmettere un oggetto (serializzabile) ad un altro host. Quest ultimo potrà eseguire l oggetto pur non possedendo il bytecode della classe

Dettagli

Algoritmi di Ricerca. Esempi di programmi Java

Algoritmi di Ricerca. Esempi di programmi Java Fondamenti di Informatica Algoritmi di Ricerca Esempi di programmi Java Fondamenti di Informatica - D. Talia - UNICAL 1 Ricerca in una sequenza di elementi Data una sequenza di elementi, occorre verificare

Dettagli

Lezione 2 Strumenti di sviluppo

Lezione 2 Strumenti di sviluppo Lezione 2 Strumenti di sviluppo Prima di inoltrarsi nello studio di Java, bisogna procurarsi tutti gli strumenti di sviluppo necessari. In questa lezione sono illustrate le soluzioni software di Sun Microsystems,

Dettagli

JAVA Linguaggio e Piattaforma

JAVA Linguaggio e Piattaforma JAVA Linguaggio e Piattaforma romina.eramo@univaq.it http://www.di.univaq.it/romina.eramo/tlp Roadmap Tecnologia Java: Linguaggio e Piattaforma Java Virtual Machine Storia Struttura di un programma Java

Dettagli

Esercitazione n 4. Obiettivi

Esercitazione n 4. Obiettivi Esercitazione n 4 Obiettivi Progettare e implementare per intero un componente software in Java Linguaggio Java: Classi astratte Utilizzo di costruttori e metodi di superclasse Polimorfismo Esempio guida:

Dettagli

GESTIONE DEI PROCESSI

GESTIONE DEI PROCESSI Sistemi Operativi GESTIONE DEI PROCESSI Processi Concetto di Processo Scheduling di Processi Operazioni su Processi Processi Cooperanti Concetto di Thread Modelli Multithread I thread in Java Concetto

Dettagli

Informatica. Fondamenti della Programmazione in Java. Leonardo Vanneschi

Informatica. Fondamenti della Programmazione in Java. Leonardo Vanneschi Informatica Fondamenti della Programmazione in Java Leonardo Vanneschi 1 1. Fondamenti Il primo programma in Java Il programma che stampa a video una sequenza di caratteri (o stringa): class Esempio {

Dettagli

Esercitazione di Sistemi Distribuiti: Java RMI

Esercitazione di Sistemi Distribuiti: Java RMI Esercitazione di Sistemi Distribuiti: Java RMI Anno Accademico 2007-08 Marco Comerio comerio@disco.unimib.it Richiami Teorici Oggetti distribuiti 2-16 Usuale organizzazione di un oggetto remoto con un

Dettagli

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

Fondamenti di Informatica 1. Prof. B.Buttarazzi A.A. 2010/2011 Fondamenti di Informatica 1 Prof. B.Buttarazzi A.A. 2010/2011 Sommario Installazione SOFTWARE JDK ECLIPSE 03/03/2011 2 ALGORITMI E PROGRAMMI PROBLEMA ALGORITMO PROGRAMMA metodo risolutivo linguaggio di

Dettagli

Ricorsione. Laboratorio di Programmazione II Corso di Laurea in Bioinformatica Dipartimento di Informatica - Università di Verona.

Ricorsione. Laboratorio di Programmazione II Corso di Laurea in Bioinformatica Dipartimento di Informatica - Università di Verona. Laboratorio di Programmazione II Corso di Laurea in Bioinformatica Dipartimento di Informatica - Università di Verona Sommario Implementazione di Utilizzo ricorsione per processare dati in java vs. multipla

Dettagli

Corso di Informatica

Corso di Informatica Corso di Informatica Modulo T1 B2 Significato e proprietà della OOP 1 Prerequisiti Concetto ed elementi della comunicazione Allocazione e deallocazione della memoria Compilazione di un programma Spazio

Dettagli

Programmazione ad Oggetti. Java Parte I

Programmazione ad Oggetti. Java Parte I Programmazione ad Oggetti Java Parte I Overview Caratteristiche generali 1 Caratteristiche generali Un moderno linguaggio orientato agli oggetti Pensato per lo sviluppo di applicazioni che devono essere

Dettagli

Rappresentazione delle informazioni

Rappresentazione delle informazioni Rappresentazione delle informazioni Rappresentazione delle informazioni L informatica si occupa di rappresentare ed elaborare informazioni diverse: numeri caratteri audio immagini video I caratteri: ASCII

Dettagli

RMI Remote Method Invocation

RMI Remote Method Invocation RMI Remote Method Invocation [Pagina intenzionalmente vuota] (1 12 2004) slide 4:1/18 (p.106) Un applicazione RMI è un applicazione distribuita ad oggetti. Applicazione RMI tipica, strutturata in: server:

Dettagli

Introduzione ad Eclipse

Introduzione ad Eclipse Introduzione ad Eclipse Corso di Metodi Avanzati di Programmazione 2014-2015 Docente: Dr. Annalisa Appice Tutor di Laboratorio: dott. Roberto Corizzo Ambiente Eclipse Sommario Java: ambiente Eclipse L

Dettagli

Linguaggi Corso M-Z - Laurea in Ingegneria Informatica A.A. 2007-2008. Esercitazione. Programmazione Object Oriented in Java

Linguaggi Corso M-Z - Laurea in Ingegneria Informatica A.A. 2007-2008. Esercitazione. Programmazione Object Oriented in Java Linguaggi Corso M-Z - Laurea in Ingegneria Informatica A.A. 2007-2008 Alessandro Longheu http://www.diit.unict.it/users/alongheu alessandro.longheu@diit.unict.it Programmazione Object Oriented in Java

Dettagli

Introduzione al linguaggio

Introduzione al linguaggio Capitolo 1 Introduzione al linguaggio Java è un moderno linguaggio di programmazione le cui origini risalgono al 1991, quando presso Sun Microsystems un team di programmatori, formato principalmente da

Dettagli

Java. Programmazione orientata agli oggetti

Java. Programmazione orientata agli oggetti Java Programmazione orientata agli oggetti Nella programmazione orientata agli oggetti (OOP), un applicazione consiste di una collezione di oggetti interagenti, ognuno dei quali comprende una struttura

Dettagli

Corso Java > Primo approccio al codice scritto da Claudio De Sio Cesari

Corso Java > Primo approccio al codice scritto da Claudio De Sio Cesari Corso Java > Primo approccio al codice scritto da Claudio De Sio Cesari Diamo subito uno sguardo alla classica applicazione "Hello World". Trattasi del tipico primo programma che rappresenta il punto di

Dettagli

esercizi Esercizi / problemi

esercizi Esercizi / problemi Sistemi informativi applicati (reti di calcolatori): esercizi 1 Esercizi / problemi 1. Creare un applicazione che calcoli la media aritmetica dei seguenti valori interi: 35, 117, 23 e ne visualizzi il

Dettagli

Sistemi Operativi STRUTTURA DEI SISTEMI OPERATIVI 3.1. Sistemi Operativi. D. Talia - UNICAL

Sistemi Operativi STRUTTURA DEI SISTEMI OPERATIVI 3.1. Sistemi Operativi. D. Talia - UNICAL STRUTTURA DEI SISTEMI OPERATIVI 3.1 Struttura dei Componenti Servizi di un sistema operativo System Call Programmi di sistema Struttura del sistema operativo Macchine virtuali Progettazione e Realizzazione

Dettagli

Libreria standard Java possiede un enorme libreria di classi standard organizzata in vari package che raccolgono le classi secondo un organizzazione

Libreria standard Java possiede un enorme libreria di classi standard organizzata in vari package che raccolgono le classi secondo un organizzazione Libreria standard Java possiede un enorme libreria di classi standard organizzata in vari package che raccolgono le classi secondo un organizzazione basata sul campo d utilizzo. I principali package sono:

Dettagli

Luca Mari, Sistemi informativi applicati (reti di calcolatori) appunti delle lezioni. Da JavaScript a Java

Luca Mari, Sistemi informativi applicati (reti di calcolatori) appunti delle lezioni. Da JavaScript a Java Sistemi informativi applicati (reti di calcolatori): appunti delle lezioni Da JavaScript a Java Versione 3.4.05 Per la prima lezione in aula e la prima esercitazione in laboratorio 1 Da JavaScript a Java

Dettagli

Java per programmatori C++

Java per programmatori C++ 1 of 10 Java per programmatori C++ autore: Matteo Lucarelli ultima versione su: matteolucarelli.net Architettura e concetti generali Cosa scaricare ed installare Tutti gli strumenti per la programmazione

Dettagli

Linguaggi e Laboratorio. Panoramica su Java

Linguaggi e Laboratorio. Panoramica su Java Linguaggi e Laboratorio Laurea in Ingegneria Telematica Università Kore di Enna A.A. 2009-2010 Alessandro Longheu http://www.diit.unict.it/users/alongheu alessandro.longheu@diit.unict.it - lezione 03 -

Dettagli

La gestione dell input/output da tastiera La gestione dell input/output da file La gestione delle eccezioni

La gestione dell input/output da tastiera La gestione dell input/output da file La gestione delle eccezioni La gestione dell input/output da tastiera La gestione dell input/output da file La gestione delle eccezioni Autore: Prof. Agostino Sorbara ITIS "M. M. Milano" Autore: Prof. Agostino Sorbara ITIS "M. M.

Dettagli

LAVORI ESTIVI DI INFORMATICA PER LA CLASSE IV Sez. Ainf (Prof. Tessore Luca)

LAVORI ESTIVI DI INFORMATICA PER LA CLASSE IV Sez. Ainf (Prof. Tessore Luca) Ministero dell Istruzione, dell Università e della Ricerca Istituto Tecnico Industriale Statale Enrico Mattei Via Martiri di Cefalonia 46-20097 San Donato Milanese Tel. 0255691411 - Fax 025276676 itisando@tin.it

Dettagli

Esercizi e soluzioni

Esercizi e soluzioni Esercizi e soluzioni Esercizi e soluzioni Esercizi modulo 1 Esercizio 1.a) HelloWorld Digitare, salvare, compilare ed eseguire il programma HelloWorld. Consigliamo al lettore di eseguire questo esercizio

Dettagli

Oggetto: MASTER DI ALTA FORMAZIONE PROFESSIONALE IN PROGRAMMATORE JAVA PARTECIPAZIONE GRATUITA

Oggetto: MASTER DI ALTA FORMAZIONE PROFESSIONALE IN PROGRAMMATORE JAVA PARTECIPAZIONE GRATUITA Oggetto: MASTER DI ALTA FORMAZIONE PROFESSIONALE IN PROGRAMMATORE JAVA PARTECIPAZIONE GRATUITA Salerno Formazione, società operante nel settore della didattica, della formazione professionale e certificata

Dettagli

Telematica II 17. Esercitazione/Laboratorio 6

Telematica II 17. Esercitazione/Laboratorio 6 Multitasking e Multithreading Telematica II 17. Esercitazione/Laboratorio 6 Multitasking si riferisce all abilità di un computer di eseguire processi (jobs) multipli in maniera concorrente si ricorda che

Dettagli

Informatica. Prof. A. Longheu. Introduzione a Java

Informatica. Prof. A. Longheu. Introduzione a Java Informatica Prof. A. Longheu Introduzione a Java 1 Code-Name Green Nome del progetto Sun con l obiettivo di fornire intelligent consumer-electronic devices. Il risultato fu Oak Un linguaggio basato su

Dettagli

19. Introduzione al multi-threading

19. Introduzione al multi-threading 19. Introduzione al multi-threading Marco Faella Dip. Ing. Elettrica e Tecnologie dell'informazione Università di Napoli Federico II Corso di Linguaggi di Programmazione II I thread I thread, o processi

Dettagli

Programmazione II. Lezione 4. Daniele Sgandurra 30/09/2011. daniele.sgandurra@iit.cnr.it

Programmazione II. Lezione 4. Daniele Sgandurra 30/09/2011. daniele.sgandurra@iit.cnr.it Programmazione II Lezione 4 Daniele Sgandurra daniele.sgandurra@iit.cnr.it 30/09/2011 1/46 Programmazione II Lezione 4 30/09/2011 Sommario 1 Esercitazione 2 Panoramica della Programmazione Ad Oggetti 3

Dettagli

Gestione delle eccezioni in Java

Gestione delle eccezioni in Java Gestione delle eccezioni in Java - Introduzione al concetto di eccezioni E possibile definire un eccezione come un situazione imprevista che il flusso di un applicazione può incontrare. È possibile gestire

Dettagli

Progetto Automi e Linguaggi Parser svliluppato con JLex e cup

Progetto Automi e Linguaggi Parser svliluppato con JLex e cup Progetto Automi e Linguaggi Parser svliluppato con JLex e cup Sviluppato da Santoro Carlo Maurizio Matricola:0108/528 Sviluppo terminato il: 18/06/06 TRACCIA DEL PROGETTO Si costruisca, utilizzando la

Dettagli

Configurare TPTP in Eclipse e testare un applicazione

Configurare TPTP in Eclipse e testare un applicazione Configurare TPTP in Eclipse e testare un applicazione Questa guida concentra la sua attenzione sul tool TPTP (Test & Performance Tools Platform) presente nell ambiente di sviluppo Eclipse. Verrà descritta

Dettagli

Livelli di astrazione

Livelli di astrazione Realizzare Classi Astrazione Perdita di dettaglio Utile nella descrizione, progettazione, implementazione e utilizzo di sistemi complessi Dettagli trascurabili vengono incapsulati in sottosistemi più semplici

Dettagli

Algebra di Boole: Concetti di base. Fondamenti di Informatica - D. Talia - UNICAL 1. Fondamenti di Informatica

Algebra di Boole: Concetti di base. Fondamenti di Informatica - D. Talia - UNICAL 1. Fondamenti di Informatica Fondamenti di Informatica Algebra di Boole: Concetti di base Fondamenti di Informatica - D. Talia - UNICAL 1 Algebra di Boole E un algebra basata su tre operazioni logiche OR AND NOT Ed operandi che possono

Dettagli

APPLICAZIONI & APPLET

APPLICAZIONI & APPLET APPLICAZIONI & APPLET Java è un ottimo linguaggio per costruire applicazioni anche non per Internet anche non grafiche ma si è diffuso storicamente, e trae forza, dal concetto di applet come piccola (?)

Dettagli

Programmazione a Oggetti Lezione 10. Ereditarieta

Programmazione a Oggetti Lezione 10. Ereditarieta Programmazione a Oggetti Lezione 10 Ereditarieta Sommario Come definire sottoclassi Costruttori Abstract Classes Final Ereditarietà: promemoria Strumento tipico dell OOP per riusare il codice e creare

Dettagli