Programmazione è gestione di eventi

Documenti analoghi
Oggetto software. stati o proprietà (variabili) comportamenti o metodi (funzioni)

Oggetto software. stati o proprietà (variabili) comportamenti o metodi (funzioni)

Object-Oriented Programming

OO programming. Dott. Ing. M. Banci, PhD

Oggetti e classi. Cos è un oggetto

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

Principi di Progettazione del Software. Principi di Progettazione del Software a.a

Introduzione alla programmazione Object Oriented. Luca Lista

Scaletta. Cenni di computabilità. Cosa fa un programma? Definizioni (1/2) Definizioni (2/2) Problemi e domande. Stefano Mizzaro 1

La classe java.lang.object

19 - Eccezioni. Programmazione e analisi di dati Modulo A: Programmazione in Java. Paolo Milazzo

Per capire cos è un oggetto prendiamo spunto dalla vita reale: un oggetto è un automobile, un computer, una casa, e così via

Fondamenti di Programmazione Prof.ssa Elisa Tiezzi. Programmazione orientata a oggetti

ESERCIZIO 1 (STRINGHE)

Programmazione a oggetti

Concetti base programmazione. Antonio Gallo

Java Virtual Machine. Indipendenza di java dalla macchina ospite. I threads in Java

Sviluppo di programmi

osservazione: 1 MCD(m,n) min(m,n) = si provano i numeri compresi tra 1 e min(m,n) conviene iniziare da min(m,n) e scendere verso 1

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

Catia Trubiani. Laboratorio di Ingegneria del Software a.a

Esercitazione n 2. Obiettivi

Windows. La prima realizzazione di un ambiente grafico si deve alla Apple (1984) per il suo Macintosh. La gestione dei file conserva la logica del DOS

Introduzione alla OOP Object Oriented Programming

I livelli dei linguaggi. Introduzione alla OOP Object Oriented Programming. La programmazione procedurale separa il calcolo dalla memoria

Proprietà delle Classi e degli Oggetti in Java

Programmazione web lato client con JavaScript. Marco Camurri 1

Ereditarietà e Polimorfismo

Programmazione Orientata agli Oggetti. Emilio Di Giacomo e Walter Didimo

4. I moduli in Access 2000/2003

Laboratorio di Programmazione Laurea in Ingegneria Civile e Ambientale

Il Software programmabili programma algoritmo

La classe Object. Ce li ha anche HelloWorld!!!

Cosa si intende con stato

Introduzione a C# Prof. Francesco Accarino IIS Altiero Spinelli Sesto San Giovanni

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

Progettazione orientata agli oggetti e UML

Javascript. - Corso Web Design - Media Dream Academy. Stefano Gaborin

Individuazione di sottoproblemi

Strutture dati. Il che cosa e il come. F. Damiani - Alg. & Lab. 04/05

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

Collaudo del software

Fondamenti di Informatica 6. Algoritmi e pseudocodifica

14 - Metodi e Costruttori

