Linguaggi di Programmazione II Matricole con le due ultime cifre dispari

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "Linguaggi di Programmazione II Matricole con le due ultime cifre dispari"

Transcript

1 Cognome e Nome: Numero di Matricola: Spazio riservato alla correzione totale /5 /10 /10 /30 /25 /20 /100 Non usare altri fogli, usare solo lo spazio sottostante. Fogli differenti da questo non saranno presi in considerazione per la correzione. Non è consentito usare libri o appunti! 1. [5 punti] Considerate il frammento di codice seguente: public class T public void m(final int x, int y) int a; final int b; class C implements I public void f( ) int c; private int t; Indicate a quali variabili può accedere il metodo f e giustificate la risposta. Soluzione: la classe interna C può accedere alle variabili istanza definite nell ambito di visibilità della classe T senza alcuna restrizione, ma può accedere a variabili locali solo se sono state dichiarate final. Quindi il metodo f può accedere alle variabili x, b e t. Pag. 1

2 2. [10 punti] Sia B una classe e sia A una classe che implementa l interfaccia I. Indicare quali dei seguenti assegnamenti sono leciti e giustificare la risposta. A a = new A(); B b = new B(); I i1 = a; //primo assegnamento I i2 = b; //secondo assegnamento a = (I)b; //terzo assegnamento a = i1; //quarto assegnamento a = (A)i1; //quinto assegnamento Soluzione: Gli assegnamenti corretti sono il primo e il quinto. Infatti la classe A implementa l interfaccia I, quindi la conversione dal tipo A al tipo dell interfaccia nel primo assegnamento è lecita. Nell assegnamento 5, il tipo interfaccia viene convertito al tipo originario mediante un cast. L assegnamento 2 è scorretto perché la classe B non implementa l interfaccia I. L assegnamento 3 è scorretto perché non è possibile usare il cast per convertire dal tipo B al tipo dell interfaccia. L assegnamento 4 è scorretto: per convertire dal tipo interfaccia al tipo originario A è necessario un cast, come avviene nell assegnamento 5. Pag. 2

3 3. [10 punti] Descrivere a cosa serve la parola chiave super e mostrarne l utilizzo con un breve esempio di codice. Soluzione: La parola chiave super viene utilizzata per: invocare il costruttore della superclasse, e.g.,. super(initialbalance); invocare un metodo della superclasse, e.g. super.deposit(amount); /** Un conto corrente che addebita commissioni per ogni transazione. */ public class CheckingAccount extends BankAccount /** Costruisce un conto corrente con un saldo initialbalance il saldo iniziale */ public CheckingAccount(double initialbalance) // chiama il costruttore della superclasse super(initialbalance); // inizializza il conteggio delle transazioni transactioncount = 0; //metodo sovrascritto public void deposit(double amount) transactioncount++; //chiama il metodo deposit della superclasse super.deposit(amount); //metodo sovrascritto public void withdraw(double amount) transactioncount++; // chiama il metodo withdraw della superclasse super.withdraw(amount); //metodo nuovo public void deductfees() if (transactioncount > FREE_TRANSACTIONS) double fees = TRANSACTION_FEE * (transactioncount FREE_TRANSACTIONS); //chiama il metodo withdraw della superclasse super.withdraw(fees); transactioncount = 0; private int transactioncount; private static final int FREE_TRANSACTIONS = 3; private static final double TRANSACTION_FEE = 2.0; Pag. 3

4 4. [30 punti] Scrivere un applet che consenta all utente di specificare un cerchio con due pressioni del pulsante del mouse, la prima per indicare la posizione del centro e la seconda per indicare un punto sulla circonferenza. Quando l utente preme per la prima volta, disegnate un cerchietto per indicare il centro, quando preme per la seconda volta, disegnate il cerchio. Suggerimento: nel gestore degli eventi del mouse dovete tenere traccia del fatto che sia già stato ricevuto il punto che rappresenta il centro in un evento precedente. I punti devono essere istanze della classe Point2D.Double import java.awt.graphics2d; import java.awt.geom.ellipse2d; import java.awt.geom.point2d; public class Cerchio /** Costruisce un oggetto duepunti l array di punti specificati dall utente */ public Cerchio(Point2D.Double[] duepunti) punti = duepunti; /** Disegna il cerchio, dati due punti Il primo punto è il centro, il secondo è un qualsiasi punto sulla g2 il contesto grafico */ public void disegna(graphics2d g2) // Calcola il centro del cerchio double x = punti[0].getx(); double y = punti[0].gety(); Point2D.Double centro = new Point2D.Double(x, y); // Calcola il raggio del cerchio double raggio = Math.sqrt(Math.pow(centro.getX() - punti[1].getx(), 2) + Math.pow(centro.getY() - punti[1].gety(), 2)); // Costruisce il cerchio e lo disegna Ellipse2D.Double cerchio = new Ellipse2D.Double(centro.getX() - raggio, centro.gety() - raggio, 2 * raggio, 2 * raggio); g2.draw(cerchio); private Point2D.Double[] punti; Pag. 4

