Programmazione Java: Variabili membro, Metodi La parola chiave final
|
|
|
- Federico Di Stefano
- 10 anni fa
- Visualizzazioni
Transcript
1 Programmazione Java: Variabili membro, Metodi La parola chiave final
2 Roadmap Definire una classe» Variabili membro» Metodi La parola chiave final
3 Definire una classe Programmare in Java significa definire classi» oltre che creare oggetti da queste classi» e inviare messaggi a questi oggetti Quando si definisce una classe è possibile includere due tipi di elementi (membri):» i campi, chiamati anche attributi o variabili membro o membri dati» i metodi, noti anche come funzioni membro Una volta dichiarati i membri di una classe, è possibile accedere ad essi utilizzando il carattere. : <nome_oggetto>.<nome_membro>
4 Definire una classe (2) Quando progettiamo una classe, decidiamo quali metodi e quali campi essa contiene:» i campi e i metodi definiti in una classe saranno poi utilizzati dall esterno della classe dal programmatore (con le debite limitazioni) Questo modo di pensare al design di una classe come ad un processo di creazione di elementi visibili dal programmatore, ci porta a vedere i campi e i metodi di una classe come una interfaccia della classe:» cioè possiamo pensare all oggetto come ad una scatola nera di cui noi vediamo solamente l interfaccia» inoltre possiamo anche non interessarci a come tale interfaccia è stata implementata
5 Progettare l interfaccia Quindi per definire una classe è opportuno prima pensare all interfaccia della classe, cioè a cosa quella classe deve mostrare al mondo esterno:» Rectangle -> translate, rotate, ecc E possibile definire dei metodi e delle variabili di una classe non visibili all esterno e quindi utilizzabili solamente dall interno della classe:» tali elementi non faranno parte dell interfaccia della classe ma serviranno alla classe stessa per realizzare operazioni interne
6 Proteggere l accesso dei membri Quando progettiamo una classe è necessario individuare ciò che sarà possibile utilizzare e cosa invece è solamente necessario al corretto funzionamento della classe:» nel secondo caso, diventa pericoloso permettere che altre classi possano modificare variabili o utilizzare funzioni pensate per lavorare sullo stato interno della classe stessa Esistono perciò diversi tipi di elementi membro di una classe:» public, la cui visibilità è totale: le variabili così sono leggibili e modificabili e le funzioni sono invocabili da chiunque» private, la cui visibilità è ristretta alla classe proprietaria» protected, la cui visibilità è limitata alle classi derivate
7 Variabili membro Una volta aperta la definizione di una classe, è possibile dichiarare le variabili membro della classe Tale dichiarazione avviene con una semplice istruzione di dichiarazione di variabile: public class Prova { public int a; private double b; Car auto; In tale forma le variabili non sono inizializzate e sarà necessario farlo o nel costruttore oppure nel codice di qualche metodo, comunque prima che vengano utilizzate
8 membro Variabili Sintassi [modificatoriaccesso] [static final transient volatile]* <tipo> <nome> modificatoriaccesso = [ public private protected ] Non possono apparire più di una volta Esempio» public static final String HELLO = Hello ;
9 Variabili membro E possibile però utilizzare la forma di dichiarazione delle variabili con inizializzazione immediata: public class Prova { public int x=3; private double b=2.3; Tale inizializzazione ha il risultato di inizializzare le variabili ai valori prescelti a tempo di costruzione, ossia come se tale inizializzazione fosse fatta nel costruttore
10 Metodi Sintassi [modificatoriaccesso] [ static abstract final native synchronized ]* ( nomemetodo(listaparametri tiporitorno [ throws exceptions] modificatoriaccesso = [ public private protected ] Non possono apparire più di una volta Esempio public static final String gethello() { return Hello World ;
11 Metodi Oltre alle variabili membro, è possibile specificare funzioni membro per una classe La dichiarazione di una funzione membro è del tutto simile ad una dichiarazione di funzione normale: public void translate(int dx, int dy, Car C) JAVA prevede di implementare la classe in fase di dichiarazione, quindi alla sintassi qui sopra seguirà immediatamente il blocco di implementazione: public void translate(int dx, int dy, Car C) { x=x+dx; y=y+dy; C.color= white ;
12 Metodi public class Rectangle { /** Variabili membro : coordinate del vertice alto a sx */ private int x; private int y; /** * Funzione membro : sposta il rect di dx e dy dx dy */ public void translate(int dx, int dy, Car C) { x = x + dx; y = y + dy; C.color = white ;
13 La parola chiave final Ha significati diversi a seconda del contesto, ma in generale dice: Questo non può essere cambiato Può essere utilizzato in tre casi:» Dati» Metodi» Classi
14 La parola chiave final > Dati Modo per dire al compilatore che un dato è costante Una costante è utile per due ragioni:» Può essere una costante nota in fase di compilazione che non cambierà mai Il compilatore può scrivere direttamente il valore costante in qualsiasi calcolo dove esso è utilizzato» Può essere un valore inizializzato in fase di esecuzione che non si vuole cambiare
15 La parola chiave final > Dati Indica una variabile (di istanza o di classe) che può essere assegnata una sola volta ovvero costante Una volta assegnata non può essere più modificata» Tipo reference non può essere modificato il riferimento» Valori all interno dell oggetto possono essere modificati Java non fornisce un modo per rendere costante un oggetto arbitrario. Questa limitazione comprende anche gli array Generalmente le costanti scritte in maiuscolo Generalmente vengono utilizzate in congiunzione con parola chiave static const parola chiave riservata ma non utilizzata
16 La parola chiave final > Dati public class FinalData { private static Random rand = new Random(); private String id; public FinalData(String id) { this.id = id; // Can be compile-time constants: Entrambi possono essere private final int VAL_ONE = 9; utilizzati come costanti in private static final int VAL_TWO = 99; fase di compilazione // Typical public constant: public static final int VAL_THREE = 39; // Cannot be compile-time constants: private final int i4 = rand.nextint(20); static final int i5 = rand.nextint(20); private Value v1 = new Value(11); private final Value v2 = new Value(22); private static final Value v3 = new Value(33); // Arrays: private final int[] a = { 1, 2, 3, 4, 5, 6 ; public String tostring() { return id + ": " + "i4 = " + i4 + ", i5 = " + i5; (vedere FinalData.java)
17 La parola chiave final > Dati public class FinalData { private static Random rand = new Random(); private String id; public FinalData(String id) { this.id = id; // Can be compile-time constants: Modo tipico di definire private final int VAL_ONE = 9; costanti, in questo modo è private static final int VAL_TWO = 99; possibile utilizzarle anche // Typical public constant: fuori dal package. Static per public static final int VAL_THREE = 39; mettere in rilievo che ce n è // Cannot be compile-time constants: una sola e final per dire che private final int i4 = rand.nextint(20); è una costante static final int i5 = rand.nextint(20); private Value v1 = new Value(11); private final Value v2 = new Value(22); private static final Value v3 = new Value(33); // Arrays: private final int[] a = { 1, 2, 3, 4, 5, 6 ; public String tostring() { return id + ": " + "i4 = " + i4 + ", i5 = " + i5; (vedere FinalData.java)
18 La parola chiave final > Dati public class FinalData { private static Random rand = new Random(); private String id; public FinalData(String id) { this.id = id; // Can be compile-time constants: private final int VAL_ONE = 9; private static final int VAL_TWO = 99; // Typical public constant: public static final int VAL_THREE = 39; // Cannot be compile-time constants: private final int i4 = rand.nextint(20); static final int i5 = rand.nextint(20); private Value v1 = new Value(11); private final Value v2 = new Value(22); private static final Value v3 = new Value(33); // Arrays: private final int[] a = { 1, 2, 3, 4, 5, 6 ; public String tostring() { return id + ": " + "i4 = " + i4 + ", i5 = " + i5; Il fatto di essere final non significa essere noto in fase di compilazione Tale differenza si ha solo quando i valori vengono inizializzati in fase di esecuzione (vedere FinalData.java)
19 La parola chiave final > Dati public class FinalData { private static Random rand = new Random(); private String id; public FinalData(String id) { this.id = id; // Can be compile-time constants: In questo caso emerge la private final int VAL_ONE = 9; differenza tra final static e private static final int VAL_TWO = 99; solo final // Typical public constant: il valore di i4 cambia per public static final int VAL_THREE = 39; ogni istanza di FinalData // Cannot be compile-time constants: private final int i4 = rand.nextint(20); static final int i5 = rand.nextint(20); private Value v1 = new Value(11); private final Value v2 = new Value(22); private static final Value v3 = new Value(33); // Arrays: private final int[] a = { 1, 2, 3, 4, 5, 6 ; public String tostring() { Il valore di i5 rimane sempre uguale a quello dell inizializzazione avvenuta con la creazione della prima istanza di FinalData return id + ": " + "i4 = " + i4 + ", i5 = " + i5; (vedere FinalData.java)
20 La parola chiave final > Dati public class FinalData { private static Random rand = new Random(); private String id; public FinalData(String id) { this.id = id; // Can be compile-time constants: private final int VAL_ONE = 9; private static final int VAL_TWO = 99; // Typical public constant: public static final int VAL_THREE = 39; // Cannot be compile-time constants: private final int i4 = rand.nextint(20); static final int i5 = rand.nextint(20); private Value v1 = new Value(11); private final Value v2 = new Value(22); private static final Value v3 = new Value(33); // Arrays: private final int[] a = { 1, 2, 3, 4, 5, 6 ; public String tostring() { return id + ": " + "i4 = " + i4 + ", i5 = " + i5; v2 è final ma il suo valore (l oggetto Value) può essere cambiato Non si può però cambiare il riferimento v2 ad un nuovo oggetto Stessa cosa anche per gli array (vedere FinalData.java)
21 La parola chiave final > Dati E possibile assegnare il valore della variabile NON ( final contestualmente alla dichiarazione (blank E necessario inizializzare le variabili final prima di poter essere utilizzato» Variabile di istanza E necessario inizializzarla in tutti i costruttori oppure all interno di un inizializzatore di istanza» Variabile di classe E necessario inizializzarla all interno di un inizializzatore statico Un errore in fase di compilazione viene restituito in caso contrario
22 La parola chiave final > Dati I blank final forniscono molta più flessibilità nell utilizzo» Ad esempio un campo final di una classe può così essere diverso per ciascun oggetto (Vedere BlankFinal.java)
23 La parola chiave final > Dati class Poppet { private int i; Poppet(int ii) { i = ii; public class BlankFinal { private final int i = 0; private final int j; private final Poppet p; // Initialized final // Blank final // Blank final reference // Blank finals MUST be initialized in the constructor: public BlankFinal() { j = 1; // Initialize blank final p = new Poppet(1); // Initialize blank final reference public BlankFinal(int x) { j = x; // Initialize blank final p = new Poppet(x); // Initialize blank final reference public static void main(string[] args) { new BlankFinal(); new BlankFinal(47); (vedere BlankFinal.java)
24 La parola chiave final > Dati public class Constants { public static void main(string[] args) { final double CM_PER_INCH = 2.54; System.out.println( Centimetri per inch: + CM_PER_INCH); CM_PER_INCH = 10.30; //ERRORE IN COMPILAZIONE //OPPURE public static final double CM_PER_INCH = 2.54;
25 La parola chiave final > Dati class Point { int x,y; final Point root; static final Point ORIGIN; static { ORIGIN = new Point(0,0); public Point(int x, int y ){ this.x = x; this.y = y; root = null; public Point(int x, int y, Point root ){ this.x = x; this.y = y; this.root = root;
26 La parola chiave final > Dati class Test { public static void main(string[] args) { Point p1 = new Point(100,100); Point p2 = new Point(200,200,p1); p1.root = new Point(300,300); //ERRORE p2.root.x = 300; //OK System.out.println("ORIGIN.x:" + Point.ORIGIN.x); Point.ORIGIN = new Point(1000, 1000); //ERRORE Point.ORIGIN.x = 400; //OK
27 La parola chiave final > Argomenti Java permette di rendere final gli argomenti dichiarandoli come tali nell elenco degli argomenti All interno del metodo si può cambiare ciò a cui punta il riferimento all argomento (vedere FinalArguments.java)
28 La parola chiave final > Argomenti class Gizmo { public void spin() { public class FinalArguments { void with(final Gizmo g) { //! g = new Gizmo(); // Illegal -- g is final void without(gizmo g) { g = new Gizmo(); // OK -- g not final g.spin(); // void f(final int i) { i++; // Can't change // You can only read from a final primitive: int g(final int i) { return i + 1; public static void main(string[] args) { FinalArguments bf = new FinalArguments(); bf.without(null); bf.with(null); (vedere FinalArguments.java)
29 La parola chiave final > Metodi Un metodo può essere definito final:» Per evitare che una classe che eredita ne cambi il significato» Per ragioni di efficienza public class A { final void m1(){ void m2(){ public class B extends A{ //! void m1() { Illegal void m2() {
30 La parola chiave final > Metodi Tutti i metodi private di una classe sono implicitamente final» Poiché non si può accedere ad un metodo private, non si può ridefinirlo (Vedere FinalOverridingIllusion.java)
31 La parola chiave final > Classi Definendo una class final si stabilisce che non si vuole ereditare da quella classe o permettere a qualcun altro di farlo I campi di una classe final possono essere o non essere final Poiché con final si impedisce l ereditarietà, tutti I metodi di una classe final sono implicitamente final, dato che non c è modo di ridefinirli (Vedere Jurassic.java)
Introduzione. Java. Composizione. Esempio -- composizione. G. Prencipe [email protected]. È qualcosa che abbiamo già visto varie volte
Java riutilizzo delle classi G. Prencipe [email protected] Introduzione Una delle caratteristiche fondamentali in Java è il riutilizzo del codice Ci sono due modi per ottenerlo Creare oggetti di classi
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/
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
Oggetti Lezione 3. aspetti generali e definizione di classi I
Programmazione a Oggetti Lezione 3 Il linguaggio Java: aspetti generali e definizione di classi I Sommario Storia e Motivazioni Definizione di Classi Campi e Metodi Istanziazione di oggetti Introduzione
Java: Compilatore e Interprete
Java: Compilatore e Interprete Java Virtual Machine Il bytecode non è Linguaggio Macchina. Per diventarlo, deve subire un ulteriore trasformazione che viene operata dall interprete Java in modalità JIT
Modulo 4: Ereditarietà, interfacce e clonazione
Modulo 4: Ereditarietà, interfacce e clonazione Argomenti Trattati: Classi, Superclassi e Sottoclassi Ereditarietà Ereditarietà ed Attributi Privati Override super Ereditarietà e Costruttori Polimorfismo
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
Java:Struttura di Programma. Fabio Scanu a.s. 2014/2015
Java:Struttura di Programma Fabio Scanu a.s. 2014/2015 Altre Attenzioni da riservare Java è Case Sensitive: La variabile «a» e la variabile «A» sono diverse Java ha alcune regole di scrittura: I nomi delle
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
La prima applicazione Java. Creazione di oggetti - 1. La prima applicazione Java: schema di esecuzione. Gianpaolo Cugola - Sistemi Informativi in Rete
La prima applicazione Java Programma MyFirstApplication Il programma visualizza una finestra vuota sullo schermo. Importo il package delle classi usate nel seguito. Dichiaro la classe MyFirstApplication
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
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
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,
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
Università di Torino Facoltà di Scienze MFN Corso di Studi in Informatica. Programmazione I - corso B a.a. 2009-10. prof.
Università di Torino Facoltà di Scienze MFN Corso di Studi in Informatica Programmazione I - corso B a.a. 009-10 prof. Viviana Bono Blocco 9 Metodi statici: passaggio parametri, variabili locali, record
Inizializzazione, Assegnamento e Distruzione di Classi
Inizializzazione, Assegnamento e Distruzione di Classi Lezione 9 Operazioni Automatiche In ogni programma C++ oggetti classe vengono gestiti automaticamente dal compilatore Inizializzati al momento della
Funzioni in C. Violetta Lonati
Università degli studi di Milano Dipartimento di Scienze dell Informazione Laboratorio di algoritmi e strutture dati Corso di laurea in Informatica Funzioni - in breve: Funzioni Definizione di funzioni
!"#$%&&'()#*%+%+!"#$"',,'()#*%+ -")%*&'&'+'$.)+-$$%&&) !"#$%&&'(%)'*+%",#-%"#.'%&'#/0)-+#12"+3,)4+56#7+#.')8'9
!"#$%&&'()#*%+%+!"#$"',,'()#*%+ -")%*&'&'+'$.)+-$$%&&)!"#$%&&'(%)'*+%",#-%"#.'%&'#/0)-+#12"+3,)4+56#7+#.')8'9 Slide 1 Paradigmi di Programmazione! Un linguaggio supporta uno stile di programmazione se
Uso di JUnit. Fondamenti di informatica Oggetti e Java. JUnit. Luca Cabibbo. ottobre 2012
Fondamenti di informatica Oggetti e Java ottobre 2012 1 JUnit JUnit è uno strumento per assistere il programmatore Java nel testing JUnit consente di scrivere test di oggetti e classi Java i test sono
Algebra di Boole: Concetti di base. Fondamenti di Informatica - D. Talia - UNICAL 1. Fondamenti di Informatica
Fondamenti di Informatica Algebra di Boole: Concetti di base Fondamenti di Informatica - D. Talia - UNICAL 1 Algebra di Boole E un algebra basata su tre operazioni logiche OR AND NOT Ed operandi che possono
Prossime lezioni. Dai TDA agli oggetti. Riassunto. Riassunto TDA. Oggi. Stefano Mizzaro 1
Prossime lezioni Dai TDA agli oggetti Stefano Mizzaro Dipartimento di matematica e informatica Università di Udine http://www.dimi.uniud.it/mizzaro [email protected] Programmazione, lezione 18 19 gennaio
Esercizi sulla definizione di classi (Fondamenti di Informatica 1 Walter Didimo) Soluzioni
Esercizi sulla definizione di classi (Fondamenti di Informatica 1 Walter Didimo) Soluzioni Esercizio 1 Nella classe definita di seguito indicare quali sono le variabili di istanza, quali sono le variabili
Concetto di Funzione e Procedura METODI in Java
Fondamenti di Informatica Concetto di Funzione e Procedura METODI in Java Fondamenti di Informatica - D. Talia - UNICAL 1 Metodi e Sottoprogrammi Mentre in Java tramite le classi e gli oggetti è possibile
Corso di Laurea Ingegneria Informatica Fondamenti di Informatica
Corso di Laurea Ingegneria Informatica Fondamenti di Informatica Dispensa E01 Esempi di programmi A. Miola Ottobre 2011 1 Contenuti Vediamo in questa lezione alcuni primi semplici esempi di applicazioni
Introduzione alla programmazione in C
Introduzione alla programmazione in C Testi Consigliati: A. Kelley & I. Pohl C didattica e programmazione B.W. Kernighan & D. M. Ritchie Linguaggio C P. Tosoratti Introduzione all informatica Materiale
Le variabili. Olga Scotti
Le variabili Olga Scotti Cos è una variabile Le variabili, in un linguaggio di programmazione, sono dei contenitori. Possono essere riempiti con un valore che poi può essere riletto oppure sostituito.
Ottava Esercitazione. introduzione ai thread java mutua esclusione
Ottava Esercitazione introduzione ai thread java mutua esclusione Agenda Esempio 1 Concorrenza in Java: creazione ed attivazione di thread concorrenti. Esercizio 2 da svolgere Concorrenza in Java: sincronizzazione
Eredità in C++ Corso di Linguaggi di Programmazione ad Oggetti 1. a cura di Giancarlo Cherchi
Eredità in C++ Corso di Linguaggi di Programmazione ad Oggetti 1 a cura di Giancarlo Cherchi 1 Introduzione Il meccanismo dell eredità consente di sfruttare delle relazioni tipo/sottotipo, ereditando attributi
Prova di Laboratorio di Programmazione
Prova di Laboratorio di Programmazione 6 febbraio 015 ATTENZIONE: Non è possibile usare le classi del package prog.io del libro di testo. Oltre ai metodi richiesti in ciascuna classe, è opportuno implementare
costruttori e distruttori
costruttori e distruttori Costruttore E un metodo che ha lo stesso nome della classe a cui appartiene: serve per inizializzare un oggetto all atto della sua creazione Ce ne possono essere uno, più di uno,
Siti web centrati sui dati Architettura MVC-2: i JavaBeans
Siti web centrati sui dati Architettura MVC-2: i JavaBeans 1 ALBERTO BELUSSI ANNO ACCADEMICO 2009/2010 Limiti dell approccio SEVLET UNICA La servlet svolge tre tipi di funzioni distinte: Interazione con
Telematica II 17. Esercitazione/Laboratorio 6
Multitasking e Multithreading Telematica II 17. Esercitazione/Laboratorio 6 Multitasking si riferisce all abilità di un computer di eseguire processi (jobs) multipli in maniera concorrente si ricorda che
Introduzione al linguaggio C Gli array
Introduzione al linguaggio C Gli array Vettori nome del vettore (tutti gli elementi hanno lo stesso nome, c) Vettore (Array) Gruppo di posizioni (o locazioni di memoria) consecutive Hanno lo stesso nome
3 - Variabili. Programmazione e analisi di dati Modulo A: Programmazione in Java. Paolo Milazzo
3 - Variabili 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
Gli array. Gli array. Gli array. Classi di memorizzazione per array. Inizializzazione esplicita degli array. Array e puntatori
Gli array Array e puntatori Laboratorio di Informatica I un array è un insieme di elementi (valori) avente le seguenti caratteristiche: - un array è ordinato: agli elementi dell array è assegnato un ordine
UML Diagrammi delle classi. UML Diagramma classi 1
UML Diagrammi delle classi UML Diagramma classi 1 Diagramma delle classi Non è nei nostri obiettivi affrontare UML nel suo complesso Ci concentreremo sui diagrammi delle classi che ci forniscono un linguaggio
Pila di interi. Car 1. Car n. Pila di interi: Pila di Oggetti: Gli elementi che sono inseriti e tolti dalla pila sono numeri interi
Pila di Oggetti Leonardo Rigutini Dipartimento Ingegneria dell Informazione Università di Siena Via Roma 56 53100 SIENA Uff. 0577 234850 - interno: 7102 [email protected] http://www.dii.unisi.it/~rigutini/
Controllo degli accessi
Il linguaggio Java Il controllo degli accessi alle classi ed ai membri di una classe Controllo degli accessi Accesso alle classi Accesso alle classi package package miopackage; public public class class
Progettazione : Design Pattern Creazionali
Progettazione : Design Pattern Creazionali Alessandro Martinelli [email protected] 30 Novembre 2010 Progettazione : Design Pattern Creazionali Aspetti generali dei Design Pattern Creazionali
Architettura MVC-2: i JavaBeans
Siti web centrati sui dati Architettura MVC-2: i JavaBeans Alberto Belussi anno accademico 2008/2009 Limiti dell approccio SEVLET UNICA La servlet svolge tre tipi di funzioni distinte: Interazione con
Programmazione a Oggetti Modulo B
Programmazione a Oggetti Modulo B Progetto Dott. Alessandro Roncato 4/10/2011 Progetto Da svolgere singolarmente Scadenza consegna: una settimana prima dello scritto; Valutazione in base a: Corretta compilazione
Corso di Informatica Corso di Laurea in Ingegneria Gestionale a.a. 2005-06 Secondo Compitino 17 Dicembre 2005
Studente (Cognome Nome): Matricola: Corso di Informatica Corso di Laurea in Ingegneria Gestionale a.a. 2005-06 Secondo Compitino 17 Dicembre 2005 Si noti che le soluzioni ai quesiti saranno considerate
Fondamenti di Informatica C Esercitazioni di Laboratorio / 3 http://polaris.ing.unimo.it/fic/laboratorio.html. Outline
Fondamenti di Informatica C Esercitazioni di Laboratorio / 3 http://polaris.ing.unimo.it/fic/laboratorio.html Ing. Francesco De Mola [email protected] DII, Modena Via Vignolese (lab. Dottorandi
Corso di Informatica
Corso di Informatica Modulo T1 B2 Significato e proprietà della OOP 1 Prerequisiti Concetto ed elementi della comunicazione Allocazione e deallocazione della memoria Compilazione di un programma Spazio
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
Un esercizio d esame. Flavio De Paoli
Un esercizio d esame e note sulla gestione dei dati Flavio De Paoli Il testo (Appello 22 ottobre 2001) Una stazione di servizio dispone di n distributori di benzina. I clienti si presentano a uno dei distributori
Reflection in Java. Linguaggi Corso M-Z - Laurea in Ingegneria Informatica A.A. 2009-2010
Linguaggi Corso M-Z - Laurea in Ingegneria Informatica A.A. 2009-2010 Alessandro Longheu http://www.diit.unict.it/users/alongheu [email protected] Reflection in Java 1 Reflection Riflessione
Esercitazione n 4. Obiettivi
Esercitazione n 4 Obiettivi Progettare e implementare per intero un componente software in Java Linguaggio Java: Classi astratte Utilizzo di costruttori e metodi di superclasse Polimorfismo Esempio guida:
Strutture. Strutture e Unioni. Definizione di strutture (2) Definizione di strutture (1)
Strutture Strutture e Unioni DD cap.10 pp.379-391, 405-406 KP cap. 9 pp.361-379 Strutture Collezioni di variabili correlate (aggregati) sotto un unico nome Possono contenere variabili con diversi nomi
La gestione dell input/output da tastiera La gestione dell input/output da file La gestione delle eccezioni
La gestione dell input/output da tastiera La gestione dell input/output da file La gestione delle eccezioni Autore: Prof. Agostino Sorbara ITIS "M. M. Milano" Autore: Prof. Agostino Sorbara ITIS "M. M.
Corso di Fondamenti di Informatica
Corso di Fondamenti di Informatica I tipi strutturati: gli array e le strutture Claudio De Stefano - Corso di Fondamenti di Informatica 1 arrays un array (o vettore) è una sequenza di oggetti dello stesso
Multithreading in Java. Fondamenti di Sistemi Informativi 2014-2015
Multithreading in Java Fondamenti di Sistemi Informativi 2014-2015 Multithreading La programmazione concorrente consente di eseguire più processi o thread nello stesso momento. Nel secondo caso si parla
Uno dei pregi di Java è quello di integrare la documentazione con il codice stesso Formato dei commenti:
Javadoc Uno dei pregi di Java è quello di integrare la documentazione con il codice stesso Formato dei commenti: /* commenti */ // commenti /** commenti documentazione */ Questi ultimi generano automaticamente
Object Oriented Programming
OOP Object Oriented Programming Programmazione orientata agli oggetti La programmazione orientata agli oggetti (Object Oriented Programming) è un paradigma di programmazione Permette di raggruppare in
Client e Server comunicano tramite il protocollo SOAP.
In questo tutorial implementeremo un semplice SOAP web service in PHP che un client Java richiamerà. In questo modo mostreremo l'interoperabilità fra linguaggi diversi che SOAP permette di avere. La struttura
Come si può vedere, la regola è stata fatta in modo da spostare tutti i messaggi di Spam nella cartella del cestino.
www.playnet.it agg. Documento 1/03/2007 REGOLE DEL CLIENT Le regole del client sono un sistema di smistamento dei messaggi (arrivati) fra le varie cartelle di posta presenti sul server. Possono essere
Realizzazione di una classe con un associazione
Realizzazione di una classe con un associazione Nel realizzare una classe che è coinvolta in un associazione, ci dobbiamo chiedere se la classe ha responsabilità sull associazione. Diciamo che una classe
Visibilità dei Membri di una Classe
Visibilità dei Membri di una Classe Lezione 10 Ogni classe definisce un proprio scope racchiude il codice contenuto nella definizione della classe e di tutti i suoi membri ogni metodo della classe definisce
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
esercizi Esercizi / problemi
Sistemi informativi applicati (reti di calcolatori): esercizi 1 Esercizi / problemi 1. Creare un applicazione che calcoli la media aritmetica dei seguenti valori interi: 35, 117, 23 e ne visualizzi il
GESTIONE DEI PROCESSI
Sistemi Operativi GESTIONE DEI PROCESSI Processi Concetto di Processo Scheduling di Processi Operazioni su Processi Processi Cooperanti Concetto di Thread Modelli Multithread I thread in Java Concetto
Programmare in Java. Olga Scotti
Programmare in Java Olga Scotti Linguaggi di programmazione linguaggio macchina assembler linguaggi ad alto livello Linguaggi ad alto livello istruzioni comprensibili linguaggio simile a quello naturale
Main System Monitor Keyboard
Composite 57 8. Composite (Gof pag. 163) 8.1. Descrizione Consente la costruzione di gerarchie di oggetti composti. Gli oggetti composti possono essere conformati da oggetti singoli, oppure da altri oggetti
Eclipse. Avviare un progetto e compilare un semplice programma
Eclipse Avviare un progetto e compilare un semplice programma Descrizione di Eclipse Eclipse è un ambiente di sviluppo che facilita la scrittura ed il debug di programmi java Permette di: Scrivere il codice
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
Soluzione dell esercizio del 2 Febbraio 2004
Soluzione dell esercizio del 2 Febbraio 2004 1. Casi d uso I casi d uso sono riportati in Figura 1. Figura 1: Diagramma dei casi d uso. E evidenziato un sotto caso di uso. 2. Modello concettuale Osserviamo
Programmazione in Java (I modulo) Lezione 3: Prime nozioni
Programmazione in Java (I modulo) Lezione 3: Prime nozioni La volta scorsa Abbiamo avuto un primo assaggio! Abbiamo visto come usare l editor per scrivere un programma Java. Abbiamo analizzato riga per
Struttura di un programma Java
Struttura di un programma Java Un programma in Java è un insieme di dichiarazioni di classi. Una classe non può contenere direttamente delle istruzioni, ma può contenere la dichiarazione di metodi, che
void funzioneprova() { int x=2; cout<<"dentro la funzione x="<<x<<endl; }
FUNZIONI 57. Cosa servono le funzioni? A spezzare il programma in diverse parti relativamente indipendenti fra loro, ovvero interagenti sono attraverso i parametri di input ed IL VALORE di uscita. In questo
Corso di Informatica (Programmazione) Lezione 6 (31 ottobre 2008)
Corso di Informatica (Programmazione) Lezione 6 (31 ottobre 2008) Introduzione a Java: primo programma, installazione dell ambiente di sviluppo, compilazione ed esecuzione 1 Introduzione Java è un linguaggio
Programmazione Orientata agli Oggetti in Linguaggio Java
Programmazione Orientata agli Oggetti in Linguaggio Java Programmazione Grafica: Thread versione 1.0 Questo lavoro è concesso in uso secondo i termini di una licenza Creative Commons (vedi ultima pagina)
dall argomento argomento della malloc()
Allocazione dinamica Quando? Tutte le volte in cui i dati possono crescere in modo non prevedibile staticamente a tempo di sviluppo Un array con dimensione i fissata a compile-time non è sufficiente È
Object Oriented Software Design
Dipartimento di Informatica e Sistemistica Antonio Ruberti Sapienza Università di Roma Object Oriented Software Design Corso di Tecniche di Programmazione Laurea in Ingegneria Informatica (Canale di Ingegneria
Allocazione dinamica della memoria - riepilogo
Università degli studi di Milano Dipartimento di Scienze dell Informazione Laboratorio di algoritmi e strutture dati Corso di laurea in Informatica In breve Storage duration Allocazione dinamica della
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
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/
La struttura dati ad albero binario
La struttura dati ad albero binario L albero è una struttura dati nella quale le informazioni sono organizzate in modo gerarchico, dall alto verso il basso. Gli elementi di un albero si chiamano nodi,
Specifica i tipi di oggetti a creare, utilizzando un istanza prototipo, e crea nuove istanze tramite la copia di questo prototipo.
Prototype 28 4. Prototype (GoF pag. 117) 4.1. Descrizione 4.2. Esempio Specifica i tipi di oggetti a creare, utilizzando un istanza prototipo, e crea nuove istanze tramite la copia di questo prototipo.
Java Virtual Machine
Java Virtual Machine programmi sorgente: files.java compilatore files.class bytecode linker/loader bytecode bytecode Java API files.class interprete macchina ospite Indipendenza di java dalla macchina
Appunti di Informatica www.mimmocorrado.it 1
Installare Java Il programma può essere scaricato dal seguente indirizzo: http://www.java.com/it/download/windows_ie.jsp?locale=it&host=www.java.com Per installare la JDK è necessario: 1. scaricare il
Corso di Laurea in Ingegneria Gestionale Esame di Informatica - a.a. 2012-13 25 luglio 2013
Cognome Nome Matricola Postazione PC Corso di Laurea in Ingegneria Gestionale Esame di Informatica - a.a. 2012-13 25 luglio 2013 Testo Il database di una banca è costituito da due vettori paralleli. Il
Realizzazione di Politiche di Gestione delle Risorse: i Semafori Privati
Realizzazione di Politiche di Gestione delle Risorse: i Semafori Privati Condizione di sincronizzazione Qualora si voglia realizzare una determinata politica di gestione delle risorse,la decisione se ad
Programmazione Orientata agli Oggetti in Linguaggio Java
Programmazione Orientata agli Oggetti in Linguaggio Java Design Pattern: Storia Parte b versione 2.1 Questo lavoro è concesso in uso secondo i termini di una licenza Creative Commons (vedi ultima pagina)
ARRAY BIDIMENSIONALI float [][] mx = new float[3][4]; (float []) [] mx = new float[3][4];
ARRAY BIDIMENSIONALI Si possono definire array di qualunque tipo di dato, quindi anche di altre array float [][] mx = new float[3][4]; ovvero.. (float []) [] mx = new float[3][4]; La loro motivazione (storica)
10.1. Un indirizzo IP viene rappresentato in Java come un'istanza della classe InetAddress.
ESERCIZIARIO Risposte ai quesiti: 10.1. Un indirizzo IP viene rappresentato in Java come un'istanza della classe InetAddress. 10.2. Un numero intero in Java è compreso nell'intervallo ( 2 31 ) e (2 31
Corso Eclipse. Prerequisiti. 1 Introduzione
Corso Eclipse 1 Introduzione 1 Prerequisiti Uso elementare del pc Esecuzione ricerche su Internet Esecuzione download Conoscenza elementare della programmazione 2 1 Cos è Eclipse Eclipse è un IDE (Integrated
7 Esercitazione (svolta): Callback. Polling. Java RMI: callback. Server. Server. Client. Client. due possibilità:
7 Esercitazione (svolta): due possibilità: Java RMI: callback Molte applicazioni richiedono un meccanismo publish/subscribe I partecipanti (client) necessitano di notifiche da parte del coordinatore (server)
Scrivere un programma in Java
Programmare in JAVA Leonardo Rigutini Dipartimento Ingegneria dell Informazione Università di Siena Via Roma 56 53100 SIENA uff. 0577 234850 - interno: 7102 Stanza 119 [email protected] http://www.dii.unisi.it/~rigutini/
http://www.programmiamo.altervista.org/c/oop/o...
PROGRAMMIAMO Programma per la gestione di un conto corrente C++ - Costruttore e distruttore C++ Home Contatti Supponiamo ora di voler scrivere un programma a menu per la gestione di un conto corrente bancario.
Informatica. Prof. A. Longheu. Introduzione ai Linguaggi Object-Oriented
Informatica Prof. A. Longheu Introduzione ai Linguaggi Object-Oriented 1 Generalità programmazione OO La programmazione ad oggetti è un particolare modo di scrivere il programma. Si prevede che: 1) si
Java: Compilazione e Traduzione. Fondamenti di Informatica L-B Esercitazione n 3 Introduzione a JAVA. C: Editing, compilazione, esecuzione
Fondamenti di Informatica L-B Esercitazione n 3 Introduzione a JAVA A.A. 2007/08 Tutor: Barbara Pettazzoni [email protected] Java: Compilazione e Traduzione Editing, compilazione, esecuzione
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
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
19. LA PROGRAMMAZIONE LATO SERVER
19. LA PROGRAMMAZIONE LATO SERVER Introduciamo uno pseudocodice lato server che chiameremo Pserv che utilizzeremo come al solito per introdurre le problematiche da affrontare, indipendentemente dagli specifici
Per scrivere una procedura che non deve restituire nessun valore e deve solo contenere le informazioni per le modalità delle porte e controlli
CODICE Le fonti in cui si possono trovare tutorial o esempi di progetti utilizzati con Arduino si trovano nel sito ufficiale di Arduino, oppure nei forum di domotica e robotica. Il codice utilizzato per
Programmazione ad oggetti
DAIS Univ. Ca' Foscari Venezia Programmazione ad oggetti Samuel Rota Bulò Informazioni generali Docente: Samuel Rota Bulò @email: [email protected] Homepage: http://www.dais.unive.it/~srotabul/ ooprogramming2012.html