public static boolean occorre (int[] a, int n) { int i = 0; boolean trovato = false;

Algoritmi, Strutture Dati e Programmi. UD 1.d: Dati e Tipi di Dato

Client - Interfaccia - Implementazione

Fondamenti di Informatica

Metodi di Analisi dei Dati Sperimentali. AA 2009/2010 Pier Luca Maffettone. Elementi di Matlab

Esercizi Capitolo 11 - Strutture di dati e progettazione di algoritmi

OOP: Object Oriented Programming

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

Algoritmo. La programmazione. Algoritmo. Programmare. Procedimento di risoluzione di un problema

Fondamenti di Informatica. Definizione di Algoritmo. Algoritmo Euclideo. Prof.V.L.Plantamura Informatica e Comunicazione Digitale a.a.

PROGRAMMAZIONE: Le strutture di controllo

Principi di OOP con JAVA

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

Le eccezioni in Java

Fondamenti di Informatica T-1. Ereditarietà & Polimorfismo

Programmazione con Java

Problemi e algoritmi. Il che cosa ed il come. Il che cosa ed il come. Il che cosa e il come

Fondamenti di Informatica T-1 Modulo 2

Programmazione ad oggetti

Fondamenti di Informatica T-1. Classi & vettori

Fondamenti di Informatica e Laboratorio T-AB T-15 Strutture dati

SQL e linguaggi di programmazione. Cursori. Cursori. L interazione con l ambiente SQL può avvenire in 3 modi:

18 - Classi parzialmente definite: Classi Astratte e Interfacce

Programmazione = decomposizione basata su astrazioni

Laboratorio di Programmazione Lezione 2. Cristian Del Fabbro

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

Progettazione orientata agli oggetti

Sistema operativo & file system 1

Programmi e Oggetti Software

VBA è un linguaggio di scripting derivato da Visual Basic, da cui prende il nome. Come ogni linguaggio ha le sue regole.

IL LINGUAGGIO JAVA Input, Tipi Elementari e Istruzione Condizionale

Programmazione Java Avanzata Programmazione Object- Oriented in Java

(1) (2) (3) (4) 11 nessuno/a (1) (2) (3) (4) X è il minore tra A e B nessuno/a X è sempre uguale ad A X è il maggiore tra A e B

Programmi e Oggetti Software

Comunicazione tra Computer. Protocolli. Astrazione di Sottosistema di Comunicazione. Modello di un Sottosistema di Comunicazione

LEZIONE 5. CORSO BASE DI AutoCad. Corso Base di AutoCad. AutoCad. Ing. Lorenzo Procino

Laboratorio di Programmazione

Corso di Fondamenti di Informatica

RICHIAMI DI PROGRAMMAZIONE A OGGETTI. Corso di Informatica Medica

La programmazione ad oggetti: chiamate di metodi. Overloading. This

Programmazione ad oggetti

PRIMO MODULO. DURATA: 80 ore CONTENUTI

Programmazione con Java

Fondamenti di Informatica T-1. Classi e metodi astratti

Programma del corso. Elementi di Programmazione. Introduzione agli algoritmi. Rappresentazione delle Informazioni. Architettura del calcolatore

Ciclo do while in FORTRAN

Programmazione orientata agli oggetti. Ivan Lanese

Laboratorio Progettazione Web Le funzioni in PHP. Angelica Lo Duca IIT-CNR 2012/2013

Laboratorio di Python

Variabili e Metodi di classe Interfacce e Package Gestione di File in Java

Appunti del corso di Informatica 1 (IN110 Fondamenti) 2 Algoritmi e diagrammi di flusso

Algoritmi di Ricerca. Esempi di programmi Java

Corso di Laurea Ingegneria Informatica Fondamenti di Informatica

Struttura dei programmi C

Cos è un algoritmo. Si dice algoritmo la descrizione di un metodo di soluzione di un problema che sia

Sommario PREFAZIONE... XI CAPITOLO 1: INTRODUZIONE AI COMPUTER, A INTERNET E AL WEB... 1 CAPITOLO 2: INTRODUZIONE ALLE APPLICAZIONI JAVA...

Transcript:

FUNZIONI Ed Eventi

Programmazione è gestione di eventi Evento 1 (tasto premuto) Evento 2 (mouse) Evento 3 (cambio frame) Oggetto Evento 4 (fine di un brano audio) Azioni per evento 1 1. Azione 1 2. Azione 2 3... Azioni per evento 2 1. Azione 1 2. Azione 2 3... Azioni per evento 3 1. Azione 1 2. Azione 2 3...

Gestione di Eventi in ActionScript //uso di addeventlistener oggetto.addeventlistener(nomeevento:string, nomefunzione:function); /* esempio */ pulsante.addeventlistener( click, calcolaquadrato);

Progettazione di una funzione

Definizione Un numero primo è un numero intero che non divisori maggiori di 1 escluso se stesso. Per verificare se un numero che chiamerò a è primo dovrò controllare se esistono numeri n maggiori di uno e minori di a tali che la divisione a/n dia resto 0. Se non esistono tali numeri il numero è primo.

Algoritmo 1. prendo n è il numero da verificare 2. definisco un numero a uguale ad n -1 3. se a è non è maggiore di 1 vuol dire che non esiste un divisore di n maggiore di 1 -> n è primo 4. verifico se n/a da resto 0 5. se sì ho trovato un divisore di n: il numero non è primo 6. diminuisco a di 1 7. riparto dal punto 3

numero primo n è primo n non è primo NO SI prendo n a=n-1 a>1? SI n/a da resto? NO a=a-1

La funzione primo in ActionScript //dichiaro una funzione che accetta come parametro //un numero e restituisce un valore Boolean (vero o falso) function primo(n:number):boolean { /*dichiaro la variabile a di tipo number e le assegno come valore iniziale il valore di n (il numero che devo verificare) diminuito di 1*/ var a:number = n - 1; //inizia un ciclo che continuerà fino a che a è maggiore di 1 while (a > 1) { // se a è un divisore esatto di n (cioè il resto della divisione n/a è 0)... if ((n % a) == 0) { // n NON è un numero primo per cui restituisco il valore false // la funzione termina qui e non viene eseguito alcun altro comando return false; } //altrimenti (se cioè la funzione non si interrompe per effetto //dell'istruzione return) diminuisco a di 1 e il ciclo viene ripetuto a--; } // se il ciclo si concluso (a è diventato 1 per diminuzioni successive) // significa che non esistono divisori di n e quindi n è primo return true; }

Le classi

Programmazione oop Rivoluzione copernicana L approccio procedurale definisce i passi necessari per risolvere un problema L approccio ad oggetti definisce gli strumenti (oggetti) di cui ho bisogno per risolvere un problema e ne definisce le proprietà e i comportamenti.

Le parole chiave della programmazione oop

Oggetti nel mondo reale Un oggetto del mondo reale ha stati e comportamenti. Ad esempio gli stati di un gatto possono essere: nome, età e colore, i comportamenti: dormire, mangiare e fare le fusa. Gli stati di una bicicletta possono essere: rapporto, cadenza della pedalata, velocità e i comportamenti: cambiare rapporto, cambiare cadenza, frenare ). Alcuni oggetti sono molto semplici (una lampada) altri più complessi (una radio). Alcuni oggetti possono contenere altri oggetti.

