DataSet. ... public BankAccount getmaximum() { return x; }... private BankAccount maximum;... } DataSet
|
|
|
- Faustino Amore
- 8 anni fa
- Visualizzazioni
Transcript
1 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; count++; public BankAccount getmaximum() { return x; private BankAccount maximum;
2 DataSet Coin public class DataSetCoin { public void add(coin x) { sum = sum + x.getvalue(); if (count == 0 maximum.getvalue() < x.getvalue()) maximum = x; count++; public Coin getmaximum() { return x; private Coin maximum; DataSet DataSet getmeasure DataSet add sum = sum + x.getmeasure(); if (count == 0 maximum.getmeasure() < x.getmeasure()) maximum = x; count++;
3 x x getmeasure interface public interface Measurable { double getmeasure(); Measurable getmeasure double Measurable
4 public class DataSet { public void add(measurable x) { sum = sum + x.getmeasure(); if (count == 0 maximum.getmeasure() < x.getmeasure()) maximum = x; count++; public Measurable getmaximum() { return x; private Measurable maximum; DataSet Measurable Measurable public class NomeClasse implements NomeInterfaccia { /* Solita definizione di classe in cui però devono apparire, con l implementazione, tutti i metodi dichiarati nell interfaccia, con gli stessi parametri nello stesso ordine */
5 Measurable BankAccount public class BankAccount implements Measurable { public double getmeasure(){ return balance; public class Coin implements Measurable { public double getmeasure(){ return value; Measurable DataSet implements public
6 Measurable max Measurable Measurable Measurable BankAccount bankdata.add(new BankAccount(10000)); BankAccount Measurable BankAccount Measurable intdouble BankAccount: BankAccount account = new BankAccount(10000); BankAccount Measurable Measurable x = account; x Measurable x.deposit(100); // Errore!!
7 System.out.println(x.getMeasure()); x Measurable x BankAccount (x == account) account.deposit(100); // Ok Coinx Coin dime = new Coin(0.1, Dime); x = dime; // legittimo Measurable Measurable Measurable Coin dime = new Coin(0.1, Dime ); Measurable x = dime; System.out.println(x.getMeasure()); // Cast esplicito: Coin thesamedime = (Coin) x; System.out.println(theSameDime. getdescription());
8 instanceof if (x instanceof Coin) { Coin c = (Coin) x; else. public static final public interface SwingConstants { int NORTH = 1; int NORT_EAST = 2; int EAST = 3; Measurable x = ; getmeasure()x x getmeasure()
9 BankAccount getmeasure BankAccount Coin getmeasurecoin Measurable BankAccount BankAccount() BankAccount(double)
10 DataSetMeasurable Measurable Rectangle DataSet DataSet Measurable
11 public interface Measurer { double measure(object anobject); measure Object Object DataSet Measurer private Measurer measurer; public void add(object x){ sum = sum + measurer.measure(x); if (count == 0 measurer.measure(maximum) < measurer.measure(x)) maximum = x; count++; Measurer Rectangle Rectangle Measurer measure
12 class RectangleMeasurer implements Measurer { public double measure(object anobject) { Rectangle arectangle = (Rectangle) anobject; double area = arectangle.getwidth() * arectangle.getheight(); return area; RectangleMeasure Rectangle DataSet Rectangle Object RectangleMeasurer Rectangle Rectangle DataSet Measurer RectangleMeasure Rectangle PerimeterRectangleMeasurer
13 RectangleMeasurer RectangleMeasurer main DataSet public static void main (String[] args) { class RectangleMeasurer implements Measurer { Measurer m = new RectangleMeasurer(); DataSet data = new DataSet(m); DataSetStrat.java DataSetStratTest.java DataSet MeasurerEreditarietà
14 SavingsAccount BankAccount SavingsAccount class SavingsAccount extends BankAccount { BankAccount SavingsAccount deposit BankAccount SavingsAccount // Crea un conto di risparmio con // tasso di interesse fisso del 10%: SavingsAccount collegefund = new SavingsAccount(10); // utilizzo il metodo deposit ereditato // da BankAccount: collegefund.deposit(100);
15 BankAccount SavingsAccount Object BankAccount Object Object tostringequalsclone
16 SavingsAccount deposit withdraw getbalance BankAccount SavingsAccount public class SavingsAccount extends BankAccount { private double interestrate; public SavingsAccount(double rate) { public void addinterest() {
17 public class SavingsAccount extends BankAccount { public SavingsAccount(double rate) { interestrate = rate; public void addinterest() { double interest = getbalance() * interestrate / 100; deposit(interest); private double interestrate; this.getbalance() this.deposit(interest)
18 CheckingAccount BankAccount CheckingAccount deductfees deposit withdraw
19
20 transactioncount deductfees deposit withdraw super public class CheckingAccount extends BankAccount { public void deposit(double amount) { transactioncount++; // chiamo il metodo della superclasse super.deposit(amount); super.deposit(amount) deposit(amount) this.deposit(amount) deposit CheckingAccount OutOfMemory
21 SavingsAccount public void deposit(double amount) { transactioncount++; balance = balance + amount; // Errore balance deposit balance getbalance balance super public SavingsAccount(double amount, double rate) { super(amount); // Inizializza il saldo interestrate = rate;
22 public class CheckingAccount extends BankAccount { public CheckingAccount(double initialbalance) { // Costruisce la superclasse super(initialbalance); // Inizializza il contatore di // operazioni transactioncount = 0; SavingsAccount collegefund = new SavingsAccount(10); BankAccount anaccount = collegefund; Object anobject = collegefund;
23 collegefund SavingsAccount anaccount BankAccount anobject Object BankAccount public void transfer (double amount, BankAccount other){ this.withdraw(amount); other.deposit(amount); transfer SavingsAccountCheckingAccount SavingsAccount momssavings = new SavingsAccount(10000); CheckingAccount harrysaccount = new CheckingAccount(100); momssavings.transfer(1000, harrysaccount); other
24 public class BankAccount { public void deductfees() { //?? public abstract class BankAccount { public abstract void deductfees();
25 abstractabstract final public final class MyFinalClass { Stringfinal final final public class AccessoRemoto { public final boolean checkpassword(string password) { public private protected protected public private protected
26 protected protected protected
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
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
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
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
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,
Rectangle BankAccount Purse
Rectangle BankAccount Purse StringTokenizer RandomNumberGenerator GestoreNuoviConti Math main CalcolaBustaPaga PogrammaPerIlPagamento Purse public class Purse { public Purse() {...} public void addnickels(int
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
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
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
Variabili e Parametri
Variabili e Parametri Scope, Lifetime Inizializzazione Categorie di Variabili Variabili di istanza / campi saldo in BankAccount Variabili locali newsaldo nel metodo deposita() Parametri importo per il
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
Capitolo 3. Realizzare classi
Capitolo 3 Realizzare classi Obbiettivi del capitolo Acquisire familiarità con il procedimento di realizzazione di classi Essere in grado di realizzare semplici metodi Capire a cosa servono e come si usano
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
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 [email protected] Programmazione,
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
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
Classi ed Oggetti in JAVA
Classi ed Oggetti in JAVA Dott. Ing. Leonardo Rigutini Dipartimento Ingegneria dell Informazione Università di Siena Via Roma 56 53100 SIENA Uff. 0577233606 [email protected] www.dii.unisi.it/~rigutini/
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/
Progettare le Classi
Progettare le Classi C. Horstmann Fondamenti di programmazione e Java 2 3^ edizione Apogeo trad. Nicola Fanizzi corso di Programmazione, CdS: Informatica TPS Dip. di Informatica, Università degli studi
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
Programmazione generica
16 Programmazione generica Obiettivi del capitolo Capire gli obiettivi della programmazione generica Essere in grado di realizzare classi e metodi generici Comprendere il meccanismo di esecuzione di metodi
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
Progettazione di classi
Progettazione di classi Scegliere una classe Una classe rappresenta un singolo concetto Esempi: Una classe puo` rappresentare un concetto matematico Point Rectangle Ellipse Una classe puo` rappresentare
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),
Definizione 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
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
Linguaggi di programmazione II AA 2010/2011 Esercitazione 2
Linguaggi di programmazione II AA 2010/2011 Esercitazione 2 1) Scrivere l'output del seguente programma Java public class Bean private String str; Bean(String str ) this.str = str; public String tostring()
Programmazione Java Struttura di una classe, Costruttore, Riferimento this
Programmazione Java Struttura di una classe, Costruttore, Riferimento this [email protected] http://www.di.univaq.it/romina.eramo/tlp Roadmap > Struttura di una classe > Costruttore > Riferimento
Esercitazioni aggiuntive Martedì 14-17 -- Laboratorio L-12
Laboratorio LP2 Esercitazioni aggiuntive Martedì 14-17 -- Laboratorio L-12 [email protected] Esercizio P14.8 Scrivete un programma Find che cerchi in tutti i file specificati sulla riga di comando una
Programmazione ad oggetti
DAIS Univ. Ca' Foscari Venezia Programmazione ad oggetti Samuel Rota Bulò Classi astratte Le classi astratte sono un ibrido tra le classi concrete e le interfacce. Hanno le stesse caratteristiche di una
Eredità e Polimorfismo in Java
Eredità e Polimorfismo in Java Corso di Linguaggi di Programmazione ad Oggetti 1 A.A. 2003/04 A cura di Definizione di Classe Java è un linguaggio object-oriented per cui il costrutto fondamentale è quello
public static boolean occorre (int[] a, int n) { int i = 0; boolean trovato = false;
Metodi iterativi con array monodimensionali 1. Scrivere un metodo che, dato un array di interi a, restituisce il valore minimo in a. public static int minimo (int[] a) { int min = a[0]; for (int i=1; i
Uguaglianza e copia di oggetti
Uguaglianza e copia di oggetti Sommario 1. Classi Object e Class 2. Uguaglianza superficiale e uguaglianza profonda 3. Copia superficiale e copia profonda 4. Uguaglianza e copia in classi derivate 1 La
INFORMATICA 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
Programmazione ad Oggetti Modulo A (Esame del 11/9/2015)
Programmazione ad Oggetti Modulo A (Esame del 11/9/2015) Esercizio 1 Considerate la seguente gerarchia di classi: class A { public void print(string s) { System.out.println(s); public void m1() { print("a.m1");
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
Capitolo 7 array e array list
Capitolo 7 array e array list Obiettivi del capitolo Acquisire familiarità con l utilizzo di array e array list (vettori ) Studiare le classi involucro, la tecnica di autoimpacchettamento e il ciclo for
La velocità di una carovana
Programmazione A.A. 2002-03 I linguaggio Java ( Lezione X, Parte I ) Il primo programma Prof. Giovanni Gallo Dr. Gianluca Cincotti Dipartimento di Matematica e Informatica Università di Catania e-mail
Proprietà 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
Car myfiat = new Car(...); /* non sappiamo ancora che tipo di costruttori abbiamo */ myfiat.addgas(20); myfiat.drive(100); myfiat.getgas(); myfiat.getdescription(); /** Un automobile può percorrere una
Programmazione a oggetti
Programmazione a oggetti Quanti oggetti, tra di loro parlando, fanno programmi. Pilu Crescenzi [email protected] Università di Firenze Programmazione a oggetti p.1/32 Cosa è un oggetto Una scatola software
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
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
Implementazione Java di un ADT
Implementazione Java di un ADT Primo passo definire l'interfaccia (API) dell' ADT (l'api descrive i nomi dei metodi che l'adt supporta e come essi sono dichiarati e usati) Secondo passo scrivere il codice
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
COMPITO DI LABORATORIO DI PROGRAMMAZIONE 2001-2002 17 Luglio 2002. Soluzione degli Esercizi
COMPITO DI LABORATORIO DI PROGRAMMAZIONE 2001-2002 17 Luglio 2002 degli Esercizi ESERCIZIO 1. Si consideri il seguente frammento di codice in linguaggio Java: int i=0, j=0; int[][] a=b; boolean trovato=false;
Programmazione ad Oggetti: JAVA. Esercitazione
Programmazione ad Oggetti: JAVA Esercitazione Docente Ing. Mariateresa Celardo [email protected] Scrivere la classe Motorino che ha i seguenti attributi colore: una stringa indicante il colore
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
Linguaggi Corso M-Z - Laurea in Ingegneria Informatica A.A. 2007-2008. Esercitazione. Programmazione Object Oriented in Java
Linguaggi Corso M-Z - Laurea in Ingegneria Informatica A.A. 2007-2008 Alessandro Longheu http://www.diit.unict.it/users/alongheu [email protected] Programmazione Object Oriented in Java
