lezione 3 Il paradigma a oggetti in PHP a conoscere il paradigma a oggetti in PHP a creare classi, metodi e proprietà a istanziare oggetti

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "lezione 3 Il paradigma a oggetti in PHP a conoscere il paradigma a oggetti in PHP a creare classi, metodi e proprietà a istanziare oggetti"

Transcript

1 lezione 3 gli oggetti in php In questa lezione impareremo... a conoscere il paradigma a oggetti in PHP a creare classi, metodi e proprietà a istanziare oggetti Il paradigma a oggetti in PHP PHP implementa il paradigma degli oggetti (Object Oriented Paradigm) anche se è un linguaggio a carattere misto, sia procedurale che a oggetti. Object Oriented Paradigm Is a programming paradigm that uses objects to design applications and computer programs, it models the real world. This includes some unique concepts which overcome the drawbacks of fellow programming paradigms. In OOP (Object Oriented Programming) the emphasis is on data and not on procedures. Per la creazione di una nuova classe di oggetti, si deve utilizzare il costrutto class, all interno del quale possiamo collocare i metodi e le proprietà, rappresentate rispettivamente da funzioni e variabili. Tuttavia le proprietà devono essere dichiarate anteponendo chiave var. Esempio 35 Una classe carrello della spesa Nel codice che segue vediamo come realizzare una classe Carrello con due proprietà rappresentate da due array che contengono gli articoli presenti nel carrello e la relativa quantità. Vi sono poi quattro metodi, uno che aggiunge a un ipotetico carrello alcuni ordini di articoli, chiamato aggiungi_carrello(), un altro che elimina un elemento dal carrello (togli_carrello()), quindi il metodo aggiorna() effettua l aggiornamento di un prodotto in termini di quantità, infine il metodo stampa() mostra a video tutti gli elementi dell oggetto carrello, cioè quanto inserito nella nostra borsa della spesa virtuale. Il file è salvato con il nome esempio35.php: Incominciamo a vedere il codice del metodo che aggiunge nuovi articoli. Innanzi tutto vengono dichiarati due attributi (righe 5-6) come array. Il metodo aggiungi_carrello() riceve come parametro il nome dell articolo da aggiungere e la quantità. Dopo aver letto la dimensione dell array attraverso la funzione predefinita count (riga 11) viene effettuato un ciclo (riga 14) per verificare se l elemento è presente (riga 17), in caso positivo viene chiamata la funzione aggiorna (riga 22) che provvederà ad aggiornare la quantità del prodotto passato come parametro insieme alla nuova quantità. Se l elemento non è presente viene aggiunto ai due array (righe 26-27). 2 P. Camagni, R. Nikolassy, Progettare i database, Nuova Edizione OPENSCHOOL, Ulrico Hoepli Editore S.p.A. 2014

2 Gli oggetti in PHP Lezione 3 Come possiamo notare davanti al nome del metodo è stato anteposto l operatore di auto referenza $this e la notazione trattino freccia (->). L operatore di auto referenza serve per indicare che il metodo appartiene alla classe. Il codice seguente è relativo al metodo togli_carrello(): P. Camagni, R. Nikolassy, Progettare i database, Nuova Edizione OPENSCHOOL, Ulrico Hoepli Editore S.p.A

3 Il metodo riceve come parametro il nome dell articolo da eliminare (riga 31) e viene cercato nell array articoli mediante un ciclo (riga 36). Se l elemento è presente viene salvata la posizione nella variabile posizione (riga 41). Se l elemento è presente (riga 44) viene effettuato un ciclo (righe 48-56) per copiare gli elementi degli array articoli e quantita negli array temporanei (app_ar e app_qt) escludendo l elemento da cancellare (riga 50). A quel punto vengono eliminati gli array articoli e quantita (righe 52-53) e quindi nel ciclo successivo (righe 61-66) vengono ripristinati i contenuti delle proprietà della classe (quantita e articoli). Il codice seguente è relativo al metodo aggiorna(): Come possiamo vedere questo metodo riceve due parametri ($n e $q) che rappresentano il nome del prodotto da cercare e la quantità alla quale aggiornarlo. Il ciclo (riga 74) ricerca la presenza dell elemento nell array, quando l elemento è stato trovato (righe 77-78) viene salvata la posizione. Le istruzioni (righe 81-82) aggiornano la quantità di posizione salvata nella variabile $posizione al valore ricevuto dal metodo. Infine se l elemento non viene trovato (riga 83) viene stampato un messaggio di errore. Il codice seguente è relativo al metodo stampa(). Questo metodo è assai semplice ed effettua un ciclo per visualizzare gli elementi del carrello contenuti nei due array articoli e quantita (righe 88-93): Il file esempio35_test.php (codice a fianco) effettua l istanza della classe Carrello. Prima di tutto però lo script include il file esempio35.php che contiene il codice relativo alla classe da istanziare (riga 3). L istanza della classe Carrello avviene per mezzo dell operatore new (riga 5). L invocazione dei metodi avviene nel codice che segue: come possiamo notare do- 4 P. Camagni, R. Nikolassy, Progettare i database, Nuova Edizione OPENSCHOOL, Ulrico Hoepli Editore S.p.A. 2014

