Programmazione a Oggetti e JAVA. Prof. B.Buttarazzi A.A. 2012/2013
|
|
|
- Muzio Rosa
- 9 anni fa
- Просмотров:
Транскрипт
1 Programmazione a Oggetti e JAVA Prof. B.Buttarazzi A.A. 2012/2013
2 Sommario Variabili statiche Ereditarietà multipla Le interfacce Binding Esercizi
3 Variabili statiche Se una variabile di una classe ha il modificatore static, non esisterà una copia per ogni oggetto creato, ma sarà unica per tutte le istanze della classe. public class MyClass { public static int i = 10; public int j = 10; public void incrementa(){ i++; j++; public class TestMyClass { public static void main(string[] args) { MyClass a = new MyClass(); MyClass b = new MyClass(); a.incrementa(); // a.i == 11 e a.j == 11 b.incrementa(); // b.i == 12 e b.j == 11 // a.i e b.i sono la stessa variabile: MyClass.i
4 Variabili statiche Se un metodo ha il modificatore static può essere utilizzato senza creare un istanza della classe Un metodo statico non può accedere a variabili non statiche. public class MyClass { public static int i = 10; public int j = 10; public static void incrementa(){ i++; j++; // non consentito public class TestMyClass { public static void main(string[] args) { MyClass.incrementa();
5
6 Quando si usano metodi e attributi statici Un metodo che non dipende dallo stato dell oggetto (non accede agli attributi non statici dell oggetto) è un buon candidato a diventare static. In genere nelle librerie di funzioni i metodi sono tutti statici(es: i metodi della classe Math). Gli attributi il cui valore deve essere condiviso da tutti gli oggetti di una classe devono essere dichiarati static. In genere le costanti (final) vengono dichiarate static
7 Esercizio ContoCorrente Creare una classe ContoCorrente che permetta di gestire un conto corrente bancario caratterizzato dai seguenti attributi: nome dell intestatario (String); cognome dell intestatario (String); numero di conto corrente (long); saldo residuo (double). Il costruttore deve avere come parametri il nome, il cognome ed il saldo iniziale. Il numero di conto corrente deve essere calcolato automaticamente in maniera incrementale (si può realizzare usando una variabile statica). Realizzare i metodi: deposita, che permette di depositare denaro sul conto corrente; preleva, che permette di prelevare denaro dal conto corrente; print, che stampa a video le informazioni sul conto corrente (numero, intestatario, saldo residuo)
8 Esercizio ContoCorrente Per testare il corretto funzionamento della classe ContoCorrente, realizzare la classe TestConto ed il relativo metodo main che esegue le seguenti operazioni: Crea due conti correnti intestati a due persone diverse. Effettua un operazione di bonifico dal primo al secondo conto (utilizzano i metodi preleva e deposita). Stampa a video le informazioni dei conti prima e dopo il bonifico.
9 public class ContoCorrente { /* Dati personali intestatario */ private String nome; private String cognome; /* Numero di conto corrente */ private long numeroconto; /* Saldo attuale */ private double saldoattuale; /* Contatore interno per l'assegnazione del * numero di c/c per ogni nuovo conto */ private static long prossimonumeroconto = 1; /* Costruttore */ public ContoCorrente(String n, String c, double saldoiniz) { nome = n; cognome = c; numeroconto = prossimonumeroconto; saldoattuale = saldoiniz; /* Incremento il contatore statico: la prossima * invocazione del costruttore assegnerà * il valore successivo */ prossimonumeroconto++; Soluzione
10 public class ContoCorrente { public void deposita(double ammontare) { saldoattuale += ammontare; public void preleva(double ammontare) { saldoattuale -= ammontare; /* Stampa a video */ public void print() { System.out.println("Il signor " + cognome + " " + nome + " è titolare del c/c n. " + numeroconto + " con saldo pari a " + saldoattuale); Soluzione
11 public class TestConto { public static void main(string[] args) { ContoCorrente cc1; cc1 = new ContoCorrente("Mario", "Rossi", 5000); ContoCorrente cc2; cc2 = new ContoCorrente("Fabio", "Pagani", 15000); cc1.print(); cc2.print(); cc1.preleva(500); cc2.deposita(500); cc1.print(); cc2.print(); Soluzione
12 Incapsulamento ed Ereditarietà L incapsulamento rappresenta una tecnica per rendere robusto il programma mentre l ereditarietà è considerata un valido strumento di sviluppo e semplificazione;
13 Incapsulamento L incapsulamento è uno dei principio fondamentali della programmazione a d oggetti. Il contenuto informativo di una classe deve rimanere nascosto all utente, in modo tale che i metodi siano l unica via per interagire con gli oggetti corrispondenti. L incapsulamento ha due grandi vantaggi: permette al programmatore di disciplinare l accesso agli attributi di una classe, in modo da evitare che ne venga fatto un uso sbagliato; permette all utente (della classe) di concentrarsi esclusivamente sull interfaccia di programmazione, tralasciando ogni aspetto legato all implementazione.
14 Vantaggi dell ereditarietà L ereditarietà facilita il riutilizzo di software estendendone o ridefinendone caratteristiche e comportamenti; è possibile adattare una classe preesistente alle nuove esigenze. Specificare le differenze da una classe simile piuttosto che ridefinire completamente la classe facilita enormemente lo sviluppo di nuovi progetti eliminando ridondanza di codice. L ereditarietà non è un meccanismo di inclusione del codice di una classe base in una derivata. Non c è copia di codice, ogni modifica della struttura di una classe base si ripercuote automaticamente nelle sue classi derivate
15 Ereditarietà: estensione Una classe derivata può differenziarsi dalla classe base in quanto aggiunge nuove caratteristiche senza alterare il comportamento delle funzionalità offerte dalla classe base, Si definisce ereditarietà per estensione la situazione in cui nella classe derivata vengono aggiunti nuovi attributi e/o nuovi metodi
16 Ereditarietà: ridefinizione Una classe derivata potrebbe però fornire le stesse caratteristiche della classe base e differenziarsi invece solo per il comportamento. In questo caso i metodi della classe derivata avranno la stessa firma (nome e lista di tipi dei parametri) ma differente corpo. Si definisce ereditarietà per ridefinizione (overriding) la situazione in cui uno o più metodi della classe base siano ridefiniti nella classe derivata
17 Estensione e ridefinizione È possibile incontrare classi derivate in cui è applicato sia l overloading (overloading) di metodi che la ridefinizione (overriding) di metodi ovviamente su metodi diversi L esempio relativo alle classi Persona e Studente è un esempio di ereditarietà per estensione e ridefinizione
18 Un esempio di overriding
19 Overriding e overloading Attenzione a non confondere il sovraccarico dei metodi (overloading) situazione in cui oltre al corpo del metodo è differente anche la sua firma con la ridefinizione (overriding) situazione in cui la firma del metodo è identica ma è differente il corpo
20 Binding Il meccanismo che determina quale metodo deve essere invocato in base alla classe di appartenenza dell'oggetto si chiama binding ( bind significa legare ). Si dice che si ha Binding statico ( early binding ) quando il metodo da invocare viene determinato in fase di compilazione. Si dice che si ha Binding dinamico ( late binding ) quando il metodo viene determinato durante l'esecuzione (a run time).
21 Binding Overloading Stesso nome per due metodi distinti Static binding (method resolution) Overriding Permette la ridefinizione di metodi nella sottoclasse Dynamic binding
22 Binding Il meccanismo di overriding è concettualmente molto diverso da quello di overloading, e non deve essere confuso con esso. L'overloading consente di definire in una stessa classe più metodi aventi lo stesso nome, ma che differiscano nella firma, cioè nella sequenza dei tipi dei parametri formali. Per l overloading è il compilatore che determina quale dei metodi verrà invocato, in base al numero e al tipo dei parametri attuali. Per l'overriding, invece, che consente di ridefinire un metodo in una sottoclasse: il metodo originale e quello che lo ridefinisce hanno necessariamente la stessa firma, e solo a tempo di esecuzione si determinerà quale dei due deve essere eseguito.
23
24 Gerarchia di classi L ereditarietà può estendersi a più livelli generando quindi una gerarchia di classi. Una classe derivata può, a sua volta, essere base di nuove sottoclassi. Sportivo è sottoclasse di Persona ed è superclasse di Nuotatore, Motociclista e Calciatore. Nella parte alta della gerarchia troviamo le classi generiche, scendendo aumenta il livello di specializzazione.
25 Un esempio class Persona { class Sportivo extends Persona { class Nuotatore extends Sportivo { class Motociclista extends Sportivo { class Calciatore extends Sportivo {
26 Gerarchia di classi: Esercizio Codificare in Java la gerarchia di classi riportata in figura.
27 Esempio class Computer { class PC extends Computer { class Server extends Computer { class Notebook extends PC { class Desktop extends PC {
28 Classi astratte Man mano che si sale nella gerarchia dell ereditarietà, le classi diventano sempre più generiche e spesso più astratte. Ad un certo punto la classe superiore diventa a tal punto generica che la si può pensare come una base (classe astratta) per le altre classi piuttosto che come una classe concretamente utilizzabile.
29 Classi e metodi abstract Classi astratte Sono usate come superclassi astratte per sottoclassi concrete e per dichiarare riferimenti a variabili. Diverse gerarchie di ereditarietà hanno superclassi astratte che occupano i livelli più alti. Va usata la parola chiave abstract Per dichiarare la classe abstract Usata anche per dichiarare i metodi abstract (solo definiti non implementati) Tipicamente le classi abstract contengono uno o più metodi abstract Tutte le sottoclassi concrete DEVONO fare l override dei metodi astratti
30 Esempio abstract class Figura { protected double base; protected double altezza; Figura(double b,double h) { base=b; altezza=h; Figura protected double base protected double altezza + Figura(double b, double h) + setbase(double ba) abstract public void setbase(double ba) { base=ba; public double getbase() { return base; + double getbase() + setaltezza(double al) + double getaltezza() + double area (double a, double h) abstract
31 Esempio public void setaltezza(double al) { altezza=al; public double getaltezza() { return altezza; Figura protected double base protected double altezza + Figura(double b, double h) + setbase(double ba) + double getbase() + setaltezza(double al) + double getaltezza() abstract abstract double area(double a,double h); + double area (double a, double h) abstract
32 Esempio class Rettangolo extends Figura { Rettangolo(double b,double h) { super(b,h); Figura protected double base protected double altezza + Figura(double b, double h) + setbase(double ba) + double getbase() abstract public double area(double b,double h) { double ar=base*altezza; return ar; Rettangolo + setaltezza(double al) + double getaltezza() + double area (double a, double h) abstract Triangolo + Rettangolo(double b, double h) + double area (double a, double h) + Triangolodouble b, double h) + double area (double a, double h)
33 Esempio class Triangolo extends Figura { Triangolo(double b,double h) { super(b,h); Figura protected double base protected double altezza + Figura(double b, double h) + setbase(double ba) + double getbase() abstract + setaltezza(double al) public double area(double b,double h) { + double getaltezza() + double area (double a, double h) double ar=(base*altezza)/2; abstract return ar; Rettangolo Triangolo + Rettangolo(double b, double h) + double area (double a, double h) + Triangolodouble b, double h) + double area (double a, double h)
34 Esempio Metodi e classi astratte sono in corsivo class UsaFigura { public static void main(string[] args) { double arearet,areatri; Figura protected double base protected double altezza + Figura(double b, double h) abstract Metodi e classi astratte sono in corsivo Rettangolo objr=new Rettangolo(6.6,3.0); + setbase(double ba) arearet=objr.area(6.6,3.0); + double getbase() System.out.println("l'area del rettangolo:" +arearet); + setaltezza(double al) + double getaltezza() triangolo objt=new triangolo(10.2,7.5); areatri=objt.area(10.2,7.5); + double area (double a, double h) abstract System.out.println("l'area del triangolo:" +areatri); Rettangolo Triangolo + Rettangolo(double b, double h) + Triangolodouble b, double h) + double area (double a, double h) + double area (double a, double h)
35 class UsaTriangolo { public static void main(string[] args) {int ar,al,bas; Triangolo objs=new Triangolo(3,6); ar=objs.area(); System.out.println("valore dell'area:" +ar); Esempio Figura protected double base abstract objs.setaltezza(10); protected double altezza objs.setbase(20); ar=objs.area(); System.out.println("la nuova area:" +ar); + Figura(double b, double h) + setbase(double ba) + double getbase() al=objs.getaltezza(); bas=objs.getbase(); System.out.println("la nuova altezza:" +al); System.out.println("la nuova base:" +bas); + setaltezza(double al) + double getaltezza() + double area (double a, double h) abstract Rettangolo Triangolo + Rettangolo(double b, double h) + double area (double a, double h) + Triangolodouble b, double h) + double area (double a, double h)
36 Ereditarietà singola e multipla In genere nella progettazione OO sono possibili due tipi di ereditarietà: ereditarietà singola ereditarietà multipla
37 Ereditarietà multipla L ereditarietà multipla si ha quando una sottoclasse deriva da più superclassi
38 Ereditarietà singola e multipla In genere nella progettazione OO sono possibili due tipi di ereditarietà: ereditarietà singola ereditarietà multipla L ereditarietà singola impone ad una sottoclasse di derivare da una sola superclasse. L esempio presentato precedentemente è un caso di ereditarietà singola: ogni sottoclasse ha una sola classe base, mentre è possibile da una superclasse avere più classi derivate. Vari linguaggi ad oggetti pongono il vincolo dell ereditarietà singola per problemi di chiarezza e semplicità d implementazione, Java è uno di questi. Quindi non è possibile una definizione di classe del tipo: class A extends B,C
39 Java e l ereditarietà multipla Java non prevede l ereditarietà multipla fra classi L ereditarietà multipla si ha quando una sottoclasse deriva da più superclassi La classe Quadrato ha due superclassi: PoligonoRegolare e Parallelogramma Si può ovviare a questa limitazione con l introduzione delle Interfacce
40 Esempio di interfaccia interface Figure { /* gli oggetti delle classi che realizzano questa interfaccia sono caratterizzati da RadiceFigure un tipo un area protected double dim1 */ protected double dim2 String tipo(); double area(); + RadiceFigurae(double b, double h) + String tipo() + double area () Figure class RadiceFigure { protected double dim1; protected double dim2; RadiceFigure(double a, double b) { dim1 = a; dim2 = b; Rettangolo + Rettangolo(double b, double h) + String tipo + double area (double a, double h)
41 Esempio di uso di interfaccia class Rectangle extends RadiceFigure implements Figure{ Rectangle(double a, double b) { super(a, b); protected double dim1 RadiceFigure Figure // definisce area() di Figure public double area() { return dim1 * dim2; protected double dim2 + RadiceFigurae(double b, double h) + String tipo() + double area () // definisce tipo() di Figure public String tipo() { return "Rectangle "; Rettangolo + Rettangolo(double b, double h) + String tipo + double area (double a, double h)
42 Esempio di uso di più interfacce class Rectangle extends RadiceFigure implements A,B,C{ Rectangle(double a, double b) { super(a, b); // definisce area() di Figure public double area() { return dim1 * dim2; // definisce tipo() di Figure public String tipo() { return "Rectangle ";
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
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
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/
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
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
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/ [email protected] Programmazione, lezione 17 29 novembre
Fondamenti di Informatica T-1. Ereditarietà & Polimorfismo
Ereditarietà & Polimorfismo Ereditarietà Meccanismo per definire una nuova classe (classe derivata) come specializzazione di un altra (classe base) La classe base modella un concetto generico La classe
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
Programmazione a Oggetti e JAVA. Prof. B.Buttarazzi A.A. 2012/2013
Programmazione a Oggetti e JAVA Prof. B.Buttarazzi A.A. 2012/2013 Sommario Paradigma O.O. Oggetti e Classi Ereditarietà Paradigma Object-Oriented Il paradigma O.O. si ispira all ambiente che ci circonda,
Introduzione. Java. Esempio. Esempio
Java polimorfismo G. Prencipe [email protected] Introduzione È un altro degli ingredienti fondamentali della OOP Permette di organizzare il codice e la leggibilità e di ottenere programmi estensibili
Classi astratte e progettazione OOP Esempio: l enciclopedia degli animali. Esempio Animali
Classi astratte e progettazione OOP Esempio: l enciclopedia degli animali 1 Ereditarietà, polimorfismo e altri sporchi trucchi Facciamo un esempio che ci permette di comprendere come vengono utilizzate
Lezione 13 Classi interne
Lezione 13 Classi interne Questa lezione chiude la parte del corso più squisitamente dedicata alla programmazione orientata agli oggetti con Java. Sarà esaminato un nuovo tipo di classi, finora taciuto,
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
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
Classi astratte e progettazione OOP Esempio: l enciclopedia degli animali
Classi astratte e progettazione OOP Esempio: l enciclopedia degli animali 1 Ereditarietà, polimorfismo e altri sporchi trucchi Facciamo un esempio che ci permette di comprendere come vengono utilizzate
Fondamenti di Informatica T-1. Costruttori Ereditarietà
Costruttori Ereditarietà 2 Costruttori Si occupano della creazione e dell'allocazione in memoria degli oggetti. public class Persona{ //Variabili di istanza private String nome; private String cognome;
In questa lezione. Polimorfismo
In questa lezione Polimorfismo (in Java) Tipo statico e tipo dinamico dei reference Binding dinamico (late binding) Casting (Upcasting e Downcasting) Operatore instanceof Polimorfismo con Object Polimorfismo
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
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
Fondamenti di Informatica T-1. Classi e metodi astratti
Classi e metodi astratti 2 Classi astratte L'ereditarietà è utile per rappresentare tassonomie e gerarchie di entità reali. Non sempre però tutti i livelli della gerarchia rappresentano entità concrete.
Classi astratte e progettazione OOP Esempio: l enciclopedia degli animali. Esempio Animali
Classi astratte e progettazione OOP Esempio: l enciclopedia degli animali 1 Ereditarietà, polimorfismo e altri sporchi trucchi Facciamo un esempio che ci permette di comprendere come vengono utilizzate
Ingegneria del Software
Ingegneria del Software Analisi Object Oriented ed Elementi di Programmazione OO Origini Le metodologie ad oggi nascono negli anni 70 ma si affermano solo nelgi anni 80 grazie alla nascita dei linguaggi
Laboratorio di programmazione
Laboratorio di programmazione Lezione VIII Tatiana Zolo [email protected] 1 PROGRAMMAZIONE A OGGETTI Quando si programma a oggetti si scompone il problema in sottogruppi di parti collegate che tengono
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
Programmazione ad oggetti
Programmazione ad oggetti OOP La programmazione orientata agli oggetti (Object Oriented Programming) ha l obiettivo di formalizzare gli oggetti del mondo reale e di costruire con questi un mondo virtuale.
Fondamenti di Informatica 1. Prof. B.Buttarazzi A.A. 2010/2011
Fondamenti di Informatica 1 Prof. B.Buttarazzi A.A. 2010/2011 Sommario Paradigma OO Incapsulamento Polimorfismo e Overloading Ereditarietà e Overriding Esercizi svolti Esercizi proposti Paradigma OO Le
Lezione 9 programmazione in Java Classi come contenitori
Lezione 9 programmazione in Java Classi come contenitori Nicola Drago [email protected] Dipartimento di Informatica Università di Verona Anteprima Gestione della Memoria Dati dinamici e statici Il passaggio
Programmazione Orientata agli Oggetti. Emilio Di Giacomo e Walter Didimo
Programmazione Orientata agli Oggetti Emilio Di Giacomo e Walter Didimo Una metafora dal mondo reale la fabbrica di giocattoli progettisti Un semplice giocattolo Impara i suoni Dall idea al progetto Toy
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
Gerarchia di classi Java 1
Costruttori della sottoclasse Gerarchia di classi Java Parte 2 Corso di laurea in Comunicazione digitale I costruttori non vengono ereditati, non essendo membri di classe Vengono definiti esplicitamente
Funzioni, Stack e Visibilità delle Variabili in C
Funzioni, Stack e Visibilità delle Variabili in C Programmazione I e Laboratorio Corso di Laurea in Informatica A.A. 2016/2017 Calendario delle lezioni Lez. 1 Lez. 2 Lez. 3 Lez. 4 Lez. 5 Lez. 6 Lez. 7
Introduzione alla programmazione Object Oriented. Luca Lista
Introduzione alla programmazione Object Oriented Luca Lista Concetti base del software OO Classi e oggetti Incapsulamento Relazione di ereditarietà Polimorfismo Cos è un Oggetto? Definizione da vocabolario:
Programmazione Orientata agli Oggetti
Programmazione Orientata agli Oggetti Lezione 13 La programmazione ad oggetti si basa su due principi fondamentali ereditarietà polimorfismo Queste due proprietà consentono di definire nuovi tipi di dato
Classi. Oggetti e classi. Creazione e inizializzazione di oggetti in C++ Distruzione di oggetti in C++
Informatica 3 Informatica 3 LEZIONE 7: Fondamenti di programmazione orientata agli oggetti (1) Modulo 1: Introduzione: oggetti e classi Modulo 2: Link e associazioni Modulo 3: Aggregazione Lezione 7 -
Definizione 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
ISTITUTO STATALE D ISTRUZIONE SUPERIORE FERRARIS - BRUNELLESCHI EMPOLI Anno scolastico 2015/2016
ISTITUTO STATALE D ISTRUZIONE SUPERIORE FERRARIS - BRUNELLESCHI EMPOLI Anno scolastico 2015/2016 Classe: 4^A inf Prof.ssa Lami Carla Prof. Simone Calugi Programma di INFORMATICA GENERALE, APPLICAZIONI
RETI 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
Programmazione a Oggetti Lezione 10. Ereditarieta
Programmazione a Oggetti Lezione 10 Ereditarieta Sommario Come definire sottoclassi Costruttori Abstract Classes Final Ereditarietà: promemoria Strumento tipico dell OOP per riusare il codice e creare
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
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
Il paradigma OO e le Classi
Oggetti e Classi (CAP 10) Alberto Garfagnini Università degli studi di Padova 1 Dicembre 2009 Il paradigma OO e le Classi La programmazione ad Oggetti () è una filosofia di programmazione che si basa sui
Laboratorio di Informatica 4 Novembre 2005
Laboratorio di Informatica 4 Novembre 2005 Marco Iarusso Programmazione Java Ringraziamenti Parte della presente dispensa materiale didattico è derivato dalla dispensa prodotta da Luca Cabibbo Dip. Informatica
13 - Gestione della Memoria nella Programmazione Orientata agli Oggetti
13 - Gestione della Memoria nella Programmazione Orientata agli Oggetti Programmazione e analisi di dati Modulo A: Programmazione in Java Paolo Milazzo Dipartimento di Informatica, Università di Pisa http://www.di.unipi.it/
18 - 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
6 - Blocchi e cicli. Programmazione e analisi di dati Modulo A: Programmazione in Java. Paolo Milazzo
6 - Blocchi e cicli 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
Java: loading dinamico e reflection
Java: loading dinamico e reflection Scopo del corso integrativo: Presentare le caratteristiche avanzate di Java che lo rendono un linguaggio molto flessibile pur senza rinunciare ai vantaggi di un typechecking
Definizione 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
Le basi del linguaggio Java
Corso di Laurea Ingegneria Civile Fondamenti di Informatica Dispensa 10 Le basi del linguaggio Java Aprile 2010 Le basi del linguaggio Java 1 Prerequisiti Nozioni generali sulla sintassi e semantica del
Fondamenti 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:
Java Virtual Machine. Indipendenza di java dalla macchina ospite. I threads in Java
programmi sorgente: files.java compilatore Indipendenza di java dalla macchina ospite Programmi java Programmi java Programmi java files.class bytecode linker/loader bytecode bytecode Java API files.class
Modulo 2: Strutture fondamentali della programmazione Java
Modulo 2: Strutture fondamentali della programmazione Java Argomenti Trattati: Un semplice programma Java: Presentazione di un primo Esempio; Introduzione alla struttura; Compilazione ed esecuzione. Argomenti
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,
La programmazione ad oggetti: chiamate di metodi. Overloading. This
ISTITUTO D ISTRUZIONE SUPERIORE FERRARIS BRUNELLESCHI - EMPOLI Materia: INFORMATICA PROGRAMMA SVOLTO A.S. 2015/2016 Classe IV C Informatica Proff. Fabio Ciao / Simone Calugi Libro di testo: Cloud B P.
Indice. Prefazione. 3 Oggetti e Java 53
Prefazione xv 1 Architettura dei calcolatori 1 1.1 Calcolatori e applicazioni 1 1.1.1 Alcuni esempi di applicazioni 3 1.1.2 Applicazioni e interfacce 4 1.2 Architettura dei calcolatori 7 1.2.1 Hardware
Polimorfismo parametrico vs polimorfismo per inclusione
Polimorfismo parametrico vs polimorfismo per inclusione Esercizio Definire il tipo di dato Stack con operazioni Push( element ) Pop() Non forzare una specifica implementazione Non forzare un tipo specifico
Java Native Interface Appunti
Java Native Interface Appunti Riccardo Rizzo 1/8 Introduzione L'uso delle Java Native Interface e' giustificato tutte quelle volte che una applicazione non puo' essere scritta interamente in Java. Per
Introduzione a Classi e Oggetti
Introduzione a Classi e Oggetti Oggetto: concetto astratto Entità di un programma dotata di tre proprietà caratteristiche stato informazioni conservate nell oggetto condizionano il comportamento dell oggetto
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
Prova d Esame Compito A
Domanda 1 A) Si richiede di analizzare le seguenti sezioni di codice. Il candidato indichi il risultato dell esecuzione del main. public class Father { private static int counter=0; private int code; public
7 - 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