5 import java.applet.applet; import java.awt.graphics; import java.awt.graphics2d; import java.awt.event.mouseadapter; import java.awt.event.mouseevent; import java.awt.geom.ellipse2d; import java.awt.geom.point2d; public class CerchioApplet extends Applet public CerchioApplet() clicks = 0; punti = new Point2D.Double[MAX_CLICKS]; // classe interna per l ascoltatore class MousePressListener extends MouseAdapter public void mousepressed(mouseevent event) if (clicks >= MAX_CLICKS) return; int mousex = event.getx(); int mousey = event.gety(); punti[clicks] = new Point2D.Double(mouseX, mousey); clicks++; repaint(); // aggiunge l ascoltatore di eventi alla finestra dell applet MousePressListener listener = new MousePressListener(); addmouselistener(listener); public void paint(graphics g) Graphics2D g2 = (Graphics2D)g; if (clicks < MAX_CLICKS) for (int i = 0; i < clicks; i++) double x = punti[i].getx(); double y = punti[i].gety(); Ellipse2D.Double cerchietto = new Ellipse2D.Double(x - RADIUS, y - RADIUS, 2 * RADIUS, 2 * RADIUS); g2.draw(cerchietto); else Cerchio c = new Cerchio(punti); c.disegna(g2); private int clicks; private Point2D.Double[] punti; private final int MAX_CLICKS = 2; final double RADIUS = 2; Pag. 5

6 5. [25 punti] Definire una superclasse astratta FigureGeometriche e tre sottoclassi Cerchio, Rettangolo e TriangoloIsoscele. Per ciascuna classe, definire le variabili istanza per le dimensioni che caratterizzano il tipo di figura, il costruttore per la creazione di un istanza di ciascuna figura date le dimensioni, e due metodi getarea() e getperimetro(), che restituiscono rispettivamente l area e il perimetro della figura. public abstract class FigureGeometriche public abstract double getarea(); public abstract double getperimetro(); public class TriangoloIsoscele extends FigureGeometriche public TriangoloIsoscele(double b, double h) base = b; altezza = h; public double getarea() return base * altezza /2 ; public double getperimetro() double mezzabase = base/2; double lato = Math.sqrt(mezzabase * mezzabase + altezza * altezza); return 2*lato + base; private double base; private double altezza; public class Cerchio extends FigureGeometriche public Cerchio(double r) raggio = r; public double getarea() return raggio * raggio * Math.PI; public double getperimetro() return 2 * raggio * Math.PI; private double raggio; Pag. 6

7 public class Rettangolo extends FigureGeometriche public Rettangolo(double b, double h) base = b; altezza = h; public double getarea() return base * altezza; public double getperimetro() return 2 * base + 2 * altezza; private double base; private double altezza; Pag. 7

8 6. [20 punti] Scrivere un programma di Test per le classi create nell esercizio precedente. Creare un array di figure geometriche, contenente cinque oggetti per ognuna delle classi create, assegnando a ciascuna dimensione un valore casuale. Stampare la somma delle aree e dei perimetri di tutte le figure presenti nell array..public class Test public static void main(string [] args) FigureGeometriche [] fg = new FigureGeometriche[15]; for (int i = 0; i < 15; i++) if( i<5) fg[i] = new Cerchio(Math.random()*10); else if (i < 10) fg[i] = new TriangoloIsoscele(Math.random()*10,Math.random()*10); else fg[i] = new Rettangolo(Math.random()*10, Math.random()*10); double areatotale = 0; double perimetrototale = 0; for (int i = 0; i < 15; i++) areatotale += fg[i].getarea(); perimetrototale += fg[i].getperimetro(); System.out.println( Area totale: + areatotale); System.out.println( Perimetro totale: + perimetrototale); Pag. 8

public double getlato() restituisce la lunghezza del lato del quadrato che esegue il metodo.

public 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

Dettagli

Parola chiave extends

Parola chiave extends Il Linguaggio Java Ereditarietà Ereditarietà L'ereditarietà permette di creare nuove classi sulla base di classi esistenti In particolare, permette di riusare il codice (metodi e campi); aggiungere nuovi

Dettagli

DataSet. ... public BankAccount getmaximum() { return x; }... private BankAccount maximum;... } DataSet