4 Gli oggetti in PHP lezione 3 po il nome dell oggetto ($acquisti) viene scritto il metodo secondo la notazione chiamata brackets notation, rappresentata da una freccia formata da un trattino e dal simbolo maggiore (->). Il codice seguente è nel file esempio35_test.php: L esecuzione dello script che istanzia un oggetto di classe Carrello (esempio35_test.php) è mostrato nella seguente finestra: Prova adesso! Utilizzare le classi Istanziare oggetti Usare metodi e proprietà AprI Il FIle esempio35_test.php Modifica il file esempio35_test.php in modo che mostri all utente una pagina in cui può scegliere se aggiungere, cancellare o aggiornare i prodotti dall elenco della spesa virtuale, quindi a ogni aggiunta o eliminazione visualizzare quanto presente nel carrello. P. Camagni, R. Nikolassy, Progettare i database, Nuova Edizione OPENSCHOOL, Ulrico Hoepli Editore S.p.A

5 L ereditarietà Secondo il concetto di ereditarietà della OOP (Object Oriented Programming) le classi possono essere estese ad altre classi, le classi estese possiedono tutte le proprietà e i metodi della classe base oltre a quello che viene aggiunto nella definizione estesa. PHP non possiede tuttavia, come ad esempio in C++, l ereditarietà multipla. La parola riservata per definire una estensione di classe, come in Java, è extends. La sintassi seguente mostra una classe MioCarrello che eredita dalla classe Carrello e la estende aggiungendone un metodo (setprezzo): class MioCarrello extends Carrello //definizione di una nuova proprietà var $prezzi=array(); function setprezzo($a,$p) //ciclo di ricerca del prodotto for ($i=0;$i<count($this->articoli);$i++) //Verifico se il prodotto è presente nel carrello salvo la posizione if ($this->articoli[$i]==$a) $this->prezzi[$i]=$p; Viene definita una classe MioCarrello che eredita tutte le variabili e le funzioni di Carrello e in più una proprietà addizionale rappresentata dall array associativo $prezzi e dal metodo setprezzo. In tal modo possiamo memorizzare nell oggetto il prezzo dell articolo all interno dell array parallelo $prezzi. Se istanziamo un oggetto di classe MioCarrello possiamo ancora utilizzare i metodi definiti per la classe base: //Istanzio un nuovo oggetto della nuova classe derivata $nuovo_c = new MioCarrello; //Aggiungo un articolo $nuovo_c->aggiungo_carrello( Acquarello,3); //Aggiungo il prezzo all articolo Acquarello $nuovo_c->setprezzo( Acquarello,12); Il costruttore I costruttori sono metodi di una classe, aventi il nome della stessa classe e richiamati automaticamente quando viene creata una nuova istanza della classe. Il codice che segue mostra come creare un costruttore per la classe Carrello: class Carrello function Carrello($a,$b) $this->aggiungi_carrello($a,$b); 6 P. Camagni, R. Nikolassy, Progettare i database, Nuova Edizione OPENSCHOOL, Ulrico Hoepli Editore S.p.A. 2014

6 Gli oggetti in PHP Lezione 3 È stato definito un costruttore che inizializza la classe Carrello con l articolo e le quantità passate come parametro al costruttore stesso. Ogni volta che viene istanziato un nuovo oggetto di classe Carrello con l operatore new. Vediamo come istanziare una classe con il costruttore: //Istanza della classe con il costruttore al quale vengono passati due parametri $carrello=new Costruttore( Cornice,3); Nelle classi derivate, il costruttore della classe genitore non viene chiamato automaticamente quando viene chiamato il costruttore della classe derivata, quindi se vogliamo richiamare il costruttore della classe ereditata dobbiamo indicarlo espressamente. Una classe cronografo Esempio 36 In questo esempio utilizziamo un classe per verificare la durata di esecuzione di uno script. La classe interessata utilizza due metodi StartStop e LapReset. L implementazione di tali funzioni come metodi della classe si basa sulla funzione time() che restituisce il Timestamp di UNIX. La risoluzione di questo cronometro non è molto elevata (essendo di ben 1 secondo), e inoltre esso non tiene conto del tempo di esecuzione del solo processo, ma del tempo complessivo di esecuzione, infatti il metodo fermati() calcola la differenza tra l ora di sistema di inizio processo e l ora di fine. Questo script in pratica crea un nuovo oggetto chrono di classe Cronometro, che all inizio è automaticamente resettato. Avvia quindi il cronometro (che restituisce il valore 0 all inizio, proprio come un vero cronometro). Timestamp è una sequenza di caratteri che rappresentano una data in modo da renderla comparabile con un altra per stabilirne l ordine temporale. Nei sistemi operativi Unix-like, come ad esempio Linux il tempo viene rappresentato come offet in secondi rispetto alla mezzanotte (UTC) del 1 gennaio 1970, chiamata UNIX epoch (epoca). Otteniamo quanto mostrato a fianco: P. Camagni, R. Nikolassy, Progettare i database, Nuova Edizione OPENSCHOOL, Ulrico Hoepli Editore S.p.A

