Docsity
Docsity

Prepara i tuoi esami
Prepara i tuoi esami

Studia grazie alle numerose risorse presenti su Docsity


Ottieni i punti per scaricare
Ottieni i punti per scaricare

Guadagna punti aiutando altri studenti oppure acquistali con un piano Premium


Guide e consigli
Guide e consigli


Programmazione ad Oggetti: Overloading, Costruttori e Distruttori - Prof. Ficco, Uni. Camp, Dispense di Programmazione Java

Una introduzione alla programmazione ad oggetti, con un focus su overloading, costruttori e distruttori. Il docente, Massimo Ficco, insegnante all'Università di Campania - Luigi Vanvitelli, spiega l'importanza dei nomi, l'overload di metodi e costruttori, e fornisce esempi per illustrare le concept. tratto dal corso di Ingegneria Industriale e dell’Informazione, a.a. 2017-2018.

Tipologia: Dispense

2019/2020

Caricato il 01/09/2020

luigi-magia
luigi-magia 🇮🇹

4.4

(125)

44 documenti

1 / 12

Toggle sidebar

Questa pagina non è visibile nell’anteprima

Non perderti parti importanti!

bg1
Docente: Ing. Massimo Ficco
1
Università di degli Studi della Campania
Luigi Vanvitelli
Ingegneria Industriale e dell’Informazione
Programmazione ad Oggetti
a.a. 2017-2018
Overloading
Costruttori e Distruttori
Programmazione ad Oggetti - Prof. Massimo Ficco
Importanza dei nomi
È importante l’uso dei nomi nello scrivere un programma.
Quando si crea un oggetto si da un nome ad una regione
della memoria.
Un metodo è un nome associato ad un’azione
Assegnando a metodi e variabili nomi significativi si rende
più leggibile il proprio programma
pf3
pf4
pf5
pf8
pf9
pfa

Anteprima parziale del testo

Scarica Programmazione ad Oggetti: Overloading, Costruttori e Distruttori - Prof. Ficco, Uni. Camp e più Dispense in PDF di Programmazione Java solo su Docsity!

Docente: Ing. Massimo Ficco E-mail: [email protected] t 1

Università di degli Studi della Campania

Luigi Vanvitelli

Ingegneria Industriale e dell’Informazione

Programmazione ad Oggetti

a.a. 2017 - 2018

Overloading

Costruttori e Distruttori

Importanza dei nomi È importante l’uso dei nomi nello scrivere un programma. Quando si crea un oggetto si da un nome ad una regione della memoria. Un metodo è un nome associato ad un’azione Assegnando a metodi e variabili nomi significativi si rende più leggibile il proprio programma

Programmazione ad Oggetti - Prof. Massimo Ficco Overload Un nome è Overloaded quando assume più significati:  Lavare la maglia  Lavare il cane  Lavare la macchina Nell’esempio è l’oggetto che da significato al verbo. Elementi di distinzioni L’overload di un metodo si distingue in base a:  Il tipo dei parametri  L’ordine dei parametri Non è possibile definire un overload in base al valore di ritorno:  int f(); o float f(); Si capirebbe quale utilizzare solo se scrivessi sempre int x=f();

Programmazione ad Oggetti - Prof. Massimo Ficco 7 Overload Ex. Overload. class Tree { int height=0; void info() { System.out.println("Tree is " + height + " feet tall"); } void info(String s) { System.out.println(s + ": Tree is " + height + " feet tall"); } } public class Overloading { public static void main(String[] args) { Tree t = new Tree(); t.info(); t.info("overloaded method"); }

Programmazione ad Oggetti - Prof. Massimo Ficco

Overloading.

public class OverloadingOrder { static void print(String s, int i) { System.out.println("String: " + s + ", int: " + i); } static void print(int i, String s) { System.out.println("int: " + i + ", String: " + s);} public static void main(String[] args) { print("String first", 11); print(99, "Int first"); } }

Il costruttore

Programmazione ad Oggetti - Prof. Massimo Ficco Il costruttore di default Se definisco un costruttore senza parametri l’operatore new utilizza quello da me definito Se non definisco un costruttore senza parametri posso usare quello di default di java che alloca semplicemente l’oggetto Esempio 1: public class Albero { int altezza=0; public Albero () { System.out.println(“Costruito un albero di altezza”+altezza); } }

Programmazione ad Oggetti - Prof. Massimo Ficco Esempio 2 public class Albero{ int altezza=0; public Albero (){System.out.println(“Pianto un seme !”);} public Albero (int h) { altezza=h; System.out.println(“Costruito un albero di altezza”+altezza); } } Overload del Costruttore

Programmazione ad Oggetti - Prof. Massimo Ficco Il distruttore Esempio. String a=new String(“casa”); String b=a; a=null; //b punta ancora all’oggetto b=null; //oggetto può essere distrutto Operazioni di finalizzazione Se serve effettuare delle operazioni prima che l’oggetto venga distrutto è possibile definire un metodo finalize:  Esso viene richiamato appena prima l’operazione di deallocazione

Programmazione ad Oggetti - Prof. Massimo Ficco

Distruttore esempio.

class Book { boolean checkedOut = false; Book(boolean checkOut) { checkedOut = checkOut; } void checkIn() { checkedOut = false; } public void finalize() { if(checkedOut) System.out.println("Error: checked out");} } public class TerminationCondition { public static void main(String[] args) { Book novel = new Book(true); // Proper cleanup: novel.checkIn(); // Drop the reference, forget to clean up: novel = new Book(true); // Force garbage collection & finalization: System.gc(); } } ///:~

Persistenza e visibilità