DataSet. ... public BankAccount getmaximum() { return x; }... private BankAccount maximum;... } DataSet DataSet DataSetadd DataSet BankAccount public class DataSetBankAccount { public void add(bankaccount x) { sum = sum + x.getbalance(); if (count == 0 maximum.getbalance() < x.getbalance()) maximum = x;

Dettagli

Esempio: il conto bancario

Esempio: il conto bancario Ereditarietà Prof. Francesco Scarcello D.E.I.S., Università della Calabria Corso di Informatica 2 Esempio: il conto bancario public class BankAccount { public BankAccount() { balance = 0; public BankAccount(double

Dettagli

SavingsAccount. BankAccount

SavingsAccount. BankAccount BankAccount public class BankAccount { private double balance; public BankAccount(){ this(0); public BankAccount(double initialbalance) { balance = initialbalance; public void deposit(double amount) {

Dettagli

Esercizio 6 Realizzare una classe astratta per le Figure piane e due sottoclassi, la sottoclasse Quadrato e la sottoclasse Rettangolo.

Esercizio 6 Realizzare una classe astratta per le Figure piane e due sottoclassi, la sottoclasse Quadrato e la sottoclasse Rettangolo. Esercizio 6 Realizzare una classe astratta per le Figure piane e due sottoclassi, la sottoclasse Quadrato e la sottoclasse Rettangolo. public abstract class FiguraPiana2{ private double base; public FiguraPiana2(double

Dettagli

E' un meccanismo per estendere classi esistenti, aggiungendo altri metodi e campi.

E' un meccanismo per estendere classi esistenti, aggiungendo altri metodi e campi. Ereditarietà Ereditarietà E' un meccanismo per estendere classi esistenti, aggiungendo altri metodi e campi. class SavingsAccount extends BankAccount nuovi metodi nuove vbl istanza Tutti i metodi e le

Dettagli

Programmazione ad oggetti

Programmazione ad oggetti DAIS Univ. Ca' Foscari Venezia Programmazione ad oggetti Samuel Rota Bulò Ereditarietà E' un meccanismo per estendere le funzionalità di una classe con nuovi campi e nuovi metodi Chiamiamo superclasse:

Dettagli

Esercitazione n 3. Capacità di analisi e di estensione di progetti esistenti Linguaggio Java:

Esercitazione n 3. Capacità di analisi e di estensione di progetti esistenti Linguaggio Java: Esercitazione n 3 Obiettivi: Capacità di analisi e di estensione di progetti esistenti Linguaggio Java: Ereditarietà delle classi Utilizzo di costruttori e metodi di superclasse Classi astratte Visibilità:

Dettagli

Programmazione orientata agli oggetti Classi astratte e interfacce

Programmazione orientata agli oggetti Classi astratte e interfacce Programmazione orientata agli oggetti Classi astratte e interfacce Fondamenti di Informatica L-B 1 Classi astratte Java ci consente di definire classi in cui uno o più metodi non sono implementati, ma

Dettagli

public BankAccount() { balance = 0; } public BankAccount(double initialbalance) { balance = initialbalance; }

public BankAccount() { balance = 0; } public BankAccount(double initialbalance) { balance = initialbalance; } Il Linguaggio Java Le interfacce La classe BankAccount public class BankAccount { public BankAccount() { balance = 0; public BankAccount(double initialbalance) { balance = initialbalance; public void deposit(double

Dettagli

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

Programmazione. 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

Dettagli

La classe java.lang.object

La classe java.lang.object La classe java.lang.object In Java: Gerarchia di ereditarietà semplice Ogni classe ha una sola super-classe Se non viene definita esplicitamente una super-classe, il compilatore usa la classe predefinita

Dettagli

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

Programmazione. 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

Dettagli

Classi astratte. Nella gerarchia delle classi, potrebbe essere utile prevedere un supertipo generale per le classi che si usano. Ad esempio: Figura

Classi astratte. Nella gerarchia delle classi, potrebbe essere utile prevedere un supertipo generale per le classi che si usano. Ad esempio: Figura Classi astratte Nella gerarchia delle classi, potrebbe essere utile prevedere un supertipo generale per le classi che si usano. Ad esempio: Figura Rettangolo getarea() Quadrato getarea() getarea() Cerchio

Dettagli

Riassunto: cos è la OOP? classi astratte, interfacce, classi interne. Scaletta. Figura con area()? Figura senza area()? Stefano Mizzaro 1.

Riassunto: cos è la OOP? classi astratte, interfacce, classi interne. Scaletta. Figura con area()? Figura senza area()? Stefano Mizzaro 1. OO in Java: classi astratte, interfacce, classi interne Stefano Mizzaro Dipartimento di matematica e informatica Università di Udine http://www.dimi.uniud.it/mizzaro mizzaro@dimi.uniud.it Programmazione,

Dettagli

A. Lorenzi, A. Rizzi Java. Programmazione ad oggetti e applicazioni Android Istituto Italiano Edizioni Atlas

A. Lorenzi, A. Rizzi Java. Programmazione ad oggetti e applicazioni Android Istituto Italiano Edizioni Atlas Classi e oggetti A. Lorenzi, A. Rizzi Java. Programmazione ad oggetti e applicazioni Android Istituto Italiano Edizioni Atlas Oggetti La programmazione orientata agli oggetti, OOP (Object-Oriented Programming),

Dettagli

Oggetti. Oggetti e classi. Utilizzo di classi. Classe

Oggetti. Oggetti e classi. Utilizzo di classi. Classe Oggetti Oggetti e classi Oggetto: entità che può essere manipolata nel programma mediante l invocazione di metodi Black box dotato di:! Interfaccia pubblica " Metodi visibili " Comportamento dell oggetto!

Dettagli

Gestione di eventi ed interfacce utente grafiche

Gestione di eventi ed interfacce utente grafiche Gestione di eventi ed interfacce utente grafiche Eventi Ogni volta che l utente esegue un azione un clic del mouse la pressione di un tasto sulla tastiera la modifica di una finestra la selezione di un

Dettagli

interfacce ed eventi intercettare il mouse ed altri eventi

interfacce ed eventi intercettare il mouse ed altri eventi interfacce ed eventi intercettare il mouse ed altri eventi interfacce: premessa il termine "interfaccia" occorre in Java con due significati, collegati ma distinti 1. interface, parola chiave di Java e

Dettagli

3. un metodo che restituisce l elenco delle matricole di tutti gli studenti del corso;

3. un metodo che restituisce l elenco delle matricole di tutti gli studenti del corso; Un esempio di definizione di classe con array di oggetti Sia data la classe StudUniv per gli studenti universitari (definita in una lezione precedente). Scrivere una nuova classe Corso, dove ciascun corso

Dettagli

Esercitazione n 3. Obiettivi

Esercitazione n 3. Obiettivi Esercitazione n 3 Obiettivi Capacità di analisi e di estensione di progetti esistenti Linguaggio Java: Ereditarietà delle classi Utilizzo di costruttori e metodi di superclasse Visibilità: public, private,

Dettagli

Capitolo 6. Uso della gerarchia. c 2005 Pearson Education Italia Capitolo 6-1 / 125

Capitolo 6. Uso della gerarchia. c 2005 Pearson Education Italia Capitolo 6-1 / 125 Capitolo 6 Uso della gerarchia c 2005 Pearson Education Italia Capitolo 6-1 / 125 Sommario: Uso della gerarchia 1 Notazione UML per le classi 2 Introduzione alla gerarchia 3 Gerarchia e tipi La gerarchia

Dettagli

Esempi al calcolatore su: 1) Costruttori ed ereditarietà 2) Subtyping e polimorfismo

Esempi al calcolatore su: 1) Costruttori ed ereditarietà 2) Subtyping e polimorfismo Esempi al calcolatore su: 1) 2) Subtyping e polimorfismo 1 Esempio 1: 2 Introduzione Java prevede due automatismi legati ai costruttori: Se una classe non ha costruttori viene creato automaticamente il

Dettagli

Laboratorio di Programmazione 1 [Java]

Laboratorio di Programmazione 1 [Java] Laboratorio di Programmazione 1 [Java] Prova di esame - 26 Gennaio 2011 Tempo massimo: 50 minuti Si implementino in Java le classi Tavolo e Pizzeria. La classe Tavolo ha i seguenti attributi: nome (una

Dettagli

18 - Classi parzialmente definite: Classi Astratte e Interfacce

18 - Classi parzialmente definite: Classi Astratte e Interfacce 18 - Classi parzialmente definite: Classi Astratte e Interfacce Programmazione e analisi di dati Modulo A: Programmazione in Java Paolo Milazzo Dipartimento di Informatica, Università di Pisa http://www.di.unipi.it/

Dettagli

Esempi in Java di program.ne O-O

Esempi in Java di program.ne O-O Esempi in Java di program.ne O-O Ereditarietà Polimorfismo statico e dinamico Esercitazione laboratorio Interfaccia Comparable e Comparator 1 Gerarchia di ereditarietà Persona IS_A Docente Studente Tecnico

Dettagli

Programmazione a oggetti e JAVA. Prof. B.Buttarazzi A.A. 2011/2012

Programmazione 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

Dettagli

Programmazione ad Oggetti

Programmazione ad Oggetti Programmazione ad Oggetti (Esercizi) Esercizio 5 Sia data la seguente classe che rappresenta un conto bancario class Conto private double saldo; public Conto(double saldo) throws IllegalArgumentException

Dettagli

sayhello public private protected return public class Greeter { public String sayhello() { String message = Hello, World! ; return message; } }

sayhello public private protected return public class Greeter { public String sayhello() { String message = Hello, World! ; return message; } } sayhello public class Greeter { public String sayhello() { String message = Hello, World! ; return message; publicprivate protected return void return; Greeter main main public class GreeterTest { public

Dettagli

CLASSI ASTRATTE - ESERCIZIO

CLASSI ASTRATTE - ESERCIZIO CLASSI ASTRATTE - ESERCIZIO Definire una tassonomia di forme geometriche non esiste la generica forma geometrica! esistono triangoli, quadrilateri, pentagoni,... Forme può ben essere una classe astratta

Dettagli

Capitolo 3. Realizzare classi. Cay S. Horstmann Concetti di informatica e fondamenti di Java quarta edizione

Capitolo 3. Realizzare classi. Cay S. Horstmann Concetti di informatica e fondamenti di Java quarta edizione Capitolo 3 Realizzare classi Cay S. Horstmann Concetti di informatica e fondamenti di Java quarta edizione Obiettivi del capitolo Acquisire familiarità con il procedimento di realizzazione di classi Essere

Dettagli

Polimorfismo dynamic dispatch

Polimorfismo dynamic dispatch Polimorfismo dynamic dispatch Il tipo di una variabile non determina in modo univoco il tipo dell oggetto che la variabile riferisce Meccanismo già discusso per le interfacce Ogni variabile ha due tipi

Dettagli

14 - Metodi e Costruttori

14 - Metodi e Costruttori 14 - Metodi e Costruttori 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

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

Ereditarietà (ultima)

Ereditarietà (ultima) Ereditarietà (ultima) Classi astratte Un ibrido tra classi e interfacce Hanno alcuni metodi implementati normalmente, altri astratti Un metodo astratto non ha implementazione abstract class AccountTransaction...

Dettagli

Java: Definire Classi e Creare Oggetti

Java: Definire Classi e Creare Oggetti Dipartimento di Informatica, Università degli Studi di Verona Corso di Programmazione per Bioformatica lezione del 21 marzo 2014 Introduzione Programmare con gli Oggetti Un programma Java è costituito

Dettagli

Laboratorio di Programmazione 1 [Java]

Laboratorio 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

Dettagli

Esercitazione. Docente Ing. Mariateresa Celardo

Esercitazione. Docente Ing. Mariateresa Celardo Esercitazione Docente Ing. Mariateresa Celardo mariateresa.celardo@uniroma2.it Scrivere la classe Motorino che ha i seguenti attributi colore: una stringa indicante il colore del motorino, velocità: un

Dettagli

Programmazione orientata agli oggetti La classe Object, metodi e classi final, this. Object

Programmazione orientata agli oggetti La classe Object, metodi e classi final, this. Object Programmazione orientata agli oggetti La classe, metodi e classi final, this 1 La classe Negli esempi fatti nella prima parte del corso abbiamo definito alcune classi, per esempio Counter e Orologio, senza

Dettagli

Subtype Polymorphism. Conversioni di tipo. Conversioni di tipo. Subtyping. Conversioni di tipo. Interfacce e subtype polimorfismo

Subtype 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

Dettagli

Programmazione orientata agli oggetti La classe Object, metodi e classi final, this. Object

Programmazione orientata agli oggetti La classe Object, metodi e classi final, this. Object Programmazione orientata agli oggetti La classe, metodi e classi final, this 1 La classe Negli esempi fatti nella prima parte del corso abbiamo definito alcune classi, per esempio Counter e Orologio, senza

Dettagli

Riassunto. La programmazione OO. Oggi. Esempio

Riassunto. La programmazione OO. Oggi. Esempio Riassunto La programmazione OO Stefano Mizzaro Dipartimento di matematica e informatica Università di Udine http://www.dimi.uniud.it/mizzaro/ mizzaro@dimi.uniud.it Programmazione, lezione 17 29 novembre

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

Interfacce, Polimorfismo, Ereditarietà

Interfacce, Polimorfismo, Ereditarietà Interfacce, Polimorfismo, Ereditarietà Interfacce Polimorfismo Ereditarietà 1 DataSet Riconsideriamo la classe DataSet Semplicemente si può aggiungere ad un oggetto DataSet dei valori con un metodo add

Dettagli

Il Linguaggio Java. Le interfacce

Il Linguaggio Java. Le interfacce Il Linguaggio Java Le interfacce Ordinamento dei conti PROBLEMA: si vogliono ordinare i libretti di risparmio (SavingsAccount) in base al loro tasso di interesse REQUISITO: La classe dovrebbe essere ordinabile,

Dettagli

Corso sul linguaggio Java

Corso sul linguaggio Java Corso sul linguaggio Java Modulo JAVA2 2.1- Funzioni 1 Prerequisiti Programmazione elementare in Java Tecnica top-down Concetto matematico di funzione Compilazione e link di programmi Esecuzione di funzioni

Dettagli

Esempio: Interfacce. Gioco Interfacce

Esempio: Interfacce. Gioco Interfacce Esempio: Interfacce 1 Descrizione Si supponga di avere delle carte da gioco. Ogni carta rappresenta un Personaggio che può essere di tipo o Umano o Mostro. Un Personaggio di tipo Umano ha una forza fisica

Dettagli

Riflessione: Ordinamento di oggetti

Riflessione: Ordinamento di oggetti SETTIMANA 7 Riflessione: Ordinamento di oggetti Ordinamento di oggetti Si sono visti algoritmi di ordinamento su array di numeri Ma spesso bisogna ordinare dati più complessi ad esempio stringhe, ma anche

Dettagli

Riflessione: Ordinamento di oggetti

Riflessione: Ordinamento di oggetti SETTIMANA 7 Riflessione: Ordinamento di oggetti Ordinamento di oggetti Si sono visti algoritmi di ordinamento su array di numeri Ma spesso bisogna ordinare dati più complessi ad esempio stringhe, ma anche

Dettagli

Capitolo 2. Utilizzare oggetti

Capitolo 2. Utilizzare oggetti Capitolo 2 Utilizzare oggetti Cay S. Horstmann Concetti di informatica e fondamenti di Java quarta edizione Oggetti e classi Gli oggetti sono entità di un programma che si possono manipolare invocando

Dettagli

Esempio: Interfacce. Gioco Interfacce

Esempio: Interfacce. Gioco Interfacce Esempio: Interfacce 1 Descrizione Si supponga di avere delle carte da gioco. Ogni carta rappresenta un Personaggio che può essere di tipo o Umano o Mostro. Un Personaggio di tipo Umano ha una forza fisica

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

Esempio 2: Subtyping

Esempio 2: Subtyping Esempio 2: Subtyping 22 Subclassing e subtyping Fino ad ora abbiamo trattato l ereditarietà come strumento che consente il riuso flessibile di classi già esistenti mediante l aggiunta o la ridefinizione

Dettagli

Classi, Ereditarietà e Polimorfismo. Lezione 7

Classi, Ereditarietà e Polimorfismo. Lezione 7 Classi, Ereditarietà e Polimorfismo Lezione 7 Scopo della Lezione Presentare il concetto di classe ed oggetto come istanza della classe; Affrontare il concetto di ereditarietà tra classi e le sue ricadute

Dettagli

Introduzione al linguaggio C Puntatori

Introduzione al linguaggio C Puntatori Introduzione al linguaggio C Puntatori Violetta Lonati Università degli studi di Milano Dipartimento di Informatica Laboratorio di algoritmi e strutture dati Corso di laurea in Informatica 19 ottobre 2016

Dettagli

Il linguaggio Java: aggiunte in Java 1.5

Il linguaggio Java: aggiunte in Java 1.5 .. Il linguaggio Java: aggiunte in Java 1.5 Una breve presentazione GENERICI Java 1.5 introduce i generici: classi che hanno un parametro di tipo. Nelle versioni precedenti a Java 1.5 si può definire:

Dettagli

Programmazione II Compitino (Vers. B)

Programmazione II Compitino (Vers. B) Programmazione II Compitino (Vers. B) 17 dicembre 2015 Cognome Jackson Nome Michael Matricola 696969 Anno di corso 1 Nei seguenti quesiti, quando vi è richiesto di scrivere un programma, potete limitarvi

Dettagli

Definizione di classi. Walter Didimo

Definizione di classi. Walter Didimo Definizione di classi Walter Didimo Definizione di classi Fino ad ora abbiamo imparato a: creare oggetti da classi già pronte usare gli oggetti creati, invocando metodi la creazione e l uso di oggetti

Dettagli

Laboratorio di Programmazione Lezione 4. Cristian Del Fabbro

Laboratorio di Programmazione Lezione 4. Cristian Del Fabbro Laboratorio di Programmazione Lezione 4 Cristian Del Fabbro Prossima lezione Mercoledì 25 novembre ore 8:30-11:00 Classe Una classe descrive degli oggetti tramite: Proprietà/variabili/campi (dati/caratteristiche,

Dettagli

Parcheggio.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 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

Dettagli

Oggetti e classi. Cos è un oggetto

Oggetti 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,

Dettagli

Corso sul linguaggio Java

Corso sul linguaggio Java Corso sul linguaggio Java Modulo JAVA5 C2.1 Animazioni 1 Prerequisiti Programmazione base in Java Utilizzo di classi e oggetti Utilizzo di elementi grafici ed eventi Utilizzo classe Canvas 2 1 Introduzione

Dettagli

Esercitazione n 2. Obiettivi

Esercitazione n 2. Obiettivi Esercitazione n 2 Obiettivi Progettazione di una applicazione Java Utilizzo di classi come schemi Utilizzo di costruttori Utilizzo di stringhe Uguaglianza tra oggetti Utilizzo di classi come componenti

Dettagli

Programmazione II Compitino (Vers. B)

Programmazione II Compitino (Vers. B) Programmazione II Compitino (Vers. B) 15 gennaio 2015 Cognome Jackson Nome Michael Matricola 696969 Anno di corso 1 Nei seguenti quesiti, quando vi è richiesto di scrivere un programma, potete limitarvi

Dettagli

Programmazione a oggetti

Programmazione a oggetti Programmazione a oggetti Quanti oggetti, tra di loro parlando, fanno programmi. Pilu Crescenzi piluc@dsi.unifi.it Università di Firenze Programmazione a oggetti p.1/32 Cosa è un oggetto Una scatola software

Dettagli

COMPITO DI LABORATORIO DI PROGRAMMAZIONE Dicembre 2001

COMPITO DI LABORATORIO DI PROGRAMMAZIONE Dicembre 2001 COMPITO DI LABORATORIO DI PROGRAMMAZIONE 2001-2002 10 Dicembre 2001 NOME COGNOME MATRICOLA Scrivere in stampatello Nome, Cognome e Matricola su ogni foglio consegnato. ESERCIZIO 1. Si consideri il seguente

Dettagli

Classi e array. Viene ora affrontato un problema di definizione di una classe in cui una variabile d istanza è di tipo array

Classi e array. Viene ora affrontato un problema di definizione di una classe in cui una variabile d istanza è di tipo array Classi e array Viene ora affrontato un problema di definizione di una classe in cui una variabile d istanza è di tipo array Si vuole definire una classe Polinomio per la rappresentazione di polinomi a

Dettagli

IL LINGUAGGIO JAVA Input, Tipi Elementari e Istruzione Condizionale

IL 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

Dettagli

16 - Ereditarietà, tipi e gerarchie

16 - Ereditarietà, tipi e gerarchie 16 - Ereditarietà, tipi e gerarchie 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

Dettagli

16 - Ereditarietà, tipi e gerarchie

16 - Ereditarietà, tipi e gerarchie 16 - Ereditarietà, tipi e gerarchie 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

Dettagli

Ereditarietà. Ereditarietà. Ereditarietà. Ereditarietà

Ereditarietà. Ereditarietà. Ereditarietà. Ereditarietà L ereditarietà è il meccanismo attraverso cui viene implementata la relazione di specializzazione (is-a). L ereditarietà è il meccanismo attraverso cui una classe (derivata) eredita da un altra classe

Dettagli

Introduzione alla Programmazione in Java attraverso un esempio commentato

Introduzione 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

Dettagli

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

OCA JAVA 7 SE PROGRAMMER I DOCENTE: DOTT. FAUSTO DELL ANNO CENTRO STUDI ULISSE Via Buccino, n. 22 - C.a.p. 84018 - Scafati (SA) Tel. Fax. 081.19970299-339.2365416-349.4152010 E-mail: info@centrostudiulisse.it - www.centrostudiulisse.it OCA JAVA 7 SE PROGRAMMER

Dettagli

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

9 - Array. Programmazione e analisi di dati Modulo A: Programmazione in Java. Paolo Milazzo 9 - Array 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 Laurea

Dettagli

Programmazione in Java

Programmazione in Java Programmazione in Java Settima lezione Cristian Del Fabbro Lezione di oggi Esercizio sull'utilizzo delle classi viste nella quarta lezione (Vector, StringTokenizer, file su disco, ecc.) Alcune classi per

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

Corso di Laurea in Ingegneria Gestionale Esame di Informatica a.a settembre 2012

Corso di Laurea in Ingegneria Gestionale Esame di Informatica a.a settembre 2012 Cognome Nome Matricola Postazione PC Corso di Laurea in Ingegneria Gestionale Esame di Informatica a.a. 2011-12 17 settembre 2012 Testo Il database di un videonoleggio è costituito da due vettori paralleli.

Dettagli

Programmazione orientata agli oggetti. Ivan Lanese

Programmazione orientata agli oggetti. Ivan Lanese Programmazione orientata agli oggetti Ivan Lanese Argomenti Programmazione orientata agli oggetti Classi Oggetti Costruttori Scrivere grosse applicazioni La gran parte delle applicazioni sono GROSSE Windows

Dettagli

In Java esistono tre tipi di programmi

In Java esistono tre tipi di programmi Applet Introduzione In Java esistono tre tipi di programmi Applicazioni da console Eseguiti da linea di comando Applicazioni grafiche Usano finestre, pulsanti, menu, caselle di controllo, etc Applet Contenuti

Dettagli

Gestione dell interattività: gli eventi

Gestione dell interattività: gli eventi Gestione dell interattività: gli eventi Gli eventi sono una modalità di comunicazione tra l utente (sistema) e il programma in esecuzione. Tipi di eventi: Input da parte dell utente: pressione del(i) bottone(i)

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

Fondamenti di Informatica T-1

Fondamenti di Informatica T-1 Fondamenti di Informatica T-1 Introduzione al linguaggio Java - Input/Output, Variabili, Tipi Tutor: Allegra De Filippo allegra.defilippo@unibo.it a.a. 2015/2016 Fondamenti di Informatica T-1 Allegra De

Dettagli

Oggetti Composti (1) Oggetti Composti (2)

Oggetti 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

Dettagli

Esercizi della lezione 5 di Java

Esercizi 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

Dettagli

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

OCA JAVA 8 SE PROGRAMMER I DOCENTE: DOTT. FAUSTO DELL ANNO CENTRO STUDI ULISSE Via Buccino, n. 22 - C.a.p. 84018 - Scafati (SA) Tel. Fax. 081.19970299-339.2365416-349.4152010 E-mail: info@centrostudiulisse.it - www.centrostudiulisse.it OCA JAVA 8 SE PROGRAMMER

Dettagli

Laboratorio di Programmazione Ottobre. Simone Zaccaria

Laboratorio di Programmazione Ottobre. Simone Zaccaria Laboratorio di Programmazione 27 31 Ottobre Simone Zaccaria Esercizio di Ripasso Scrivere un programma che: 1. dichiari 2 variabili a e b; 2. inizializzi le 2 variabili con valori numerici a scelta; 3.

Dettagli

Laboratorio di Programmazione Lezione 2. Cristian Del Fabbro

Laboratorio 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[]

Dettagli

Esempi di programmazione

Esempi di programmazione Esempi di programmazione Applet che disegna cerchi Costruire un'applet disegnoapplet che ad ogni pressione del mouse disegna un cerchio 1 disegnoapplet 1. Deve usare la classe Applet? NO 2. Deve estendere

Dettagli

Le basi del linguaggio Java

Le basi del linguaggio Java Le basi del linguaggio Java Compilazione e interpretazione Quando si compila il codice sorgente scritto in Java, il compilatore genera il codice compilato, chiamato bytecode. È un codice generato per una

Dettagli

Programmazione 1 A.A. 2015/2016

Programmazione 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,

Dettagli

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

Uso di classi e oggetti. Prof. Francesco Acarino IIS Altiero Spinelli Via Leopardi 132 Sesto San Giovanni Uso di classi e oggetti Prof. Francesco Acarino IIS Altiero Spinelli Via Leopardi 132 Sesto San Giovanni Tipi di dati Tipi primitivi: interi Java fornisce otto tipi primitivi indipendenti dall implementazione

Dettagli

Tipi primitivi. Ad esempio, il codice seguente dichiara una variabile di tipo intero, le assegna il valore 5 e stampa a schermo il suo contenuto:

Tipi primitivi. Ad esempio, il codice seguente dichiara una variabile di tipo intero, le assegna il valore 5 e stampa a schermo il suo contenuto: Tipi primitivi Il linguaggio Java offre alcuni tipi di dato primitivi Una variabile di tipo primitivo può essere utilizzata direttamente. Non è un riferimento e non ha senso tentare di istanziarla mediante

Dettagli

Programmazione con Java

Programmazione con Java Programmazione con Java Classi e istanze in Java Definizione di classe in Java A meno che non si usino classi già scritte da altri, prima di poter creare un qualsiasi oggetto devo creare la sua rappresentazione:

Dettagli

Realizzare classi. Cosa abbiamo fatto finora. Realizzare classi. Realizzare classi. Realizzare classi. Realizzare classi

Realizzare classi. Cosa abbiamo fatto finora. Realizzare classi. Realizzare classi. Realizzare classi. Realizzare classi Cosa abbiamo fatto finora Abbiamo visto: tipi di dato base (numeri, booleani e caratteri) oggetti e riferimenti a oggetti di un tipo già definito (String e Rectangle) strutture di controllo (sequenza,

Dettagli

ESERCIZI JAVA. Esercizi sulle Interfacce. Esercizio 1:

ESERCIZI JAVA. Esercizi sulle Interfacce. Esercizio 1: ESERCIZI JAVA Esercizi sulle Interfacce Esercizio 1: Java mette a disposizione un'interfaccia chiamata Comparable. Quando un oggetto implementa questa interfaccia esso può implementare un metodo chiamato

Dettagli

Modificatori di visibilità

Modificatori di visibilità Modificatori di visibilità Attenzione nell overriding dei metodi: la restrizione di visibilità può essere allentata, ma mai resa più restrittiva. In particolare non si può ridefinire come privato un metodo

Dettagli

Semplici applicazioni grafiche in Java

Semplici applicazioni grafiche in Java Semplici applicazioni grafiche in Java Applicazione grafica Visualizza informazioni all interno di una finestra dotata di barra di titolo e cornice (frame) La Java Virtual Machine esegue ogni frame su

Dettagli

Ereditarietà e Polimorfismo

Ereditarietà 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

Dettagli

Programmazione I. 11 gennaio Considerate la seguente gerarchia di classi (rappresentata mediante un diagramma UML): +f(double x):

Programmazione I. 11 gennaio Considerate la seguente gerarchia di classi (rappresentata mediante un diagramma UML): +f(double x): Programmazione I 11 gennaio 2012 Matricola:........................................................................ Cognome:........................................................................ Nome:...........................................................................

Dettagli