7 Verifichiamo le competenze g Problemi 1 Definisci una classe Convertitore, in grado di convertire valute diverse, ad esempio Dollaro-Euro. Per il programma si richiede la scrittura di almeno un metodo per il calcolo, un metodo di stampa dei valori risultanti e la definizione di uno o più attributi privati ove memorizzare i dati. 2 Definisci una classe Libro contenente i seguenti attributi: nome del libro (array di caratteri), prezzo, numero di scaffale, numero di pagine, casa editrice. Inoltre definisci i seguenti metodi: inizializza mostra applicasconto le quali, rispettivamente, hanno i seguenti compiti: inizializzare i campi dati dell oggetto classe stampare tutti i dati dell oggetto diminuire del 10% il prezzo del libro in oggetto 3 Crea la classe Massimi che contiene i metodi max() e min(), che calcolano rispettivamente il valore massimo e minimo di due numeri passati come parametri. 4 Crea una classe Negozio con due costruttori che inizializzino lo stato dell oggetto, dotato dei seguenti parametri: proprietario nomenegozio 5 Crea una classe ContoCorrente che contiene tre costruttori che inizializzino lo stato dell oggetto, dotato dei seguenti parametri: nome codiceconto saldo 6 Crea la classe Prodotto utilizzando meno codice possibile con tre costruttori che inizializzino lo stato dell oggetto, dotati dei seguenti parametri: codice descrizione; codice descrizione 7 Crea la classe Fattura utilizzando meno codice possibile con tre costruttori che inizializzino lo stato dell oggetto, dotati dei seguenti parametri: cliente numeroprodotti cliente numeroprodotti 8 Definisci una classe LineaBus per rappresentare oggetti linea di autobus urbano con il numero identificativo, il nome dei due capolinea e con opportuni metodi d istanza per la descrizione del suo percorso. 9 Definisci una classe Auto per rappresentare oggetti automobile con il nome della marca, il nome del modello, la targa e l anno di immatricolazione e con opportuni metodi d istanza. 10 Definisci una classe Studente per rappresentare oggetti studente con il cognome, il nome, il codice fiscale, il numero di matricola e con opportuni metodi d istanza. 8 P. Camagni, R. Nikolassy, Progettare i database, Nuova Edizione OPENSCHOOL, Ulrico Hoepli Editore S.p.A. 2014

giochi sulla persistenza

giochi sulla persistenza UdA 6 Applicazioni Web in PHP lezione 1 giochi sulla persistenza In questa lezione impareremo... ad applicare i campi nascosti, le sessioni e i cookies per realizzare semplici giochi Primo esempio: il

Dettagli

Corso di PHP. Prerequisiti. 8.1 PHP e MySQL. Conoscenza MySQL Tecnica della programmazione

Corso di PHP. Prerequisiti. 8.1 PHP e MySQL. Conoscenza MySQL Tecnica della programmazione Corso di PHP 8.1 PHP e MySQL 1 Prerequisiti Conoscenza MySQL Tecnica della programmazione procedurale ad oggetti Principi di programmazione web Programmazione elementare in PHP 2 1 Introduzione In questa

Dettagli

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

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

Dettagli

Ereditarietà e Polimorfismo. Prof. Francesco Accarino IIS Altiero Spinelli Via Leopardi 132 Sesto San Giovanni

Ereditarietà e Polimorfismo. Prof. Francesco Accarino IIS Altiero Spinelli Via Leopardi 132 Sesto San Giovanni Ereditarietà e Polimorfismo Prof. Francesco Accarino IIS Altiero Spinelli Via Leopardi 132 Sesto San Giovanni Ereditarietà L ereditarietà è lo strumento che permette di costruire nuove classi utilizzando

Dettagli

Lezione 4. Massimiliano Palese IEEE Student Member

Lezione 4. Massimiliano Palese IEEE Student Member Lezione 4 Massimiliano Palese IEEE Student Member Object Oriented Ereditarietà, Incapsulazione e Polimorfismo Implementazione delle Classi Utilizzo degli oggetti Un paradigma per la virtualizzazione della

Dettagli

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

Programmazione. Cognome... Nome... Matricola... Prova scritta del 11 luglio 2014 Cognome................................ Nome................................... Matricola............................... Programmazione Prova scritta del 11 luglio 2014 TEMPO DISPONIBILE: 2 ore Negli esercizi

Dettagli

Oggetti. La programmazione orientata agli oggetti, OOP (Object-Oriented Programming), prende il nome dall elemento su cui si basa, l oggetto.

Oggetti. La programmazione orientata agli oggetti, OOP (Object-Oriented Programming), prende il nome dall elemento su cui si basa, l oggetto. Classi e oggetti Oggetti La programmazione orientata agli oggetti, OOP (Object-Oriented Programming), prende il nome dall elemento su cui si basa, l oggetto. OOP Vantaggi facilità di lettura e di comprensione

Dettagli

Corso di Algoritmi e Strutture dati Programmazione Object- Oriented in Java (Parte I)

Corso di Algoritmi e Strutture dati Programmazione Object- Oriented in Java (Parte I) Corso di Algoritmi e Strutture dati Programmazione Object- Oriented in Java (Parte I) Ing. Gianluca Caminiti Sommario ( OOP ) Programmazione Object-Oriented Incapsulamento, Ereditarietà, Polimorfismo Richiami

Dettagli

Programmazione in Java (I modulo) Lezione 20: Ereditarietà

Programmazione in Java (I modulo) Lezione 20: Ereditarietà Programmazione in Java (I modulo) Lezione 20: Ereditarietà Ereditarietà (Inheritance) Il programmatore definisce una classe generale In seguito definisce una classe più specifica Aggiungo soltanto nuovi

Dettagli

Classi ed Oggetti. Fondamenti di Informatica A-K

Classi ed Oggetti. Fondamenti di Informatica A-K Classi ed Oggetti Fondamenti di Informatica A-K Esercitazione 5 Introduzione al calcolatore e Java Linguaggio Java, basi e controllo del flusso I metodi: concetti di base Stringhe ed array Classi e oggetti,

Dettagli

JavaScript JavaScript Programmazione lato client JScript JavaScript ECMAScript

JavaScript JavaScript Programmazione lato client JScript JavaScript ECMAScript Programmazione lato client Netscape: Microsoft: JScript ECMAScript (ECMA-262) (European Computer Manufactures Association) Linguaggio di script interpretato con alcune caratteristiche Object Oriented HTTP

Dettagli

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

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

Dettagli

Programmazione lato client. JavaScript. Applicazioni di Rete M. Ribaudo - DISI. JavaScript

