Corso di Fondamenti di Informatica. Dispensa 9: Composizione di Classi. Prof. Domenico Rosaci
|
|
- Gennaro Serafini
- 7 anni fa
- Visualizzazioni
Transcript
1 Corso di Fondaenti di Inforatica Dispensa 9: Coposizione di Classi Prof. Doenico Rosaci
2 Coposizione di Classi In Java, la dichiarazione di un oggetto appartenente ad una deterinata classe, coporta sepliceente la creazione di un riferiento all oggetto e non la costruzione in eoria dell oggetto stesso. Esepio: Sia Materia una classe che rappresenti una ateria universitaria, e che contenga due capi, il prio rappresentante il noe della ateria e il secondo rappresentante il settore scientifico disciplinare a cui la ateria afferisce. class Materia { private String denoinazione; private String ssd; public Materia(String d, String s){ denoinazione=d; ssd=s; public Materia(Materia ){ denoinazione=.getdenoinazione(); ssd=.getssd()); public String getdenoinazione(){ return denoinazione; public void setdenoinazione(string s){ denoinazione=s; public String getssd(){ return ssd; public Materia getstatus(){ Materia =new Materia(denoinazione,ssd); return ; Syste.out.println(denoinazione+"("+ssd+")"); Si consideri la seguente istruzione, che dichiara una variabile della classe Materia. Materia ; la situazione che si crea con questa istruzione corrisponde alla creazione di una cella che contiene un indirizzo di eoria (un riferiento) ad un oggetto di classe Materia. Tuttavia, poiché l oggetto non è stato ancora creato, il riferiento contenuto nella variabile non corrisponde a nessuna cella di eoria, e viene indicato con l identificatore null.
3 null Se si vuole far puntare ad un oggetto della classe Materia, bisogna creare l oggetto usando l operatore new abbinato ad un costruttore della classe. =new Materia( Fondaenti di Inforatica, ); In seguito a questa istruzione, la variabile punta all oggetto appena creato Fondaenti di Inforatica Nell esepio di cui sopra, abbiao supposto che l oggetto a cui punta sia stato creato all indirizzo di eoria L insiee dei due valori Fondaenti di Inforatica e rappresenta lo stato dell oggetto. Adesso iaginiao di voler creare una copia di, ed a tale scopo dichiariao una seconda variabile di tipo Materia, ad esepio: Materia 1; Per ottenere che 1 abbia lo stesse stato di, potreo scrivere: 1=; Tuttavia, anche se così 1 assue lo stesso stato di, esso non rappresenta una copia dell oggetto a cui fa riferiento. Sepliceente, 1 è un secondo riferiento all oggetto puntato da Fondaenti di Inforatica L operazione che abbiao effettuato è potenzialente pericolosa. Infatti, se operiao odifiche sull oggetto attraverso 1, dobbiao essere coscienti che l oggetto odificato è lo stesso a cui anche fa riferiento. Ad esepio, se odifichiao la denoinazione dell oggetto puntato da 1 scrivendo: 1.setDenoinazione( Chiica ); possiao riscontrare il cabiaento di denoinazione anche attraverso, scrivendo: Syste.out.println(.getDenoinazione()); avendo coe effetto la visualizzazione sullo schero della stringa Chiica.
4 Per questo otivo, al fine di evitare tale effetto collaterale degli assegnaenti di riferienti, se vogliao creare una copia di un oggetto dobbiao usare new ed il costruttore: 1=new Materia(.getDenoinazione(),.getSsd()); Ottenendo la seguente situazione: 1024 Fondaenti di Inforatica 1154 Fondaenti di Inforatica 1 che produce un effettiva copia dell oggetto puntato da, assegnando tale copia al riferiento 1. Possiao ottenere una copia dell oggetto puntato da anche attraverso il costruttore di copia della classe Materia. Questo costruttore accetta in ingresso un oggetto della classe, e crea un nuovo oggetto avente lo stesso stato dell oggetto passato. Quindi l istruzione: 1=new Materia(); produce lo stesso effetto dell istruzione 1=newMateria(.getDenoinazione(),.getSsd()); Infine, un terzo odo di creare una copia dell oggetto puntato da è quello di usare un etodo getstatus() della classe Materia, che appunto crea un oggetto di classe Materia avente lo stesso stato dell oggetto che chiaa il etodo getstatus(), e restituisce un riferiento a questo nuovo oggetto. 1=.getStatus(); Ovviaente questo terzo etodo di creare una copia dell oggetto, rispetto all uso del costruttore di copia, consente di assegnare la copia ad un nuovo riferiento in qualunque oento, e non solo in fase di creazione del riferiento. Le considerazioni di cui sopra sono particolarente iportanti quando si introduce la Coposizione di classi, ovvero quando si dichiara una classe in cui alcuni capi sono oggetti di altre classi. E questo il caso, ad esepio, della classe Corso illustrata di seguito, coposta da un capo ateria di classe Materia, da un capo intero anno, e da un capo doc di classe Docente. class Docente { private String noe; private String cognoe; public Docente(String n, String c){ noe=n; cognoe=c;
5 public String getnoe(){ return noe; public String getcognoe(){ return cognoe; public Docente getstatus(){ Docente d=new Docente(noe,cognoe); return d; Syste.out.println(noe+" "+cognoe); class Corso { private Materia ateria; private int anno; private Docente doc; public Corso(Materia, int a, Docente d){ ateria=.getstatus(); anno=a; doc =d.getstatus(); public Materia getmateria(){ return ateria.getstatus(); public int getanno(){ return anno; public Docente getdocente(){ return doc.getstatus(); public Corso getstatus(){ Corso e=new Corso(ateria,anno,doc); return e; ateria.stapa(); Syste.out.println("anno:"+anno); doc.stapa(); Coe si vede, il costruttore paraetrizzato della classe Corso, per assegnare al capo ateria lo stato dell oggetto a cui fa riferiento il paraetro, non effettua una seplice assegnazione di riferiento, del
6 tipo ateria=, a invece assegna a ateria una copia dell oggetto, ottenuta invocando.getstatus. Ciò consente di creare un oggetto di classe Corso il cui capo ateria è reso indipendente dall oggetto di classe Materia usato per crearlo. Per presentare un esepio concreto in questo contesto, iaginiao di creare un oggetto di classe Materia e un oggetto di classe Docente nel odo seguente: Materia =new Materia( Fondaenti di Inforatica, ); Docente d=new Docente( Mario, Rossi ); adesso serviaoci di e di d per creare un oggetto della classe Corso: Corso c=new Corso(,2008,d); se successivaente noi volessio cabiare lo stato dell oggetto, ad esepio cabiando la denoinazione della ateria in Reti di Calcolatori, tale odifica non si rifletterà sullo stato dell oggetto c, che continuerà a contenere un riferiento alla ateria Fondaenti di Inforatica. Questo coportaento corretto è stato ottenuto procedendo coe descritto sopra nel costruttore paraetrizzato della classe Corso. Se in questo costruttore avessio scritto, invece di ateria=.getstatus, sepliceente ateria=, la odifica sull oggetto avrebbe coportato l effetto collaterale di una odifica sullo stato dell oggetto c. Per identico otivo, anche i etodi getmateria() e getdocente() della classe Corso, non restituiscono dei riferienti ai corrispondenti capi dell oggetto, a piuttosto riferienti a copie di questi capi. Infatti, supponiao coe esepio che il etodo getmateria() di Corso restituisse il capo ateria dell oggetto (usando l istruzione return ateria invece di return ateria.getstatus()). Allora l istruzione: Materia v=c.getmateria(); peretterebbe di creare un riferiento v all oggetto che rappresenta la ateria del corso c. Attraverso questo riferiento si potrebbe odificare lo stato del corso c, ad esepio scrivendo: v.setdenoinazione( Reti di Calcolatori ); Fortunataente, getmateria() restituisce solo una copia dell oggetto che rappresenta la ateria del corso c, ipedendo tale inconveniente. Di seguito sono riportate le descrizioni di altre due classi, Esae e Studente, che rappresentano due ulteriori esepi di coposizione tra classi. class Esae { private Corso corso; private int voto; public Esae(Corso c, int v){ corso=c.getstatus(); voto=v; public Corso getcorso(){ return corso.getstatus(); public int getvoto(){ return voto; public Esae getstatus(){ Esae e=new Esae(corso,voto);
7 return e; corso.stapa(); Syste.out.println("voto:"+voto); public class Studente { private String noe; private String cognoe; private int atricola; private Esae[] listaesai; public Studente(String n, String c, int, Esae e[]){ noe=n; cognoe=c; atricola=; listaesai=new Esae[e.length]; for(int i=0;i<e.length;i++) listaesai[i]=e[i].getstatus(); Syste.out.println(noe+" "+cognoe+", atricola:"+atricola); for(int i=0;i<listaesai.length;i++) listaesai[i].stapa(); public static void ain(string[] args){ Docente profrossi=new Docente("Mario","Rossi"); Docente profbianchi=new Docente("Gianni","Bianchi"); Materia Inforatica=new Materia("Inforatica",""); Materia Analisi=new Materia("Analisi","MAT/05"); Corso Inforatica08=new Corso(Inforatica,2008,profRossi); Corso Analisi08=new Corso(Analisi,2008,profBianchi); Esae[] esaipasquale=new Esae[2]; esaipasquale[0]=new Esae(Inforatica08,28); esaipasquale[1]=new Esae(Analisi08,25); Studente pasquale=new Studente("Pasquale","Verdi",126,esaiPasquale); pasquale.stapa();
PRINCIPIO DI INDUZIONE. k =. 2. k 2 n(n + 1)(2n + 1) 6
PRINCIPIO DI INDUZIONE LORENZO BRASCO Esercizio. Diostrare che per ogni n si ha nn + ) ). 2 Esercizio 2. Diostrare che per ogni n si ha 2) 2 nn + )2n + ). Soluzione. Procediao per induzione: la 2) è ovviaente
DettagliI moti. Daniel Gessuti
I oti Daniel Gessuti 1 introduzione Uno dei problei che ha interessato gli scienziati fin dall antichità e che costituisce un notevole capo d indagine della Fisica è senza dubbio quello che riguarda il
DettagliPuntatori. Obiettivi: Richiamare quanto noto sui puntatori dal modulo A Presentare l analogia tra puntatori e vettori e l aritmetica dei puntatori
Puntatori Obiettivi: Richiamare quanto noto sui puntatori dal modulo A Presentare l analogia tra puntatori e vettori e l aritmetica dei puntatori 1 Il puntatore Un tipo puntatore è un tipo scalare per
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
DettagliUnità Didattica N 16. Il comportamento dei gas perfetti
Unità Didattica N 16 Il coportaento dei gas perfetti Unità Didattica N 16 Il coportaento dei gas perfetti 1) Alcune considerazioni sullo studio dei sistei gassosi 2) Dilatazione terica degli aerifori 3)
DettagliAmperometri analogici passivi
ppunti di Misure Elettriche peroetri analogici passivi NTODUZONE L aperoetro è, in generale, lo struento atto a isurare una corrente elettrica. Parliao invece di galvanoetro quando tale corrente è di intensità
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
DettagliIsometrie Ad ogni simmetria delle Natura corrisponde una quantità conservata (Emmy Noether)
Isoetrie Ad ogni sietria delle Natura corrisponde una quantità conservata (E Noether) Le isoetrie sono particolari affinità cioè trasforazioni lineari del piano in sé, che lasciano invariata la distanza
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
DettagliCorso di Laurea Ingegneria Civile Fondamenti di Informatica. Dispensa 16 Tipi riferimento e stringhe. Carla Limongelli.
Corso di Laurea Ingegneria Civile Fondamenti di Informatica Dispensa 16 Tipi riferimento e stringhe Carla Limongelli Maggio 2010 Definizione di metodi 1 Contenuti Tipi riferimento Stringhe e oggetti String
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
DettagliLinguaggio C: puntatori
Dipartimento di Elettronica ed Informazione Politecnico di Milano Informatica A - GES Prof. Plebani A.A. 2006/2007 Linguaggio C: puntatori La presente dispensa e da utilizzarsi ai soli fini didattici previa
DettagliCorso di Fondamenti di Informatica Tipi strutturati: Strutture typedef Anno Accademico 2008/2009 Francesco Tortorella
Corso di Fondamenti di Informatica Tipi strutturati: Strutture typedef Anno Accademico Francesco Tortorella Le strutture Gli array permettono la sola aggregazione di variabili dello stesso tipo. Quindi
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
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
DettagliLaboratorio di Programmazione Lezione 2. Cristian Del Fabbro
Laboratorio di Programmazione Lezione 2 Cristian Del Fabbro Prossima lezione GIOVEDÌ 29 OTTOBRE 14:00 Input da tastiera package input; import java.io.*; public class Input { public static void main(string[]
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
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
DettagliDefinizione di classi con array di oggetti
Definizione di classi con array di oggetti 1. (Esame scritto del 18/9/2002, Esercizio 6.) La banca dati di un agenzia assicurativa per auto è caratterizzata da un insieme di polizze di assicurazioni per
DettagliProprietà delle Classi e degli Oggetti in Java
Fondamenti di Informatica Proprietà delle Classi e degli Oggetti in Java Fondamenti di Informatica - D. Talia - UNICAL 1 Proprietà object-oriented di Java Definendo le caratteristiche e le operazioni di
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
DettagliPotenze, logaritmi, equazioni esponenziali e logaritmiche.
Potenze, logariti, equazioni esponenziali e logaritiche Potenza con esponente intero di un nuero reale Sia a R ed n Z Ricordiao, anzitutto, le seguenti definizioni: ) se n >, si chiaa potenza ennesia (che,
DettagliLezione n.15. Doppi bipoli
Lezione 5 Doppi bipoli Lezione n.5 Doppi bipoli. Definizione di N-polo. Definizione di doppio-bipolo 3. Doppi-bipoli in regie stazionario (doppi-bipoli di resistenze 4. Problei di analisi 5. Problei di
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
DettagliAppunti di complemento per le lezioni del corso di Matematica Finanziaria L OPERAZIONE DI AMMORTAMENTO
Appunti di copleento per le lezioni del corso di Mateatica Finanziaria L OPERAZIONE DI AMMORTAMENTO Preessa Il presente testo di appunti è stato scritto per fornire agli studenti un supporto didattico
DettagliPuntatori in C Lucidi della Pof.ssa Pazienza
Puntatori in C Lucidi della Pof.ssa Pazienza http://www.uniroma2.it/didattica/foi2/ Puntatori L operatore di indirizzo & Indirizzi, puntatori Aritmetica dei puntatori L operatore di dereferenziazione *
DettagliGli strumenti necessari per lo studio
La potenza di un fucile a olla Sunto E possibile deterinare la potenza di un fucile a olla quando sono note la costante elastica K della olla, la isura d della copressione e la assa del proiettile sparato?
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:
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
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
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
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
DettagliSAPIENZA Università di Roma, Facoltà di Ingegneria
SAPIENZA Università di Roma, Facoltà di Ingegneria Corso di PROGETTAZIONE DEL SOFTWARE Laurea in Ingegneria Informatica Prof. E.Casalicchio A.A. 2008/09 QUARTA PARTE: Soluzioni Esercizi 13-23 Soluzione
DettagliLaboratorio di Informatica Ingegneria Clinica Lezione 14-16/11/2011
Laboratorio di Informatica Ingegneria Clinica Lezione 14-16/11/2011 Raffaele Nicolussi FUB - Fondazione Ugo Bordoni Via del Policlinico, 147 00161 Roma I puntatori Variabili e parametri Parametri formali
DettagliPRINCIPIO DI INDUZIONE. k =. 2. k 2 n(n + 1)(2n + 1) 6
PRINCIPIO DI INDUZIONE LORENZO BRASCO Esercizio. Diostrare che per ogni n si ha nn. 2 Esercizio 2. Diostrare che per ogni n si ha 2 2 nn 2n. Soluzione Procediao per induzione: la 2 è ovviaente vera per
DettagliChi sono e come contattarmi. Corso di Architettura degli Elaboratori. Bibliografia. Bibliografia (breaking news, sigh!)
( '! %& % -" A : ;5 L K%. J J % 0 T NM ]\ [ % %R.% J % 0 T P Q n n Corso di Architettura degli Elaboratori Chi sono e coe contattari "! Introduzione: linguaggi, livelli e acchine virtuali, +" * ) 3 * 3
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
DettagliEreditarietà e Polimorfismo
Ereditarietà e Polimorfismo Riusare il software A volte si incontrano classi con funzionalità simili In quanto sottendono concetti semanticamente vicini È possibile creare classi disgiunte replicando le
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
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
DettagliParcheggio.rtf 1/8 6 gennaio 2009. Prova di programmazione: parcheggio a pagamento
Parcheggio.rtf 1/8 6 gennaio 2009 Prova di programmazione: parcheggio a pagamento Si sviluppi il codice per la gestione di un parcheggio a pagamento mediante la classe Parcheggio, che ospita le auto rappresentate
DettagliEsercizi Array. Parte 7. Domenico Daniele Bloisi. Corso di Fondamenti di Informatica Ingegneria delle Comunicazioni BCOR Ingegneria Elettronica BELR
Corso di Fondamenti di Informatica Ingegneria delle Comunicazioni BCOR Ingegneria Elettronica BELR Domenico Daniele Bloisi Docenti Parte I prof. Silvio Salza salza@dis.uniroma1.it http://www.dis.uniroma1.it/~salza/fondamenti.htm
DettagliScheda di Lavoro relativa all'esperienza di laboratorio: LA TAVOLA DEI LEGUMI
Scheda di Lavoro relativa all'esperienza di laboratorio: LA TAVOLA DEI LEGUMI Scopo dell'esperienza: si vuole deterinare la assa relativa di sei diversi e il nuero di sei contenuti in una certa quantità
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
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
DettagliStringhe e Array. Prof. Francesco Accarino IIS Altiero Spinelli Via Leopardi 132 Sesto San Giovanni
IIS Altiero Spinelli Via Leopardi 132 Sesto San Giovanni La Classe String In Java le stringhe, a differenza della maggior parte dei linguaggi di programmazione, non sono array di caratteri (char), bensì
Dettaglipublic double getlato() restituisce la lunghezza del lato del quadrato che esegue il metodo.
Cognome................................ Nome................................... Matricola............................... Programmazione Prova scritta del 21 settembre 2015 TEMPO DISPONIBILE: 1 ora e 40
DettagliLinguaggio C I puntatori
FONDAMENTI DI INFORMATICA Prof. PIER LUCA MONTESSORO Ing. DAVIDE PIERATTONI Facoltà di Ingegneria Università degli Studi di Udine Linguaggio C I puntatori 2001 Pier Luca Montessoro - Davide Pierattoni
DettagliOperazioni numeriche - Input
Operazioni numeriche - Input Espressioni, funzioni matematiche, classi involucro, Acquisizione di input 11/11/2004 Laboratorio di Programmazione - Luca Tesei 1 Operazioni fra interi e decimali In Java
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;
DettagliProgrammazione in Java (I modulo)
Programmazione in Java (I modulo) Lezione 4 Variabili di tipo primitivo. Dichiarazione di costanti Conversioni di tipo: operatore cast Altri operatori di assegnamento Operazioni aritmetiche e di confronto
DettagliStrutture Dinamiche. Fondamenti di Informatica
Strutture Dinamiche Fondamenti di Informatica 1 Indice Allocazione e de-allocazione di memoria Liste e loro gestione Companies, srl 2 Allocazione e cancellazione di memoria malloc (sizeof (TipoDato));
DettagliCorso di Fondamenti di Informatica I
Corso di Fondamenti di Informatica I Generics in Java Fabio Patrizi, Silvia Bonomi Dipartimento di Ingegneria Informatica, Automatica e Gestionale Facoltà di Ingegneria dell Informazione, Informatica e
DettagliEsercizi della lezione 5 di Java
Esercizi della lezione 5 di Java Esercizio 5 Create il tipo di dato Counter dell Esercizio 1 come sottoclasse del tipo di dato SimpleCounter. Esercizio 1 Create un tipo di dato Counter che abbia: un valore
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
DettagliLAVORO ED ENERGIA Corso di Fisica per Farmacia, Facoltà di Farmacia, Università G. D Annunzio, Cosimo Del Gratta 2006
LAVORO ED ENERGIA INTRODUZIONE L introduzione dei concetto di lavoro, energia cinetica ed energia potenziale ci perettono di affrontare i problei della dinaica in un odo nuovo In particolare enuncereo
DettagliCorso sul linguaggio Java
Corso sul linguaggio Java Modulo JAVA6 A1 I file testo 1 Prerequisiti Programmazione base in Java Utilizzo di classi e oggetti Modello produttore consumatore Operazioni logiche su struttura file 2 1 Introduzione
DettagliINFORMATICA GRAFICA - FONDAMENTI DI INFORMATICA Ing. Civile - Edile/Architettura Dott. Penzo SOLUZIONE PROVA SCRITTA DEL 16/09/2002.
INFORMATICA GRAFICA - FONDAMENTI DI INFORMATICA Ing. Civile - Edile/Architettura Dott. Penzo SOLUZIONE PROVA SCRITTA DEL 16/09/2002 Esercizio 4) import fiji.io.simplereader; class Programma{ public static
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,
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
DettagliAlgoritmi 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
DettagliCapitolo 1 Fisica, grandezze, unità di misura, metodo scientifico.
Capitolo 1 Fisica, grandezze, unità di isura, etodo scientifico. Fisica e etodo Il terine fisica deriva dal greco physiké che letteralente significa riguardante la natura. Tale definizione, corretta dal
Dettagli18 - Vettori. Programmazione e analisi di dati Modulo A: Programmazione in Java. Paolo Milazzo
18 - Vettori Programmazione e analisi di dati Modulo A: Programmazione in Java Paolo Milazzo Dipartimento di Informatica, Università di Pisa http://pages.di.unipi.it/milazzo milazzo di.unipi.it Corso di
DettagliPuntatori. Fondamenti di Programmazione
Puntatori Fondamenti di Programmazione Funzioni utili stdio.h c = getchar(); restituisce un carattere letto da tastiera. Equivale a: scanf( %c, &c); putchar(c); scrive un carattere sullo schermo. Equivale
DettagliMisura delle distanze
Prof. V. Franco: Topografia e tecniche cartografiche Corso di laurea in Ingegneria per l Abiente e il Territorio a.a. 006-007 Misura delle distanze Le isure di distanze vengono suddivise in: - isure dirette:
DettagliUna classe Borsellino. Tipi numerici di base - Costanti. Esempio d uso. Classe Borsellino cont d. Primi passi per l implementazione di Purse
Una classe Borsellino Tipi numerici di base - Interi e decimali Definizione di costanti /** Realizza un borsellino per le monete. Registra il numero di monete e calcola il valore totale public class Purse
DettagliTRASLAZIONI E DILATAZIONI
TRASLAZIONI E DILATAZIONI Prof. Fabio Breda Abstract. Lo scopo di questo articolo è fare chiarezza sulla odalità di costruzione del graco di funzioni attraverso traslazioni o dilatazioni del graco di altre
DettagliPrecedenza e associatività. Complementi sul C - 2. Esempi. Esempi
Complementi sul C - 2 Ver. 2.4 2010 - Claudio Fornaro - Corso di programmazione in C Precedenza e associatività () [] ->. S D! ~ ++ + * & (cast ) sizeof S D * / % S D + - (somma e sottrazione) S D >
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
DettagliProgrammazione 1 A.A. 2015/2016
Cognome e Nome Matricola Programmazione 1 A.A. 2015/2016 Appello del 16 Dicembre 2015 Compito n 1 Prima parte Esercizio 1 (10 punti) Cosa stampa il seguente frammento di codice Java? int[] A = {3, 8, 91,
DettagliFERRARI 575M Maranello Velocità Massima 325 Km/h Accelerazione Massima 0-100Km/h in 4,2 s
1 IL MOTO RETTILINEO UNIFORMEMENTE ACCELERATO L accelerazione. Una autoobile di grossa cilindrata, coe la Ferrari 575M Maranello, è apprezzata per la sua ripresa, cioè per la sua capacità di variare la
Dettagli1 Simulazione di prova d Esame di Stato
Siulazione di prova d Esae di Stato Problea Risolvi uno dei due problei e 5 dei 0 quesiti in cui si articola il questionario Sia y = f) una funzione reale di variabile reale tale che la sua derivata seconda
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
DettagliMATERIALI COMPOSITI. Non esiste una definizione semplice per i materiali compositi.
MATRIALI COMPOSITI Non esiste una deinizione seplice per i ateriali copositi. Sono orati da una iscela su scala icroscopica di olte asi con strutture e coposizioni dierenti che concorrono in odo sinergico
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?
DettagliCorso sul linguaggio Java
Corso sul linguaggio Java Modulo JAVA1 1.1 Programmazione base 1 Prerequisiti Saper scrivere algoritmi elementari Tecniche elementari di sviluppo di una applicazione Modalità a riga di comando Utilizzo
DettagliDefinizione di classi
Corso di Laurea Ingegneria Civile Fondamenti di Informatica Dispensa 19 Maggio 2010 1 Contenuti Classi per istanziare oggetti Esempio: la classe Punto Variabili d istanza Metodi d istanza Costruttori Ulteriori
DettagliProgetto di una capriata in acciaio
Progetto di una capriata in acciaio Concetti di base Nella progettazione di una qualsiasi struttura in capo civile è necessario seguire sepre uno schea entale preciso che sia chiaro e preciso per la realizzazione
DettagliL'allocazione dinamica della memoria
L'allocazione dinamica della memoria Fulvio CORNO - Matteo SONZA REORDA Dip. Automatica e Informatica Politecnico di Torino I puntatori Le variabili di tipo puntatore permettono di accedere alla memoria
DettagliEsercizi sulla definizione di classi (Fondamenti di Informatica 1 Walter Didimo) Soluzioni
Esercizi sulla definizione di classi (Fondamenti di Informatica 1 Walter Didimo) Soluzioni Esercizio 1 Nella classe definita di seguito indicare quali sono le variabili di istanza, quali sono le variabili
DettagliCorso di Fondamenti di Informatica. Dispensa 3: Espressioni artimetico-logiche e costrutti di decisione. Prof. Domenico Rosaci
Corso di Fondamenti di Informatica Dispensa 3: Espressioni artimetico-logiche e costrutti di decisione Prof. Domenico Rosaci 2014-15 Esercizio 1: Scrivere un programma che chieda all'utente di inserire
DettagliCorso di Laurea Ingegneria Informatica Fondamenti di Informatica 2
Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 2 Dispensa 10 Strutture collegate - 2 A. Miola Febbraio 2008 http://www.dia.uniroma3.it/~java/fondinf2/ Strutture collegate - 2 1 Contenuti!Strutture
DettagliProgrammazione a oggetti e JAVA. Prof. B.Buttarazzi A.A. 2011/2012
Programmazione a oggetti e JAVA Prof. B.Buttarazzi A.A. 2011/2012 Sommario Variabili statiche Ereditarietà multipla Le interfacce Binding Esercizi Esercizio ContoCorrente Creare una classe ContoCorrente
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
DettagliLezione 12. Sottogruppi finiti di ordine fissato. I Teoremi di Sylow.
Lezione 1 Prerequisiti: Lezioni, 7. ruppi di perutazioni. Riferienti ai testi: [Fd] Sezione.1; [H] Sezione.7; [PC] Sezione 5.1 Sottogruppi finiti di ordine fissato. I Teorei di Sylow. Dal Teorea di Lagrange
DettagliACSO Programmazione di Sistema e Concorrente
ACSO Programmazione di Sistema e Concorrente P2 Modello Thread 2/12/2015 programma e parallelismo il tipo di parallelismo dipende dal grado di cooperazione (scambio di informazione) necessario tra attività
DettagliStudente (Cognome Nome): Corso di Informatica Corso di Laurea in Ingegneria Gestionale a.a. 2006-07 Secondo Compitino 21 Dicembre 2006
Studente (Cognome Nome): Matricola: Corso di Informatica Corso di Laurea in Ingegneria Gestionale a.a. 2006-07 Secondo Compitino 21 Dicembre 2006 Si noti che le soluzioni ai quesiti saranno considerate
DettagliLe classi. Costruttori
Costruttori Le classi Usare una funzione per inizializzare membri di una classe viene considerato poco elegante. Ci si potrebbe dimenticare di invocare la funzione di inizializzaione o, peggio, chiamarla
Dettagli3. Le routine evento in Access 2000/2003
LIBRERIA WEB 3. Le routine evento in Access 2000/2003 Le routine evento possono essere associate a un singolo controllo grafico (caselle di testo, pulsanti di comando, ecc.) presente all interno di una
DettagliOperazioni di Ordinamento
Operazioni di Ordinamento E possibile ordinare i dati di una tabella, una maschera, una query in ordine crescente decrescente o alfabetico se si tratta di stringhe. Per effettuare queste operazioni di
DettagliPubblico e privato. Per capire il concetto di pubblico e privato è possibile pensare a diversi oggetti del mondo reale. Ad esempio: bancomat.
Pubblico e privato Per capire il concetto di pubblico e privato è possibile pensare a diversi oggetti del mondo reale. Ad esempio: bancomat. La tessera bancomat esegue operazioni sul conto corrente, ma
DettagliFondamenti di Informatica T-1. Classi & vettori
Classi & vettori 2 Array Un vettore (array) è un insieme ordinato, di dimensione fissa, di oggetti dello stesso tipo. Esempio: array capace di contenere al più 10 numeri interi int[] arrayinteri = new
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
DettagliRefactoring 5 Sposta Metodo. 5 Sposta Metodo. 5 Sposta Metodo - Codice iniziale
Refactoring Un metodo sta usando più caratteristiche (attributi e operazioni) di un altra classe che non quella in cui è definito Crea un nuovo metodo con un corpo simile nella classe che il metodo usa
DettagliStrutture Dati. Elisa Marengo. Università degli Studi di Torino Dipartimento di Informatica. Elisa Marengo (UNITO) Strutture Dati 1 / 16
Strutture Dati Elisa Marengo Università degli Studi di Torino Dipartimento di Informatica Elisa Marengo (UNITO) Strutture Dati 1 / 16 Introduzione Fino ad ora nei nostri programmi abbiamo usato Variabili;
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
DettagliGestione di files Motivazioni
Gestione di files Motivazioni Un programma in esecuzione legge (sequenzialmente) una sequenza di caratteri prodotti "al volo" dall'utente (tramite tastiera) il programma in esecuzione scrive (sequenzialmente)
Dettagli3. IL METODO DI TUNNELING
3. IL METODO DI TUNNELING L analisi nuerica ha da tepo reso disponibili una varietà di etodi di tipo iterativo per la soluzione di problei di inio. In questo capo si sono diostrati particolarente efficienti
DettagliMODELLO ATOMISTICO PER I DATI OCSE SULL ISTRUZIONE
MODELLO ATOMISTICO PER I DATI OCSE SULL ISTRUZIOE Arturo Marcello Allega 1 Dirigente scolastico ITIS Giovanni XXIII di Roa Via di Tor Sapienza 160, 00155 Roa Abstract I dati OCSE sull istruzione sono distribuiti
Dettagli/** * VETTORE DINAMICO elementi */ private Vector elementi; /** * METODO COSTRUTTORE */ public coda() { elementi=new Vector(); }
import java.util.*; class coda * Questa classe contiene tutti i metodi per la gestione della coda * @author D'Ambrosio Giovanni Classe 4D I.T.I.S. Grottaminarda * @version 26/02/2010 * VETTORE DINAMICO
Dettagli