Java: loading dinamico e reflection
|
|
- Paolo Gioacchino Morandi
- 7 anni fa
- Visualizzazioni
Transcript
1 Java: loading dinamico e reflection Scopo del corso integrativo: Presentare le caratteristiche avanzate di Java che lo rendono un linguaggio molto flessibile pur senza rinunciare ai vantaggi di un typechecking forte ed ad una fase compilativa importante.
2 Premessa Java è un linguaggio Data-Driven come tutti i linguaggi più noti (C, C++, Cobol,...). Questo significa che non è possibile scrivere un programma che modifica se stesso, attività tipica di una applicazione di AI (ad es il LISP)
3 Gradi di Dinamismo Nonostante la premessa Java permette di fare 2 cose importanti: Caricamento dinamico di classi che possono modificare il comportamento applicativo (loading dinamico) Analisi di classi ed oggetti per scoprire la loro struttura pubblica, quali metodi espongono,... (reflection)
4 Loading Dinamico Permette di realizzare una implementazione pulita del concetto di plugin. Sostanzialmente è possibile scrivere un programma che decide quali classi caricare ed utilizzare rendendo, di conseguenza, il comportamento a runtime completamente dinamico.
5 Capire con un esempio Per capire il concetto precedente facciamo un esempio. Immaginiamo una applicazione che è in grado di eseguire una delle 4 operazioni elementari fra interi (+, *, -, /). Quale delle quattro operazioni eseguire può essere configurata mediante un file.
6 Il Main //Codice non compilante per mancanza gestione eccezioni public class BigBang{ static void main (String[] args) { } String oper = Somma ; Class c = Class.forName(oper); Operazione op=(operazione)c.newinstance(); op.qualeopesegui(); op.execute(3,5);
7 L'interfaccia comune public interface Operazione { } public void qualeopesegui(); public void execute (int a, int b);
8 La classe Somma public class Somma implements Operazione { public void qualeopesegui(){ System.out.println( io faccio la somma ); } public void execute (int a, int b) { System.out.println (a+ + +b+ = +(a+b) ); } }
9 La classe Moltiplicazione public class Moltiplicazione implements Operazione { public void qualeopesegui(){ } System.out.println( io faccio la moltiplicazione ); public void execute (int a, int b) { } System.out.println (a+ * +b+ = +(a*b) );
10 Esecuzione Se eseguimo il precendente main otteniamo in output: io faccio la somma 3+5=8
11 Esecuzione 2 Se cambiamo il rigo: String operazione = somma ; con String operazione = moltiplicazione ; Otterremmo in output: io faccio la moltiplicazione 3*5=15
12 Cosa succede Il metodo Class.forName permette di caricare dinamicamente una classe spedificandone il nome mediante una stringa. La stringa può essere composta come volete ed ovviamente potrebbe essere presa da un file di configurazione dell'applicazione.
13 Cosa succede Il metodo Class.forName ritorna un oggetto di tipo Class cioè una classe. Questo significa che gli oggetti di tipo Class sono delle metaclassi che possono essere manipolate a run-time. L'oggetto c ottenuto può essere istanziato (newinstance) per ottenere un oggetto della classe che è stata caricata, cioè un oggetto della classe Somma.
14 Cosa succede se cambio LA SOLA STRINGA OPER in moltiplicazione l'applicazione modifica il suo comportamento a run-time in quanto caricherà la classe Moltiplicazione e non la classe Somma ed eseguirà l'operazione corrispondente.
15 Introspezione o Reflection Java permette di analizzare la struttura di una classe dinamicamente. In modo analogo è possibile chiedere l'esecuzione dinamica di un metodo.
16 Reflection Tutte le classi (oltre alla già nota Class) sono contenute nel package java.lang.reflect. Il package dal nome simile (java.lang.ref) non ha nulla a che fare con la reflection (ref = references).
17 Prendere la Classe dell'oggetto E' necessario avere una istanza dell'oggetto Class ( c ). E' ottenibile mediante un Class.forName oppure mediante l'applicazione del metodo getclass() ad un oggetto.
18 Metodi Principali I metodi principali di Class sono: getname(): restituisce il nome della classe fully qualified getmethods: restituisce un array di Method che rappresentano tutti i metodi accedibili di quella classe getmethod(string name, Class[] parameters): restituisce il metodo di nome name e con i tipi di parametri dati in Class getfields(): che restituisce tutti gli attributi accedibili della classe in un Field[]
19 Method Mediante l'uso della classe Method posso chiedere l'esecuzione di metodi. Es: Class c = Class.forName( Somma ); Somma s = (Operazione) c.newinstance(); Method m = c.getmethod( qualeopesegui,null); m.invoke(s,null);
20 Field Mediante l'uso della classe Field si possono leggere e scrivere gli attributi di una classe (quelli accedibili). Aereo a = new Aereo(); Class c = a.getclass(); Field f = a.getfield( velocita ); //darebbe errore. Perchè? float v = f.getfloat(a); v=v+10; f.setfloat(a,v);
21 Tutti i membri di classe Con i predenti metodi possiamo accedere e modificare i membri accedibili di una classe. E' possibile accedere anche a quelli private con la limitazione di non poter leggere o scrivere valori ma solo guardare la struttura. Questi si ottengono mediante l'uso dei metodi: c.getdeclaredmethods, c.getdeclaredfields,...
Reflection in Java. Linguaggi Corso M-Z - Laurea in Ingegneria Informatica A.A. 2009-2010
Linguaggi Corso M-Z - Laurea in Ingegneria Informatica A.A. 2009-2010 Alessandro Longheu http://www.diit.unict.it/users/alongheu alessandro.longheu@diit.unict.it Reflection in Java 1 Reflection Riflessione
DettagliProgrammazione Orientata agli Oggetti in Linguaggio Java
Programmazione Orientata agli Oggetti in Linguaggio Java Classi e Oggetti: Metafora Parte a versione 2.2 Questo lavoro è concesso in uso secondo i termini di una licenza Creative Commons (vedi ultima pagina)
DettagliLaboratorio di Programmazione 1 [Java]
Laboratorio di Programmazione 1 [Java] Prova di esame - 7 Settembre 2010 Tempo massimo: 50 minuti Si implementino in Java le classi Tavolo e Ristorante. La classe Tavolo ha i seguenti attributi: numero
DettagliOggetti e classi. Cos è un oggetto
Oggetti e classi Cos è un oggetto Basta guardarsi intorno per scoprire che il mondo reale è costituito da oggetti: libri, biciclette, giocattoli, ma anche ragazzi, bambini, fiori, gatti, cani, fiumi, montagne,
DettagliUso di metodi statici. Walter Didimo
Uso di metodi statici Walter Didimo Metodi di istanza Fino ad ora abbiamo imparato a creare oggetti e ad invocare metodi su tali oggetti i metodi venivano eseguiti dagli oggetti un metodo invocato su un
DettagliIngegneria del Software
Ingegneria del Software Analisi Object Oriented ed Elementi di Programmazione OO Origini Le metodologie ad oggi nascono negli anni 70 ma si affermano solo nelgi anni 80 grazie alla nascita dei linguaggi
DettagliEsonero del corso di Programmazione a Oggetti
Esonero del corso di Programmazione a Oggetti Roma, 1 dicembre 2005 Considerate le seguenti definizioni di classi e interfacce in Java: interface Fumetto{ void esclama(); void utile(); class Personaggio
DettagliL Allocazione Dinamica della Memoria
L Allocazione Dinamica della Memoria Maurizio Palesi DIIT Università di Catania Viale Andrea Doria 6, 95125 Catania mpalesi@diit.unict.it http://www.diit.unict.it/users/mpalesi Sommario Questo documento
DettagliJDBC. Marco Tessarotto Programmazione dei Web Server Anno Accademico
JDBC Marco Tessarotto Programmazione dei Web Server Anno Accademico 2004-2005 JDBC JDBC (Java Database Connectivity) è una API Java per accedere ed elaborare dati in una sorgente dati (di solito un db
DettagliSubtype Polymorphism. Conversioni di tipo. Conversioni di tipo. Subtyping. Conversioni di tipo. Interfacce e subtype polimorfismo
Subtype Polymorphism Interfacce e subtype polimorfismo Tipi, sottotipi e conversioni di tipo Polimorfismo e dinamic dispatch Conversioni di tipo Variabile: locazione con un tipo associato Tipo della variabile
Dettagli7 - Programmazione procedurale: Dichiarazione e chiamata di metodi ausiliari
7 - Programmazione procedurale: Dichiarazione e chiamata di metodi ausiliari Programmazione e analisi di dati Modulo A: Programmazione in Java Paolo Milazzo Dipartimento di Informatica, Università di Pisa
DettagliEsercitazione sui Design Pattern. lunedì 29 aprile 13
Esercitazione sui Design Pattern Pattern Creazionali Singleton Permette la creazione di una sola istanza della classe all interno dell applicazione Fornisce un metodo con cui ottenere l istanza Il costruttore
DettagliIntroduzione alla Programmazione in Java attraverso un esempio commentato
Corso di Studi in Informatica Programmazione 1 corso B prof. Elio Giovannetti Introduzione alla Programmazione in Java attraverso un esempio commentato Programmazione 1 B - a.a. 2002-03 53 Modello di memoria
DettagliSpecifica i tipi di oggetti a creare, utilizzando un istanza prototipo, e crea nuove istanze tramite la copia di questo prototipo.
Prototype 28 4. Prototype (GoF pag. 117) 4.1. Descrizione 4.2. Esempio Specifica i tipi di oggetti a creare, utilizzando un istanza prototipo, e crea nuove istanze tramite la copia di questo prototipo.
DettagliIL LINGUAGGIO JAVA Input, Tipi Elementari e Istruzione Condizionale
Fondamenti di Informatica IL LINGUAGGIO JAVA Input, Tipi Elementari e Istruzione Condizionale Fondamenti di Informatica - D. Talia - UNICAL 1 Lettura di dati da input In Java la lettura di dati da input
DettagliIl pattern FACTORY è un pattern di tipo Creazionale secondo la classificazione della GoF I pattern di tipo creazionali si occupano della costruzione
Il pattern Factory Il pattern FACTORY è un pattern di tipo Creazionale secondo la classificazione della GoF I pattern di tipo creazionali si occupano della costruzione degli oggetti e delle problematiche
DettagliProgrammazione. Cognome... Nome... Matricola... Prova scritta del 11 luglio 2014
Cognome................................ Nome................................... Matricola............................... Programmazione Prova scritta del 11 luglio 2014 TEMPO DISPONIBILE: 2 ore Negli esercizi
DettagliProgrammazione. Cognome... Nome... Matricola... Prova scritta del 22 settembre 2014. Negli esercizi proposti si utilizzano le seguenti classi:
Cognome................................ Nome................................... Matricola............................... Programmazione Prova scritta del 22 settembre 2014 TEMPO DISPONIBILE: 2 ore Negli
DettagliProgrammazione Java: Polimorfismo
Programmazione Java: Polimorfismo romina.eramo@univaq.it http://www.di.univaq.it/romina.eramo/tlp Roadmap Polimorfismo» Upcasting» Selezione dei metodi» Comportamento dei metodi polimorfi dentro i costruttori»
DettagliRETI DI CALCOLATORI Linguaggio Java: Eccezioni
Università degli Studi di Modena e Reggio Emilia Facoltà di Ingegneria Reggio Emilia CORSO DI RETI DI CALCOLATORI Linguaggio Java: Eccezioni Prof. Franco Zambonelli Lucidi realizzati in collaborazione
Dettagli24 - Possibili approfondimenti
24 - Possibili approfondimenti 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
DettagliEccezioni. Comportamento di default (esempio) Propagazione delle eccezioni
Università degli Studi di Roma La Sapienza Corso di Laurea in Ingegneria dell Informazione (sede di Latina) Corso di Laurea in Ingegneria dell Informazione (consorzio Nettuno) Eccezioni L esistenza di
DettagliProgrammazione ad Oggetti
Programmazione ad Oggetti Java - IO Corso di Programmazione ad Oggetti Seconda Università di Napoli Ing. Antonio Coronato ICAR - CNR Agenda Operazioni di IO da tastiera Oggetti System per le operazioni
DettagliLe basi del linguaggio Java
Corso di Laurea Ingegneria Civile Fondamenti di Informatica Dispensa 10 Le basi del linguaggio Java Aprile 2010 Le basi del linguaggio Java 1 Prerequisiti Nozioni generali sulla sintassi e semantica del
DettagliL input da tastiera in Java. Dott. Ing. M. Banci, PhD
L input da tastiera in Java Dott. Ing. M. Banci, PhD La lettura di un flusso di input in Java avviene attraverso l'oggetto in della classe System. System.in appartiene alla classe InputStream (letteralmente
Dettaglisingoli campi la classe Constructor permette di creare nuovi oggetti.
RIFLESSIONE (reflection) Il supporto alla riflessione consente a un programma di ispezionarsi ed operare su se stesso. Tale supporto comrende: la classe Class nel package java.lang; l intero package java.lang.reflect
DettagliFondamenti di Informatica I
Sapienza Università di Roma, Facoltà di Ingegneria Corso di Fondamenti di Informatica I Canale 1 (A-K) Anno Accademico 2009-2010 Corso di Laurea in Ingegneria Informatica Docente: Camil Demetrescu Esercitatore:
DettagliGuida introduttiva su Eclipse. Ing. Marco Dell'Unto marco.dellunto@iet.unipi.it
Guida introduttiva su Eclipse Ing. Marco Dell'Unto marco.dellunto@iet.unipi.it Introduzione Eclipse è un ambiente di sviluppo (IDE) multilinguaggio e multipiattaforma scritto in Java. E Open Source. Può
DettagliDefinizione di metodi in Java
Definizione di metodi in Java Un metodo in Java definisce un operazione ad alto livello (sottoprogramma) che consente di manipolare dati e oggetti. Durante la computazione effettuata da un programma, un
DettagliMini-dispensa sui puntatori in C
Mini-dispensa sui puntatori in C P. Zavarise Versione 1 ottobre 013 1 Valore e indirizzo di una variabile Ripassiamo il significato di dal punto di vista del programmatore. int a=; Viene creata una variabile
DettagliOggetti Composti (1) Oggetti Composti (2)
Oggetti Composti () Negli esempi che abbiamo visto finora gli attributi delle classi erano variabili di tipo primitivo E però possibile definire come attributi dei riferimenti ad oggetti di qualche classe
DettagliEsercitazione n 1. Obiettivi
Esercitazione n 1 Obiettivi Introduzione all utilizzo di Java Development Kit (JDK) versione 1.3 Sviluppare programmi Java tramite linea di comando Es: javac, java, jdb, javadoc Primo esempio di programma
DettagliUniversità degli studi di Bergamo. Informatica II. Programmazione Object Oriented Tutorato. Lezione 1. Dott. Marco Guarnieri Dott. Eros Magri
Università degli studi di Bergamo Informatica II Programmazione Object Oriented Tutorato Lezione 1 Dott. Marco Guarnieri Dott. Eros Magri 05.10.11 Informazioni Contatti 0guarnieri.marco0@gmail.com erosmagri@gmail.com
DettagliLaboratorio di Matematica e Informatica 1
Laboratorio di Matematica e Informatica 1 Matteo Mondini Antonio E. Porreca matteo.mondini@gmail.com porreca@disco.unimib.it Dipartimento di Informatica, Sistemistica e Comunicazione Università degli Studi
DettagliJava Native Interface Appunti
Java Native Interface Appunti Riccardo Rizzo 1/8 Introduzione L'uso delle Java Native Interface e' giustificato tutte quelle volte che una applicazione non puo' essere scritta interamente in Java. Per
DettagliProgrammazione a Oggetti e JAVA. Prof. B.Buttarazzi A.A. 2012/2013
Programmazione a Oggetti e JAVA Prof. B.Buttarazzi A.A. 2012/2013 Sommario Uso dell ambiente di sviluppo Eclipse API di Java Istruzione di scrittura Istruzione di lettura 16/01/2013 2 Installazione di
DettagliDefinizione di classi
Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 1 Dispensa E05 Definizione di classi A. Miola Novembre 2006 http://www.dia.uniroma3.it/~java/fondinf1/ Definizione di classi 1 Contenuti
DettagliLezione 6. Visibilità degli identificatori e tempo di vita degli oggetti
Lezione 6 Visibilità degli identificatori e tempo di vita degli oggetti Programmazione I Paolo Valente - 2009/2010 Ripasso dichiarazioni oggetti Finora abbiamo scritto le dichiarazioni di variabili e costanti
DettagliInformatica 3 secondo recupero 13 Settembre 2002
Informatica 3 secondo recupero 13 Settembre 2002 Nome (stampatello) Cognome (stampatello) Matr Recupero: Prima prova in itinere Seconda prova in itinere spazio per il docente Punteggi recupero prima prova
DettagliESERCIZIO: CODICE FISCALE
ESERCIZIO: CODICE FISCALE Problema: Scrivere un programma che, a partire dai dati anagrafici, calcoli il codice fiscale di una persona. Il C.F. è composto di 5 parti: tre lettere identificative del cognome
DettagliEsercizio 3. Oppure fare queste operazioni nel metodo main all interno della classe Persona.
Esercizio 3 Scrivere un programma con i seguenti requisiti. Utilizzare una classe Persona che dichiara le variabili nome, cognome, età. Si dichiari inoltre un metodo dettagli() che restituisce in una stringa
DettagliAllocazione Dinamica della Memoria
Allocazione Dinamica della Memoria Elisa Marengo Università degli Studi di Torino Dipartimento di Informatica Elisa Marengo (UNITO) Allocazione Dinamica della Memoria 1 / 10 Scelta delle variabili Quando
DettagliFondamenti VBA. Che cos è VBA
Fondamenti VBA Che cos è VBA VBA, Visual Basic for Application è un linguaggio di programmazione, inserito nelle applicazioni Office di Microsoft (Ms Word, Ms Excel, Ms PowerPoint, Visio). VBA è una implementazione
DettagliCorso sul linguaggio Java
Corso sul linguaggio Java Modulo L6 (JAVA9) 1 Introduzione alle applet 1 Prerequisiti Architettura client/server Elementi di base HTML Programmazione Java Utilizzo package awt di Java 2 1 Introduzione
DettagliCorso di Fondamenti di Informatica
Corso di Fondamenti di Informatica Il tipo puntatore; l allocazione dinamica della memoria Claudio De Stefano - Corso di Fondamenti di Informatica 1 puntatori una variabile di tipo puntatore al tipo x
DettagliSTRINGHE IN JAVA In Java, le stringhe non sono pezzi di memo-ria con dentro dei caratteri, come in C: sono oggetti appartenenti alla classe
STRINGHE IN JAVA In Java, le stringhe non sono pezzi di memo-ria con dentro dei caratteri, come in C: sono oggetti appartenenti alla classe String Una stringa Java rappresenta uno specifico valore e come
DettagliErrata Corrige di Manuale di Java 8
Errata Corrige di Manuale di Java 8 pag. 43 - par. 2.5.1 - primo riquadro che riporta linee di codice public class Punto { public Punto() //metodo costruttore { deve essere corretto come di seguito: public
DettagliCreazione, eliminazione, lettura e scrittura di file di testo
Creazione, eliminazione, lettura e scrittura di file di testo Creazione Java mette a disposizione degli sviluppatori diverse classi per lavorare con i file di testo, analizziamo le principali: java.io.file
DettagliPrimi passi col linguaggio C
Andrea Marin Università Ca Foscari Venezia Laurea in Informatica Corso di Programmazione part-time a.a. 2011/2012 Come introdurre un linguaggio di programmazione? Obiettivi: Introduciamo una macchina astratta
DettagliLaboratorio di programmazione
Laboratorio di programmazione Lezione VIII Tatiana Zolo tatiana.zolo@libero.it 1 PROGRAMMAZIONE A OGGETTI Quando si programma a oggetti si scompone il problema in sottogruppi di parti collegate che tengono
DettagliCorso di Laurea Ingegneria Informatica Fondamenti di Informatica 1
Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 1 Dispensa E03 Esempi di algoritmi e programmi A. Miola Settembre 2006 http://www.dia.uniroma3.it/~java/fondinf1/ Esempi di algoritmi e
DettagliLezione 9 programmazione in Java Classi come contenitori
Lezione 9 programmazione in Java Classi come contenitori Nicola Drago drago@sci.univr.it Dipartimento di Informatica Università di Verona Anteprima Gestione della Memoria Dati dinamici e statici Il passaggio
DettagliCorso di Laurea Ingegneria Informatica Laboratorio di Informatica
Corso di Laurea Ingegneria Informatica Laboratorio di Informatica Capitolo 4 Traduzione ed esecuzione di programmi Ottobre 2006 Traduzione ed esecuzione di programmi 1 Nota bene Alcune parti del presente
DettagliClassi Wrapper. int Integer float Float char Char byte Byte double Double. classe "wrapper"
1 Classi Wrapper classe "wrapper" int Integer float Float char Char byte Byte double Double Generano oggetti che hanno come variabile di istanza un tipo di dato primitivo con nome uguale Integer int Float
DettagliStudente (Cognome Nome):
Studente (Cognome ): Matricola: Corso di Informatica Corso di Laurea in Ingegneria Gestionale a.a. 2006-07 Primo Scritto 12 Gennaio 2007 Si noti che le soluzioni ai quesiti saranno considerate valide solo
DettagliIntroduzione alla programmazione. Walter Didimo
Introduzione alla programmazione Walter Didimo Programmi Un programma è una frase (anche molto lunga) che descrive delle azioni che devono essere svolte da un calcolatore La frase deve essere dettagliata
DettagliProgrammazione in Java. Indipendenza dalla piattaforma. Indipendenza dalla piattaforma. Autore: Roberto Fabbrica Diapo 1.
1 Programmazione in Java Java è un linguaggio di programmazione orientato agli oggetti ed indipendente dalla piattaforma. Orientato agli oggetti: segue i paradigmi della programmazione orientata agli oggetti
DettagliIngegneria del Software
Ingegneria del Software Java Relazioni Associazioni 1 Associazione Uno a Zero-Uno Un esempio Un autovettura ha al più un proprietario 0..1 Dato il verso di navigazione specificato è necessario avere una
DettagliMacchine astratte, linguaggi, interpretazione, compilazione
Macchine astratte, linguaggi, interpretazione, compilazione 1 Macchine astratte una collezione di strutture dati ed algoritmi in grado di memorizzare ed eseguire programmi componenti della macchina astratta
DettagliUnità 2 I file binari
Dare una breve descrizione dei termini introdotti: (A) CONOSCENZA TERMINOLOGICA file binari file di tipi primitivi file di oggetti serializzazione (B) CONOSCENZA E COMPETENZA Rispondere alle seguenti domande
DettagliStringhe e allocazione dinamica della memoria
Stringhe e allocazione dinamica della memoria Esercizio Scrivere un programma strings.c che legge da standard input una sequenza di parole separate da uno o più spazi, e stampa le parole lette, una per
DettagliCompute engine generici in RMI
Compute engine generici in RMI Esempio: Calcolo del prodotto scalare Un unico server offre il servizio di calcolo del prodotto scalare tra vettori di interi Un client richiede al server il calcolo del
DettagliProva di Laboratorio del [ Corso A-B di Programmazione (A.A. 2004/05) Esempio: Media Modalità di consegna:
Prova di Laboratorio del 12.1.2005 [durata 90 min.] Corso A-B di Programmazione (A.A. 2004/05) 1. Leggere da tastiera un insieme di numeri interi ed inserirli in un vettore A 2. Calcolare tramite una funzione
DettagliIL CONCETTO DI CLASSE
IL CONCETTO DI CLASSE Una CLASSE riunisce le proprietà di: componente software: può essere dotata di suoi propri dati / operazioni moduli: riunisce dati e relative operazioni, fornendo idonei meccanismi
DettagliJava: 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
DettagliARRAY RESTITUITI DA FUNZIONI
ARRAY RESTITUITI DA FUNZIONI Gli array Java possono essere restituiti come risultato di funzioni, come qualunque altro oggetto ESEMPIO int[] creatabellaquadrati(int n) ESEMPIO DI ARRAY RESTITUITO ESEMPIO
DettagliRiferimenti ad oggetti: Fondamenti di Informatica L-B Esercitazione n 4 Java: I/O, Costruttori e altro. Riferimenti ad oggetti: (Esempio)
Fondamenti di Informatica L-B Esercitazione n 4 Java: I/O, Costruttori e altro A.A. 2005/06 Tutor: Loris Cancellieri loris.cancellieri@studio.unibo.it Riferimenti ad oggetti: Cosa si può fare con i riferimenti?
DettagliLinguaggi ad oggetti (object oriented) LINGUAGGI DI PROGRAMMAZIONE: PARADIGMI DI PROGRAMMAZIONE. Programmazione ad oggetti
LINGUAGGI DI PROGRAMMAZIONE: PARADIGMI DI PROGRAMMAZIONE Anno Accademico 2000-2001 Alberto Martelli Programmazione ad Oggetti Parte I Linguaggi ad oggetti (object oriented) I linguaggi di programmazione
DettagliApplet. Applet: il termine identifica piccole applicazioni da eseguirsi all interno di un browser.
Applet IngSW0304 p.1 Applet Applet: il termine identifica piccole applicazioni da eseguirsi all interno di un browser. Una pagina web può contenere un riferimento al codice di un applet che verrà scaricato
DettagliProgrammazione Orientata agli Oggetti. Emilio Di Giacomo e Walter Didimo
Programmazione Orientata agli Oggetti Emilio Di Giacomo e Walter Didimo Una metafora dal mondo reale la fabbrica di giocattoli progettisti Un semplice giocattolo Impara i suoni Dall idea al progetto Toy
DettagliTelematica 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
DettagliGESTIONE 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
DettagliCorso di Programmazione ad Oggetti
Corso di Programmazione ad Oggetti I Template a.a. 2008/2009 Claudio De Stefano 1 Programmazione generica E una tecnica di programmazione che permette di definire una classe di oggetti (o una funzione)
DettagliProgrammazione concorrente con il linguaggio Java
Programmazione concorrente con il linguaggio Java Thread, Mutua Esclusione e Sincronizzazione Alcuni aspetti architetturali e di prestazioni Concetto di thread Un thread è un flusso di esecuzione indipendente
DettagliSviluppo di programmi
Sviluppo di programmi Per la costruzione di un programma conviene: 1. condurre un analisi del problema da risolvere 2. elaborare un algoritmo della soluzione rappresentato in un linguaggio adatto alla
DettagliR. 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:
DettagliOOP: L13: Eccezioni e loro trattamento in Java
Università degli Studi di Roma Tor Vergata Facoltà di Ingegneria Corso di Laurea in Ingegneria Informatica A. Acc. 2005/2006 Programmazione Orientata agli Oggetti OOP: L13: Eccezioni e loro trattamento
DettagliCreazione, eliminazione, lettura e scrittura di file di testo
Creazione, eliminazione, lettura e scrittura di file di testo Java mette a disposizione degli sviluppatori diverse classi per lavorare con i file di testo, analizziamo le principali: java.io.file La classe
DettagliLezione 10 programmazione in Java. Anteprima. Programmazione OO. La programmazione orientata agli Oggetti. Javadoc. Esercizi
Lezione 10 programmazione in Java Nicola Drago nicola.drago@univr.it Dipartimento di Informatica Università di Verona Anteprima La programmazione orientata agli Oggetti Cosè un oggetto I metodi Il costruttore
DettagliLa 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.
DettagliEsercizi sul modello Runtime di Java e sulla ricorsione (Fondamenti di Informatica 2 Walter Didimo) (Soluzioni)
Esercizi sul modello Runtime di Java e sulla ricorsione (Fondamenti di Informatica 2 Walter Didimo) (Soluzioni) Esercizio 1 1) Fornisci una definizione induttiva per la funzione: pari(n): N {true,false;
DettagliDefinizione di metodi
Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 1 Dispensa 9 Definizione di metodi Carla Limongelli Novembre 2006 http://www.dia.uniroma3.it/~java/fondinf1/ Definizione di metodi 1 Contenuti
DettagliProgrammazione orientata agli oggetti Classi, package e file system. Package
Programmazione orientata agli oggetti Classi, package e file system 1 Classi e file Java impone delle regole molto precise di corrispondenza tra classi e file In generale, le regole sono: Ogni classe deve
DettagliRoadmap. Ricorsione: funzioni ricorsive. Definizione di fattoriale. Definizione dei numeri Fibonacci
Modulo di Roadmap 0. Primi passi con Java 1. Buone abitudini 2. Tipi di dati primitivi 3. Uso di classi 4. Leggere e scrivere 5. Definire metodi 7. Array e Collection 8. Progetto di classi 9. Ereditarietà
DettagliEsercizi per il recupero del debito formativo:
ANNO SCOLASTICO 2005/2006 CLASSE 4 ISC Esercizi per il recupero del debito formativo: Facendo esclusivamente uso delle istruzioni del linguaggio macchina mnemonico del microprocessore INTEL 8086 viste
DettagliStudente (Cognome Nome):
Studente (Cognome Nome): Matricola: Corso di Informatica Corso di Laurea in Ingegneria Gestionale a.a. 2006-07 Primo Scritto 12 Gennaio 2007 Si noti che le soluzioni ai quesiti saranno considerate valide
DettagliIl C nel C++: Funzioni
Il C nel C++: Funzioni Funzioni (1) il concetto -> spezzare il programma in parti (procedure) una funzione è un parte di programma dotata di un nome che può essere richiamata in altri punti del programma
DettagliTHREAD. Programmazione in rete e laboratorio. Come si crea un thread
Programmazione in rete e laboratorio JAVA - Thread Alberto Martelli THREAD Thread: flusso sequenziale di controllo (esecuzione di istruzioni) in un programma. Nello stesso programma si possono far partire
DettagliLezione 8. Visibilità degli identifcatori e tempo di vita degli oggetti
Lezione 8 Visibilità degli identifcatori e tempo di vita degli oggetti Programmazione I Paolo Valente - 2014/2015 Ripasso dichiarazioni oggetti Finora abbiamo scritto le dichiarazioni di variabili e costanti
DettagliProva di Laboratorio di Programmazione
Prova di Laboratorio di Programmazione 29 gennaio 2015 ATTENZIONE: Non è possibile usare le classi del package prog.io del libro di testo Lo scopo è realizzare un programma che permetta di svolgere alcune
DettagliEsercitazione 15. Il problema dello Sleeping Barber
Università degli Studi della Calabria Corso di Laurea in Ingegneria Informatica A.A. 2001/2002 Sistemi Operativi Corsi A e B Esercitazione 15 Il problema dello Sleeping Barber E dato un salone di barbiere,
DettagliEsercizi 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
DettagliEsercizio 1: archivio CD e DVD
Esercizio 1: archivio CD e DVD Realizzare un applicazione Java per la creazione e la consultazione di un archivio di dischi ottici (CD e DVD). L applicazione riceve da standard input in maniera interattiva
DettagliConfigurazione di una LAN in ambiente Windows
Configurazione in ambiente Windows Configurazione di una LAN in ambiente Windows Appunti per le classi III inf. A cura dei proff. Mario Catalano e Paolo Franzese 1/23 Configurazione TCP/IP statica 1/2
DettagliInformatica/ Ing. Meccanica/ Edile/ Prof. Verdicchio/ 17/01/2014/ Foglio delle domande / VERSIONE 1
Informatica/ Ing. Meccanica/ Edile/ Prof. Verdicchio/ 17/01/2014/ Foglio delle domande/ VERSIONE 1 1) L approccio con cui si studia un sistema focalizzandosi solo sul rapporto tra input e output si chiama
DettagliStrumenti per la programmazione
Laboratorio di Informatica Alfonso Miola Strumenti per la programmazione Dispensa D-03 Settembre 2005 1 Contenuti Strumenti per la programmazione editing ed editor compilazione e compilatori compilazione
DettagliFondazione ITS A. Volta linguaggi Flavia Lollis 1
Si vuole simulare il funzionamento di alcune parti di un automobile della quale si conosce il tipo di carburante utilizzato, il consumo, la capacità del serbatoio e che ci permetta di simulare l inserimento
DettagliLaboratorio di Progettazione di Sistemi Software Design Patterns
TITLE Laboratorio di Progettazione di Sistemi Software Design Patterns Valentina Presutti (A-L) Riccardo Solmi (M-Z) 1 Indice degli argomenti Tipi di Design Patterns Creazionali Strutturali Comportamentali
DettagliLa nostra finestra dovrebbe essere come mostra la figura: Diamo innanzitutto un occhiata alle componenti principali di input/output:
Esercitazione N4: Costruzione di una applicazione GUI utilizzando i componenti di base per realizzare l input e l output e cioè Label, TextBox, TextArea Button e Panel (Pannelli) I componenti che utilizzeromo
DettagliLab 1: Java Multithreading
Dept. of Computer Science Lab 1: Java Multithreading Matteo Camilli matteo.camilli@unimi.it Laboratorio di Sistemi Operativi a.a. 2015/16 Università degli Studi di Bergamo 1 Outline Programmazione multithreading
Dettagli