Programmazione lato client. JavaScript. Applicazioni di Rete M. Ribaudo - DISI. JavaScript Programmazione lato client Netscape: Microsoft: JScript ECMAScript (ECMA-262) (European Computer Manufactures Association) 1 Linguaggio di script interpretato con alcune caratteristiche Object Oriented

Dettagli

SQL: le funzioni di aggregazione

SQL: le funzioni di aggregazione SQL: le funzioni di aggregazione funzioni predefinite che agiscono sui valori contenuti in insiemi di righe della tabella: Conteggi Somme Medie Massimi, minimi Funzione Count La funzione COUNT conta il

Dettagli

Programmazione Java Avanzata Programmazione Object- Oriented in Java

Programmazione Java Avanzata Programmazione Object- Oriented in Java Programmazione Java Avanzata Programmazione Object- Oriented in Java Ing. Gianluca Caminiti Testi di Riferimento (Java) Cay Horstmann Concetti di informatica e fondamenti di Java Apogeo, 2007 (Versione

Dettagli

Diagramma delle classi

Diagramma delle classi Diagramma delle classi Questo diagramma (mostrato nella pagina successiva) costruito utilizzando lo standard UML mostra le relazioni che ci sono fra le varie classi della nostra applicazione, mostrando

Dettagli

Corso di Informatica

Corso di Informatica Corso di Informatica Modulo T1 B1 Il concetto di classe 1 Prerequisiti Programmazione elementare Conoscenza dell uso delle funzioni Utilizzo della UML 2 1 Introduzione Gli oggetti reali sono una infinità

Dettagli

Array. // utente pippo $utente1 = array( username => pippo, password => pippo123, ruolo => amministratore );

Array. // utente pippo $utente1 = array( username => pippo, password => pippo123, ruolo => amministratore ); Array Esercizio 1 Implementare un servizio che permetta il login di utenti ad un sistema e la possibilità di visualizzare articoli. Il servizio riceve in ingresso, tramite GET, l username e la password

Dettagli

Definizione di classi

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

Dettagli

Paradigmi della PO. Incapsulamento. Ereditarietà. Polimorfismo. Software per TLC - AA 2008/2009 1

Paradigmi della PO. Incapsulamento. Ereditarietà. Polimorfismo. Software per TLC - AA 2008/2009 1 Incapsulamento Paradigmi della PO Ereditarietà Polimorfismo Software per TLC - AA 2008/2009 1 Incapsulamento Una classe contiene dati e metodi Filosofia Ai dati si accede solo attraverso i metodi I metodi

Dettagli

Fondamenti di informatica T-1 (A K) Esercitazione 9: array

Fondamenti di informatica T-1 (A K) Esercitazione 9: array Fondamenti di informatica T-1 (A K) Esercitazione 9: array AA 2018/2019 Tutor Lorenzo Rosa lorenzo.rosa@unibo.it 2 Esercitazione 9 Introduzione al calcolatore e Java Linguaggio Java, basi e controllo del

Dettagli

Ereditarietà. Unità 9. Domenico Daniele Bloisi. Corso di Programmazione e Metodi Numerici Ingegneria Aerospaziale BAER

Ereditarietà. Unità 9. Domenico Daniele Bloisi. Corso di Programmazione e Metodi Numerici Ingegneria Aerospaziale BAER Corso di Programmazione e Metodi Numerici Ingegneria Aerospaziale BAER Domenico Daniele Bloisi Docenti Metodi Numerici prof. Vittoria Bruni vittoria.bruni@sbai.uniroma1.it Programmazione prof. Domenico

Dettagli

Corso di Access Modulo L2 A (Access) I tipi di query

Corso di Access Modulo L2 A (Access) I tipi di query Corso di Access Modulo L2 A (Access) 2.3.2 I tipi di query 1 Prerequisiti Concetto di database relazionale Utilizzo elementare del computer Concetti fondamentali di basi di dati Interrogazione di un DB

Dettagli

JAVA IL LINGUAGGIO. Ogni valore nel linguaggio ha un tipo Ogni variabile deve essere dichiarata ed associata ad un tipo:

JAVA IL LINGUAGGIO. Ogni valore nel linguaggio ha un tipo Ogni variabile deve essere dichiarata ed associata ad un tipo: JAVA IL LINGUAGGIO Tipi e variabili Ogni valore nel linguaggio ha un tipo Ogni variabile deve essere dichiarata ed associata ad un tipo: String greeting = "Hello, World!"; PrintStream printer = System.out;

Dettagli

I L IN I GU G AGG G I G O

I L IN I GU G AGG G I G O JAVA IL LINGUAGGIO Tipi e variabili Ogni valore nel linguaggio ha un tipo Ogni variabile deve essere dichiarata ed associata ad un tipo: String greeting = "Hello, World!"; PrintStream printer = System.out;

Dettagli

Programmazione con Java

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

Dettagli

Select From Where...

Select From Where... Select From Where... SELECT Le colonne che saranno mostrate e in che ordine. Calcoli su colonne FROM La tabella o le tabelle usate dall interrogazione WHERE Condizione che deve essere soddisfatta dalle

Dettagli

Javascript e CSS nelle pagine WEB

Javascript e CSS nelle pagine WEB 1 Javascript e CSS nelle pagine WEB Esempi applicativi Autrice: Turso Antonella Carmen INDICE ARGOMENTI 2... 5 LEZIONE 1... 6 COSA SONO I JAVASCRIPT... 6 LEZIONE 2... 8 STRUTTURA DEL LINGUAGGIO JAVASCRIPT

Dettagli

Corso sul linguaggio Java

Corso sul linguaggio Java Corso sul linguaggio Java Modulo JAVA4 A2 Utilizzo di classi 1 Prerequisiti Implementazione di classi Funzionamento di una classe Parametri formali e attuali di una funzione 2 1 Introduzione In questa

Dettagli

Corso di Access. Prerequisiti. Modulo L2A (Access) Struttura delle tabelle

Corso di Access. Prerequisiti. Modulo L2A (Access) Struttura delle tabelle Corso di Access Modulo L2A (Access) 1.3.1 Struttura delle tabelle 1 Prerequisiti Utilizzo elementare del computer Concetti fondamentali di basi di dati Gli oggetti di Access 2 1 Introduzione Il concetto

Dettagli

Programmazione ad oggetti

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.

Dettagli

La stampa unione in Word 2007

La stampa unione in Word 2007 La stampa unione in Word 2007 Preparazione della lista dei contatti Devi inviare a più persone lo stesso documento e vuoi personalizzarlo con il nome del destinatario? È semplice con la funzione stampa

Dettagli

PHP & OOP. Domenico Nappo Domenico Surace - Manuali.Net Tutti i diritti riservati

PHP & OOP. Domenico Nappo Domenico Surace - Manuali.Net Tutti i diritti riservati PHP & OOP. Lezione 23 PHP & OOP. Cos è l OOP Questa lezione fornisce i concetti base di programmazione ad oggetti e come essa viene implementata in PHP. PHP3 soffriva di grosse limitazioni nella gestione

Dettagli

Ereditarietà: concetti di base

Ereditarietà: concetti di base : concetti di base L ereditarietà è uno dei concetti base della programmazione ad oggetti Concetto di base: l ereditarietà permette di usare una classe precedentemente definita per la definizione di una

Dettagli

Ingegneria del Software

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

Dettagli

Laboratorio - Programmazione

Laboratorio - Programmazione Laboratorio - Programmazione Angelo Di Iorio angelo.diiorio@unibo.it Progetto L obiettivo del progetto è realizzare un applicazione PHP da linea di comando che raccoglie dati sui terremoti avvenuti in

Dettagli

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

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

Dettagli

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

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

Dettagli

TUTORIAL. Uso di FB e creazione di Istanze in ambiente TIA Portal V12

TUTORIAL. Uso di FB e creazione di Istanze in ambiente TIA Portal V12 TUTORIAL Uso di FB e creazione di Istanze in ambiente TIA Portal V12 Prof.S.Cavalieri University of Catania Dept. Electrical Electronic and Computer Engineering (DIEEI) 1 1. Creazione di un Blocco Funzionale

Dettagli

Dichiarazione di una classe. Dichiarazione ereditarietà

Dichiarazione di una classe. Dichiarazione ereditarietà Introduzione Il Java è un linguaggio di programmazione orientato agli oggetti (OOL), perché permette di realizzare in un programma tutti i concetti alla base dell OOP quali: l astrazione dei dati, mediante

Dettagli

Array. Walter Didimo

Array. Walter Didimo Array Walter Didimo Un problema ricorrente Gli strumenti di programmazione che abbiamo visto sin qui non sono ancora sufficienti per risolvere tutti i problemi di base Consideriamo ad esempio il seguente

Dettagli

UD4 - MATLAB. M-file. Efficienza degli algoritmi. Formati d uscita

UD4 - MATLAB. M-file. Efficienza degli algoritmi. Formati d uscita UD4 - MATLAB M-file. Efficienza degli algoritmi. Formati d uscita M-files In MatLab è possibile eseguire istruzioni contenute in file esterni; Tali file sono chiamati M-file perché devono avere estensione.m

Dettagli

Progettazione Object-Oriented

Progettazione Object-Oriented Progettazione Object-Oriented Generalità, Relazione fra OOA e OOD Concetti di base: Classi e Oggetti, Relazioni fra oggetti, Ereditarietà e Polimorfismo La specifica del Progetto: notazione UML Una metodologia

Dettagli

Grafici e Pagina web

Grafici e Pagina web Grafici e Pagina web Grafici Un grafico utilizza i valori contenuti in un foglio di lavoro per creare una rappresentazione grafica delle relazioni esistenti tra loro. Quando si crea un grafico ogni riga

Dettagli

2011 Politecnico di Torino 1

2011 Politecnico di Torino 1 Modalità d uso SQL per le applicazioni Indipendentemente dalla soluzione CLI adottata, esiste una strutturazione comune dell interazione con il DBMS apertura della connessione con il DBMS esecuzione di

Dettagli

Introduciamo l'uso della programmazione ad oggetti in PHP...perchè si può fare!

Introduciamo l'uso della programmazione ad oggetti in PHP...perchè si può fare! Introduciamo l'uso della programmazione ad oggetti in PHP...perchè si può fare! Elena M. Brambilla Technical Account Manager & Training Manager - Zend Technologies Chi sonoio.elena M. Brambilla Technical

Dettagli

Programmazione orientata agli oggetti Ereditarietà

Programmazione orientata agli oggetti Ereditarietà Programmazione orientata agli oggetti 1 Dalla programmazione basata su oggetti all OOP La programmazione basata su oggetti (object-based) poggia su due concetti fondamentali: Astrazione: separazione fra

Dettagli

INFORMATICA OOP Relazioni tra classi Roberta Gerboni

INFORMATICA OOP Relazioni tra classi Roberta Gerboni 2015 - Roberta Gerboni Relazione di associazione E possibile legare varie classi presenti in un progetto con una relazione di associazione. Una associazione individua una connessione logica tra classi

Dettagli

Creare maschere personalizzate

Creare maschere personalizzate LEZIONE 6 Creare maschere personalizzate In questa lezione impareremo... - A riconoscere ed utilizzare le maschere di Access - A creare maschere e sottomaschere sia in autocomposizione che personalizzate

Dettagli

ISTITUTO STATALE D ISTRUZIONE SUPERIORE FERRARIS - BRUNELLESCHI EMPOLI Anno scolastico 2015/2016

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

Dettagli

ACCESS. Database: archivio elettronico, dotato di un programma di interfaccia che facilita la registrazione e la ricerca dei dati.

ACCESS. Database: archivio elettronico, dotato di un programma di interfaccia che facilita la registrazione e la ricerca dei dati. ACCESS Database: archivio elettronico, dotato di un programma di interfaccia che facilita la registrazione e la ricerca dei dati. Database Relazionale: tipo di database attualmente più diffuso grazie alla

Dettagli

Proprietà delle Classi e degli Oggetti in Java

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

Dettagli

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

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

Dettagli

Inserire record. Microsoft Access. Inserire/modificare record. Inserire record. Cancellare record. Inserire/modificare record

Inserire record. Microsoft Access. Inserire/modificare record. Inserire record. Cancellare record. Inserire/modificare record Inserire record Microsoft Access Maschere (II) Una maschera può essere sfruttata non solo per vedere dati ma anche per immettere nuovi record, per modificarli o per cancellarli (come in visualizzazione

Dettagli

Imparare a utilizzare le formule e le funzioni

Imparare a utilizzare le formule e le funzioni Imparare a utilizzare le formule e le funzioni Eseguire calcoli, di tipo semplice o complesso, può essere un'attività noiosa e che richiede tempo. È possibile semplificare le operazioni di calcolo mediante

Dettagli

Introduzione alla programmazione nella shell di Unix 10 Maggio 2005

Introduzione alla programmazione nella shell di Unix 10 Maggio 2005 Introduzione alla programmazione nella shell di Unix 10 Maggio 2005 1 Page 1 Shell e programmazione La shell di UNIX definisce un vero e proprio linguaggio di programmazione, le cui caratteristiche principali

Dettagli

Funzioni costruttore e istanza di un'oggetto

Funzioni costruttore e istanza di un'oggetto Funzioni costruttore e istanza di un'oggetto Solitamente si dice che un oggetto è un'istanza di una classe. In Javascript non esistono classi ma funzioni costruttore che sono abbastanza simili. Per instanziare

Dettagli

Microsoft Access (parte 5) Query. Query. Query. Query. Creare una query

Microsoft Access (parte 5) Query. Query. Query. Query. Creare una query Microsoft Access (parte 5) Anno accademico: 2008-2009 Per estrarre informazioni da un database si utilizzano delle query : procedure di interrogazione Si può creare più query per ogni tabella Occorre avere

Dettagli

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

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

Dettagli

Programmazione visuale

Programmazione visuale Programmazione visuale La classe DisplayObject DisplayObject AVM1Movie Bitmap InteractiveObject MorphShape Shape StaticText Video DisplayObjectContainer SimpleButton TextField Loader Sprite Stage MovieClip

Dettagli

Il linguaggio C. Prof. E. Occhiuto INFORMATICA 242AA a.a. 2010/11 pag. 1

Il linguaggio C. Prof. E. Occhiuto INFORMATICA 242AA a.a. 2010/11 pag. 1 Il linguaggio C I linguaggi di programmazione ad alto livello sono linguaggi formali ( sintassi e semantica formalmente definite) però sono compatti e comprensibili. Le tipologie di linguaggi sono: procedurali

Dettagli

14Ex-Cap11.qxd :20 Pagina Le macro

14Ex-Cap11.qxd :20 Pagina Le macro 14Ex-Cap11.qxd 21-12-2006 11:20 Pagina 203 11 Le macro Creare le macro Registrare una macro Eseguire una macro Riferimenti assoluti e relativi nelle macro Assegnare un pulsante a una macro Modificare una

Dettagli

4. I moduli in Access 2000/2003

4. I moduli in Access 2000/2003 LIBRERIA WEB 4. I moduli in Access 2000/2003 Il modulo è uno degli oggetti del database di Access e rappresenta un insieme di dichiarazioni e routine scritte con il linguaggio Visual Basic, memorizzate

Dettagli

PSICOMETRIA. Esercitazione n.1. C.d.L. Comunicazione e Psicologia a.a. 2012/13

PSICOMETRIA. Esercitazione n.1. C.d.L. Comunicazione e Psicologia a.a. 2012/13 PSICOMETRIA Esercitazione n.1 C.d.L. Comunicazione e Psicologia a.a. 2012/13 ESERCITAZIONE 1: INDICE 1. Informazioni di carattere generale sulle esercitazioni 2. Il foglio di calcolo (Excel) 3. Avviare

Dettagli

A livello fisico, un istanza di base di dati Oracle è composta. Gubiani & Montanari Oracle Database 3

A livello fisico, un istanza di base di dati Oracle è composta. Gubiani & Montanari Oracle Database 3 Oracle Database Express Edition Donatella Gubiani e Angelo Montanari Gubiani & Montanari Oracle Database 1 (Oracle XE) è una versione gratuita della base di dati È facile da installare e gestire Può essere

Dettagli

3.5.1 PREPARAZ1ONE I documenti che si possono creare con la stampa unione sono: lettere, messaggi di posta elettronica, o etichette.

3.5.1 PREPARAZ1ONE I documenti che si possono creare con la stampa unione sono: lettere, messaggi di posta elettronica, o etichette. 3.5 STAMPA UNIONE Le funzioni della stampa unione (o stampa in serie) permettono di collegare un documento principale con un elenco di nominativi e indirizzi, creando così tanti esemplari uguali nel contenuto,

Dettagli

Equivalenza di espressioni. Equivalenze. Equivalenze. Due espressioni sono equivalenti se: Atomizzazione delle selezioni σ F1 F2 (E) σ F1 (σ F2 (E))

Equivalenza di espressioni. Equivalenze. Equivalenze. Due espressioni sono equivalenti se: Atomizzazione delle selezioni σ F1 F2 (E) σ F1 (σ F2 (E)) Equivalenza di espressioni Due espressioni sono equivalenti se: E 1 R E 2 se E 1 (r = E 2 (r per ogni istanza r di R (equivalenza dipendente dallo schema E 1 E 2 se E 1 R E 2 per ogni schema R (equivalenza

Dettagli

Elementi di Informatica A. A. 2016/2017

Elementi di Informatica A. A. 2016/2017 Elementi di Informatica A. A. 2016/2017 Ing. Nicola Amatucci Università degli studi di Napoli Federico II Scuola Politecnica e Delle Scienze di Base nicola.amatucci@unina.it Programmazione C++ Parte 2

Dettagli

Calcolo su Polinomi ===================

Calcolo su Polinomi =================== Calcolo su Polinomi =================== Descrizione Implementare la classe Monomio le cui istanze rappresentano generici monomi a valori reali del tipo: m(x) = c* x d ovvero monomi contenenti una sola

Dettagli

Indice. Ricerca richiesta d offerta. Risultati della ricerca Navigazione Stati

Indice. Ricerca richiesta d offerta. Risultati della ricerca Navigazione Stati Indice Ricerca richiesta d offerta Risultati della ricerca Navigazione Stati Dettaglio richiesta d offerta Codice materiale cliente Note di posizione Aggiungi al carrello 1 di 8 Ricerca richiesta d offerta

Dettagli

Proprietà delle Classi e degli Oggetti in Java

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

Dettagli

Autore: Prof. Agostino Sorbara ITIS "M. M. Milano" Polistena (RC)

Autore: Prof. Agostino Sorbara ITIS M. M. Milano Polistena (RC) con questo nome si indica in genere un pezzo di programma, dotato di una propria identità: un modulo, ad esempio, potrebbe essere l insieme di alcune funzioni C, o Pascal, che risiedono in un unico file

Dettagli

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

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

Dettagli

Ereditarietà. Ereditarietà. Ereditarietà. Ereditarietà

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

Dettagli

Sistemi Web per il turismo - lezione 3 -

Sistemi Web per il turismo - lezione 3 - Sistemi Web per il turismo - lezione 3 - Software Si definisce software il complesso di comandi che fanno eseguire al computer delle operazioni. Il termine si contrappone ad hardware, che invece designa

Dettagli

Matlab: Script e Funzioni

Matlab: Script e Funzioni Matlab: Script e Funzioni Informatica B Script Cos è uno script (m-file) q Uno script è un file di testo contenente una sequenza di comandi MATLAB non deve contenere caratteri di formattazione (solo testo

Dettagli

UTILIZZIAMO GLI OPERATORI MATEMATICI E COMMENTIAMO IL CODICE

UTILIZZIAMO GLI OPERATORI MATEMATICI E COMMENTIAMO IL CODICE Utilizziamo gli operatori matematici e commentiamo il codice Unità 4 UNITÀ DIDATTICA 4 UTILIZZIAMO GLI OPERATORI MATEMATICI E COMMENTIAMO IL CODICE IN QUESTA UNITÀ IMPAREREMO... come utilizzare gli operatori

Dettagli

{4, 4, 2, 9, 13} {2, 2, 9, 13, 0} {0, 4, 2, 9, 13} {2, 9, 13, 0, 0}

{4, 4, 2, 9, 13} {2, 2, 9, 13, 0} {0, 4, 2, 9, 13} {2, 9, 13, 0, 0} 16181 Nome Cognome A domande a risposta multipla con n scelte, la risposta corretta vale (n-1)/n*difficoltàdomanda, la risposta errata -1/n*difficoltà domanda, la risposta non data. Eseguendo il frammento

Dettagli

NON ABBIAMO ANCORA CORRETTO LE PROVETTE!!!

NON ABBIAMO ANCORA CORRETTO LE PROVETTE!!! NON ABBIAMO ANCORA CORRETTO LE PROVETTE!!! OO in Java: classi astratte, interfacce, classi interne Stefano Mizzaro Dipartimento di matematica e informatica Università di Udine http://www.dimi.uniud.it/mizzaro/

Dettagli

Corso di Informatica

Corso di Informatica Corso di Informatica Modulo T1 C1 Incapsulamento e tecniche OOP 1 Prerequisiti Tecnica elementare della programmazione Principi di programmazione OOP Metodologie di progettazione software 2 1 Introduzione

Dettagli

Installazione di EasyPhp. Avviare EasyPhp. La finestra di amministrazione di EasyPhp

Installazione di EasyPhp. Avviare EasyPhp. La finestra di amministrazione di EasyPhp Installazione di EasyPhp Scaricare la versione più recente di EasyPhp dal sito ufficiale (http://www.easyphp.org/). Scegliere la versione di sviluppo (DEVELOPMENT SERVER) più adatta al proprio sistema

Dettagli

ESERCIZIO 1 (STRINGHE)

ESERCIZIO 1 (STRINGHE) ESERCIZIO 1 (STRINGHE) Fornire N stringhe di caratteri in input al programma. Per ogni stringa: si stampi a video la stringa si sostituiscano tutte le occorrenze di un carattere ( old_char ) con un altro

Dettagli

Programmazione in Java (I modulo) Lezione 21: Classi derivate e l'operatore instanceof Riscrivere il metodo tostring() Riscrivere il metodo equals()

Programmazione in Java (I modulo) Lezione 21: Classi derivate e l'operatore instanceof Riscrivere il metodo tostring() Riscrivere il metodo equals() Programmazione in Java (I modulo) Lezione 21: Classi derivate e l'operatore instanceof Riscrivere il metodo tostring() Riscrivere il metodo equals() Ereditarietà (Inheritance) RIASSUMIAMO DALLA SCORSA

Dettagli

Esempio su strutture dati dinamiche: ArrayList

Esempio su strutture dati dinamiche: ArrayList Esempio su strutture dati dinamiche: ArrayList Fondamenti di Informatica L-B 1 ArrayList Abbiamo detto che gli array non possono cambiare la propria dimensione: il numero di elementi contenuti viene stabilito

Dettagli

Lettura e scrittura di file di dati input/output

Lettura e scrittura di file di dati input/output Lettura e scrittura di file di dati input/output Lettura e scrittura da disco Molto semplice in C++: si fa esattamente come se fosse una tastiera (se sto leggendo da disco) o lo schermo (se sto scrivendo

Dettagli

Creare l array presentato nei lucidi ([pippo, pluto, etc])

Creare l array presentato nei lucidi ([pippo, pluto, etc]) Creare l array presentato nei lucidi ([pippo, pluto, etc]) Visualizzare sul browser tutto il contenuto dell array formattato come tabella, con una riga di intestazione Personaggi in grassetto e poi una

Dettagli

Corso di Access. Prerequisiti. Modulo L2 A (Access) Le query

Corso di Access. Prerequisiti. Modulo L2 A (Access) Le query Corso di Access Modulo L2 A (Access) 2.3.1 Le query 1 Prerequisiti Concetto di database relazionale Utilizzo elementare del computer Concetti fondamentali di basi di dati Interrogazione di un DB 2 1 Introduzione

Dettagli

Laboratorio di Python

Laboratorio di Python Laboratorio di Python Programmazione orientata agli oggetti Lab14 11 Maggio 2018 Outline Correzione esercizi per oggi Oggetti Teoria Esercizi Esercizi per casa Outline Correzione esercizi per oggi Oggetti

Dettagli

Inizializzare oggetti

Inizializzare oggetti Inizializzare oggetti Uso della Classe Software per TLC - AA 2008/2009 1 Costruttori e polimorfismo Uso della Classe Un codice migliore Software per TLC - AA 2008/2009 2 Costruttori ed Ereditarietà Output:

Dettagli

Modulo 1 Information Communication Technology. ICT e computer... Pag. 6 Classificazione dei computer...» 8

Modulo 1 Information Communication Technology. ICT e computer... Pag. 6 Classificazione dei computer...» 8 I Indice generale 1 Introduzione all ICT Modulo 1 Information Communication Technology ICT e computer... Pag. 6 Classificazione dei computer...» 8 2 Come è fatto un computer I componenti di un personal

Dettagli

Programmazione orientata agli oggetti Ereditarietà

Programmazione orientata agli oggetti Ereditarietà Programmazione orientata agli oggetti Ereditarietà Fondamenti di Informatica L-B 1 Programmazione basata su oggetti Il modello visto finora costituisce un sottoinsieme del modello orientato agli oggetti

Dettagli

Ho raggiunto la fine del file Provo a leggere un intero, ma il dato che prelevo dal file non è un intero

Ho raggiunto la fine del file Provo a leggere un intero, ma il dato che prelevo dal file non è un intero Stato di uno stream Uno stream possiede uno stato, che può essere corretto o errato. Quando lo stream è in stato di errore, non posso utilizzarlo. In lettura: Apertura di un file che non esiste X Ho raggiunto

Dettagli

Fondamenti di Informatica T-1. Costruttori Ereditarietà

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;

Dettagli

Corso di Reti di Calcolatori T

Corso di Reti di Calcolatori T Università degli Studi di Bologna Scuola di Ingegneria Corso di Reti di Calcolatori T Esercitazione 6 (proposta) Java RMI Antonio Corradi, Luca Foschini Michele Solimando, Giuseppe Martuscelli Anno Accademico

Dettagli

Interfacce. Esempio: interfaccia I con una sola funzione g() public interface I {

Interfacce. Esempio: interfaccia I con una sola funzione g() public interface I { Interfacce Una interfaccia è un astrazione per un insieme di funzioni pubbliche delle quali si definisce solo la segnatura, e non le istruzioni. Un interfaccia viene poi implementata da una o più classi

Dettagli

Programmazione orientata agli oggetti Ereditarietà

Programmazione orientata agli oggetti Ereditarietà Programmazione orientata agli oggetti 1 Dalla programmazione basata su oggetti all OOP La programmazione basata su oggetti (object-based) poggia su due concetti fondamentali: Astrazione: separazione fra

Dettagli

MDG Enpals Spettacolo MANUALE D USO E INSTALLAZIONE

MDG Enpals Spettacolo MANUALE D USO E INSTALLAZIONE MDG Enpals Spettacolo MANUALE D USO E INSTALLAZIONE Rev 1.00 Pagina 1 di 15 MDG Enpals Spettacolo Manuale di installazione Installazione Inserire il CD di installazione e seguire la procedura di installazione

Dettagli

Fondamenti di informatica T-1 (A K) Esercitazione 7: metodi, classi, oggetti

Fondamenti di informatica T-1 (A K) Esercitazione 7: metodi, classi, oggetti Fondamenti di informatica T-1 (A K) Esercitazione 7: metodi, classi, oggetti AA 2018/2019 Tutor lorenzo.rosa@unibo.it 2 Esercitazione 7 Introduzione al calcolatore e Java Linguaggio Java, basi e controllo

Dettagli