Oggetto software Gli oggetti software sono concettualmente simili agli oggetti del mondo reale: anche loro consistono di stati e di comportamenti. Un oggetto memorizza il suo stato in variabili ed espone il suo comportamento attraverso i metodi o funzioni. I metodi hanno il compito di modificare gli stati interni dell oggetto e di farlo comunicare con il mondo (software). Questo approccio per cui gli stati interni di un oggeto sono nascosti e sono modificabi so usando metodi si definisce incapsulamento dei dati un principio fondamentale della programmazione orientata agli oggetti.

Oggetto software stati (variabili) comportamenti (metodi)

Bicicletta cambia rapporto 24 kmh frena cambia cadenza 90 ped/min quinto rapporto

istanze e membri di classe Nel mondo reale, spesso troverete molti singoli oggetti tutti dello stesso tipo. Ci possono essere migliaia di biciclette esistenti, tutti della stessa marca e modello. Ogni bicicletta è stata costruita sualla base dello stesso progetto e quindi contiene gli stessi componenti. Una classe definisce un modello per un tipo di oggetto. Tutte le caratteristiche e i comportamenti che appartengono a una classe sono detti membri di tale classe. In particolare, le caratteristiche (nell'esempio del gatto, il nome, l'età e il colore) sono dette proprietà della classe e sono rappresentate da variabili, mentre i comportamenti (mangiare, dormire) sono detti metodi della classe e sono rappresentati da funzioni.

Ereditarietà Mountain bike, biciclette da strada e tandem, condividono alcune caratteristiche (velocità, cadenza della pedalata, rapporto). Ma ciascuno definisce anche elementi aggiuntivi che le rendono differenti: i tandem hanno due posti e due set di manubri, le bici da strada hanno manubrio da corsa; le mountain-bikes hanno una corona aggiuntiva che consente loro rapporti di trasmissione inferiori. La programmazione orientata agli oggetti consente di definire classi che ereditano gli stati e i comportamenti di altre classi. In questo esempio, bicicletta può essere una superclasse e MountainBike, Bici da strada, e Tandem delle sottoclassi.

Ereditarietà Mountain bike, biciclette da strada e bici tandem, condividono alcune caratteristiche (velocità, cadenza della pedalata, rapporto). Ma ciascuno definisce anche elemeti aggiuntivi che le rendono differenti: le biciclette tandem hanno due posti e due set di manubri, le bici da strada hanno manubrio da corsa; le mountain-bikes hanno una corona in più che consente loro rapporti di trasmissione inferiori. La programmazione orientata agli oggetti consente di definire classi che ereditano gli stati e i comportamenti di altre classi. In questo esempio, bicicletta può essere una superclasse e MountainBike, bici da corsa, e Tandem delle sottoclassi. Uno dei vantaggi principali della programmazione orientata agli oggetti è rappresentato dalla creazione di sottoclassi (tramite estensione di una classe); una sottoclasse eredita tutte le proprietà e i metodi della rispettiva classe. La sottoclasse definisce generalmente ulteriori metodi e proprietà o sostituisce metodi o proprietà definiti

Ereditarietà Uno dei vantaggi principali della programmazione orientata agli oggetti è rappresentato dalla creazione di sottoclassi (tramite estensione di una classe); una sottoclasse eredita tutte le proprietà e i metodi della rispettiva classe. La sottoclasse definisce generalmente ulteriori metodi e proprietà o sostituisce metodi o proprietà definiti nella superclasse. Le sottoclassi possono inoltre sostituire i metodi definiti in una superclasse, ovvero fornire definizioni proprie per tali metodi.

Ereditarietà bicicletta tandem mountain bike bici da strada

interfacce Gli oggetti definiscono la loro interazione con il mondo esterno attraverso i metodi che espongono. I metodi costituiscono l interfaccia con il mondo esterno, nello stesso modo in cui i pulsanti sulla parte anteriore del televisore, per esempio, sono l'interfaccia tra l'utente e l elettronica che contiene involucro di plastica. Nella nostra classe bicicletta, l'interfaccia potrebbe essere per esempio l elenco dei metodi che devo definire obbligatoriamente per creare una sottoclasse di bicicletta.

Package Un pacchetto è un namespace che organizza una serie di classi e interfacce correlate. Si può pensare di pacchetti come a diverse cartelle del computer. Poiché il software scritto in linguaggio ActionScript può essere composto da centinaia di singole classi è importante mantenere le classi organizzate in pacchetti. ActionScript fornisce una biblioteca (un insieme di pacchetti) che contengono le classi con cui abbiamo bisogna per gestire gli elementi. Questa libreria è noto come "Application Programming Interface", o "API.

Classi e tipi Quando abbiamo parlato dei tipi di dati abbiamo visti che esistono tipi di dati primitivi e tipi di dati derivati o complessi. In un linguaggio orientato agli oggetto tutti i tipi di dati sono classi. Definiscono cioè non solo come un certo tipo di dato viene memorizzato nel computer, ma anche i metodi con cui posso interagire con esso. Creando una nuova classe il programmatore crea un nuovo tipo di dati complesso, un modello, cioè, di come posso gestire un determinato insieme di informazioni e di come posso interagire con esso.