Creazione di classi.

Slides:



Advertisements
Presentazioni simili
Programmazione ad oggetti
Advertisements

MODULO 3 – ELABORAZIONE TESTI
Recupero debito quarto anno Primo incontro
Applet Java.
Ogni PC, per iniziare a lavorare, ha bisogno di un sistema operativo. Infatti questo è il primo programma che viene eseguito e che permette all'utente.
Comunicare con la posta elettronica (7.4)
1 Semantica Operazionale di un frammento di Java: lo stato.
Classi ed Oggetti in Java (Cenni). Richiami Ruolo delle Classi in Java Oggetti.
Semantica Operazionale di un frammento di Java: lo stato
LIP: 1 Marzo 2005 Classe Object e Vettori. Partiamo da Lesercizio dellultima esercitazione realizzato tramite array Vedremo come si puo fare in modo piu.
Fondamenti di Informatica
Indirizzi delle variabili A ogni variabile sono associati tre concetti fondamentali: il valore memorizzato; il tipo dati di appartenenza; lindirizzo. Il.
Funzioni definite dall’utente
JAVASCRIPT DIFFERENZA TRA JAVASCRIPT E JAVA TAG LO SCRIPT OGGETTI LE CLASSI FUNZIONE GESTORE DI EVENTI ELEMENTI DEL LINGUAGGI è un vero e proprio linguaggio.
1 Programmazione ad oggetti in Java E.Mumolo, DEEI
1 Corso di Laurea in Biotecnologie Informatica (Programmazione) Introduzione a JAVA Anno Accademico 2009/2010.
Introduzione agli stream e alle classi
Overriding.
1 Grafica ed eventi/2 Più movimento alle classi. 2 Esercizio n.1 Realizzare una applicazione che permette il trascinamento di una ellissi allinterno di.
Più movimento alle classi
Approfondimento delle classi
memoria gestita staticamente:
Lab. Calc. 2005/06 Ereditarietà. Lab. Calc. 2005/06 Scopo di questa lezione: Imparare a creare nuove classi ereditando da classi già esistenti. Capire.
Le classi Definizione di classe Attributi e metodi di una classe Costruttori e distruttori Private e public Funzioni friend Il puntatore this.
Le funzioni.
Espressioni condizionali
introduzione a Windows
Java base IV: Java e la programmazione O.O.
Le funzioni a tempo di esecuzione
Introduzione a Macromedia Flash A cura di Buonauro Carlo.
Elementi di programmazione ad oggetti a. a. 2009/2010 Corso di Laurea Magistrale in Ingegneria Elettronica Docente: Mauro Mazzieri, Dipartimento di Ingegneria.
Autore: Francesco Palmieri Microsoft Excel Tecniche di base.
Modulo 7 – reti informatiche u.d. 3 (syllabus – )
Ll Questionario Introduzione al software SAS (Parte 2) Metodi Quantitativi per Economia, Finanza e Management Esercitazione n°2.
Università degli Studi di Bari Laurea in Chimica Di spense di Informatica - Dott. F. Mavelli Programmare in Matlab Funzioni di Libreria Funzioni definite.
Un report è in grado di personalizzare la stampa delle informazioni rispetto alla stampa di una tabella, di un recordset o di una maschera. I report possono.
Introduzione a PowerPoint
2. Formattare il floppy disk Attualmente, tutti i floppy in commercio sono già formattati, ma può capitare di dover eseguire questa operazione sia su.
2000 Prentice Hall, Inc. All rights reserved. Capitolo 10 (Deitel) Strutture, unioni ed enumerazioni Sommario Introduzione Definire le strutture.
ISTITUTO STATALE DI ISTRUZIONE SUPERIORE F. ENRIQUES CORSO JAVA – PROVA INTERMEDIA DEL 12 MARZO 2007 NOME: COGNOME: ________________________________________________________________________________.
Configurazione in ambiente Windows Ing. A. Stile – Ing. L. Marchesano – 1/23.
Il Sistema Operativo: il File System
Unità Didattica 3 Linguaggio C
Enumerazioni e Classi 1. Enumerazioni Permettono di definire nuovi tipi che consistono in un insieme di valori costanti (ognuno con un nome) – Migliorano.
Internet Explorer I preferiti Stampa di pagine web Salvataggio di pagine web Copia di elementi di pagine web in altri applicativi.
Fopndamenti di programmazione. 2 La classe String Una stringa è una sequenza di caratteri La classe String è utilizzata per memorizzare caratteri La classe.
Fondamenti di Programmazione Prof.ssa Elisa Tiezzi
ISTITUTO STATALE DI ISTRUZIONE SUPERIORE F. ENRIQUES CORSO JAVA – PROVA FINALE DEL 21 MAGGIO 2007 NOME: COGNOME: ________________________________________________________________________________.
ISTITUTO STATALE DI ISTRUZIONE SUPERIORE F. ENRIQUES CORSO JAVA – PROVA INTERMEDIA DEL 12 MARZO 2007 NOME: COGNOME: ________________________________________________________________________________.
Strumenti di Presentazione (Microsoft PowerPoint 2000)
File e Funzioni Si possono distinguere tre tipi di file che vengono utilizzati in MATLAB: M-file: hanno estensione .m e in essi vengono memorizzati i.
Fondamenti di Informatica 2 Ingegneria Informatica Docente: Giovanni Macchia a.a
Astrazione procedurale ed eccezioni
Percorso didattico per l’apprendimento di Microsoft Access Modulo 5
Introduzione. Introduzione Un’applet Java: Una applet ("applicazioncina") è una applicazione non autonoma, ma pensata per far parte di una pagina Internet.
JAVA Per iniziare. Verificare installazione javac –version java –version Cercare i files e sistemare eventualmente il path.
Programmazione ad oggetti
Ereditarieta’. Contenuti Introduciamo un meccanismo fondamentale di Java: l’ereditarieta’ Permette di estendere classi gia’ definite (ovvero di definire.
Esercitazione su Vector. Permette di definire collezioni di dati generiche, che sono in grado di memorizzare elementi di ogni sottotipo di Object Definito.
Fondamenti di Informatica II Ingegneria Informatica (A-I) Prof. M.T. PAZIENZA a.a – 3° ciclo.
1 Eccezioni in Java. 2 Ricordiamo che 4 una procedura può terminare –normalmente, ritornando un risultato –in modo eccezionale ci possono essere diverse.
TW Asp - Active Server Pages Nicola Gessa. TW Nicola Gessa Introduzione n Con l’acronimo ASP (Active Server Pages) si identifica NON un linguaggio di.
Progettare una classe 21 Febbraio La classe BankAccount Vogliamo realizzare una classe i cui oggetti sono dei semplici conti bancari. * Identifichiamo.
Esercitazione del 9 marzo 2007 Ereditarieta’. Richiami Definire sottoclassi (ereditarieta’) Overriding Specificatori di accesso (private, protected) Principio.
Fondamenti di informatica T-A Esercitazione 3 : Classi, metodi, visibilità, metodi statici AA 2012/2013 Tutor : Domenico Di Carlo.
Corso di Algoritmi e Strutture Dati con Laboratorio Richiami di Java – parte II.
Introduzione all’Ereditarietà Pietro Palladino. Richiami UML Classe: descrizione di un insieme di oggetti software con caratteristiche simili Definisce.
Eccezioni in Java. Le eccezioni in Java Exception handling: insieme di costrutti e regole sintattiche e semantiche presenti nel linguaggio allo scopo.
Transcript della presentazione:

Creazione di classi

Le classi Nella programmazione orientata agli oggetti una classe definisce una categoria di oggetti. Le classi in pratica sono nuovi tipi di dati che il programmatore può creare per definire un nuovo tipo di oggetto. Una classe descrive le proprietà (dati) e i metodi (comportamenti) di un oggetto in modo molto simile a come un progetto di design descrive le caratteristiche di un oggetto, o a come una classificazione botanica descrive le caratteristiche di una pianta. Le proprietà (variabili definite all'interno di una classe) e i metodi (funzioni definite all'interno di una classe) di una classe sono detti membri della classe. In generale per utilizzare le proprietà e i metodi definiti da una classe, è necessario creare prima un'istanza di tale classe. La relazione tra un'istanza e la relativa classe è simile a quella che intercorre tra un oggetto reale e il relativo progetto del designer o tra una pianta reale e la sua classificazione.

La classe Bike Velocità diametro ruota numero denti numero denti Rapporto usato Diametro ruota Cadenza Velocità diametro ruota numero denti numero denti

rapporti a disposizione Bicicletta diametro ruota velocità rapporti a disposizione cambia rapporto rallenta e accelera cadenza frena rapporto usato numero denti corona

elaborazione del file FLA compilazione del file FLA Il processo Il processo di realizzazione di un progetto flash è strutturata in un flusso simile a questo: elaborazione del file FLA compilazione del file FLA esecuzione Ci sono errori? fine correzione del codice SÌ NO Con la programmazione con le classi introduciamo un nuovo tipo di file: il file Action Script (.as) ma il processo rimane lo stesso. Se il progetto comprende anche dei file .as il compilatore li unirà ai dati contenuti nel .fla e creerà un unico file shockwave (filmato flash compilato e compresso).

I file di classe Il file .as è un normale file di testo (tipo blocco note) che contiene codice Action Script. Una classe in ActionScript viene sempre definita in un file esterno (un normale file di testo con estensione .as) che ha lo stesso nome della classe e che viene chiamato file di classe. Quando un filmato flash viene compilato (utilizzando Controllo > Prova filmato o File > Pubblica) per generare il file .swf, il codice contenuto nei file di classe necessari viene compilato e aggiunto al file .swf..

I file di classe Quando il compilatore trova che nel filmato da compilare viene utilizzata una classe DEVE trovare il file che contiene il codice relativo a quella classe: Il file di classe deve avere esattamente lo stesso nome della classe (case sensitive). Il compilatore deve sapere in che cartelle cercare.

I file di classe Il compilatore in primo luogo inizierà la sua ricerca dalla cartella in cui è stato salvato il file .fla. Esiste un elenco globale di cartelle che contengono classi che si può modificare andando in: Modifica>Preferenze>ActionScript e scegliendo il bottone “Impostazioni Action Script 3”

I pacchetti In ActionScript 3 è fondamentale capire il concetto di package. Con l’aggiunta del comando package (obbligatorio) per ogni classe viene definto un package di appartenenza che corrisponde a come i file di classe sono organizzati su disco Supponiamo che il mio progetto Bicicletta.fla si collocato in D:\ProgettiFlash\Bicicletta\

I pacchetti //package aninimo package { public class Bike{ ... } Il file di classe si chiamerà Bike.as e risiederà nella cartella del progetto: D:\ProgettiFlash\Bicicletta\Bike.as

I pacchetti //package con nome package classiProgetto{ public class Rosa { ... } Il file di classe si chiamerà Bike.as e risiederà nella cartella classiProgetto: D:\ProgettiFlash\Bicicletta\classiProgetto\Bike.as

I pacchetti //package con nome package classiProgetto.uno{ public class Rosa { ... } Il file di classe si chiamerà Bike.as e risiederà nella cartella classiProgetto\uno: D:\ProgettiFlash\Bicicletta\classiProgetto\uno\Bike.as

pakage { public class Bike //definizione della classe ... } LA classE BIKE pakage { public class Bike //definizione della classe ... }

LA classE ROSA public class Bike{ // Proprietà della classe private var rapporti:Array = [24, 22, 20, 18, 16, 14]; private var corona:uint = 48; private var diametroRuota:Number; public var cadenza:Number; public var statoCambio:uint; }

LA classE ROSA public class Bike{ .. /* Metodo "Constructor" : viene chiamato quando si crea una instanza della classe */ public function Bike(misura:uint):void { diametroRuota = misura * 2.54001; cadenza = 0; statoCambio = 2; }

public class Bike{ .. // Metodo per cambiare l Cadenza LA classE ROSA public class Bike{ .. // Metodo per cambiare l Cadenza public function cambiaCadenza (diff:Number) :void { cadenza = cadenza + diff; if (cadenza < 0) cadenza = 0; }

public class Bike{ .. // Metodo per ricavare la velocità LA classE ROSA public class Bike{ .. // Metodo per ricavare la velocità public function speed ():Number { var passo = diametroRuota * Math.PI * corona / rapporti[statoCambio]; var km_ora = passo * cadenza * 60 /100000; return km_ora; }

Provare una classe Per creare e usare una classe è necessario: Definizione di una classe in un file di classe ActionScript esterno. Salvataggio del file di classe nella directory specificata per il percorso della classe (o nel percorso in cui Flash cerca le classi) oppure nella stessa directory del file FLA dell'applicazione. Creazione di un'istanza della classe in un altro script, ossia un documento FLA o un file di script esterno, oppure tramite creazione di una sottoclasse basata sulla classe originale.

Usare una classe Per creare un'istanza di una classe ActionScript, si utilizza l'operatore new per richiamare la funzione di costruzione della classe. Tale funzione ha sempre lo stesso nome della classe e restituisce un'istanza della classe che generalmente viene assegnata a una variabile. var bici:Bike = new Byke(); Usando l'operatore punto (.) si accede al valore di una proprietà o a un metodo di un'istanza. Bici.cambiaCadenza(-2);

Gli attributi di controllo di Accesso Gli attributi di controllo di accesso deteminano la visibiltà o scopo di classi, proprietà e metodi. La sintassi è la seguente <attributo> class…. <attributo> var …. <attributo> function …..

Gli attributi di controllo di Accesso public Visibilità completa internal Visibilità limitata alle classi che si trovano nello stesso package private Visibilità limitata alla sola classe di appartenenza protected Visibilità limitata alla classe di appartenenza e alle sottoclassi

Metodi e proprietà statici La parola chiave static specifica che una variabile o una funzione viene creata solo una volta per ogni classe anziché in ogni oggetto basato sulla classe. È possibile accedere a un membro di classe statico senza creare un'istanza della classe. I metodi e le proprietà statici possono essere sia pubblici che privati. In ActionScript ci sono classi predefinite che hanno solo metodi e proprietà statiche.

La programmazione Visuale

La classe DisplayObject La classe DisplayObject che appartiene al package flash.display è l’oggetto da cui discendono le classi che mi consentono di gestire attraverso ActionScript tutti gli elementi visuali che possono essere mostrati in un filmato flash: Testi. Grafica vettoriale. Immagini BitMapped. Animazioni create runtime. Caricamento e visualizzazione di filmati flash Caricamento e visualizzazione di video. Ecc.

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

Display list La Display list è la struttura ad albero che contiene tutti gli elementi visuali di un filmato Flash. La Display List determina quali oggetti vengono visualizzati e in che ordine Action script può intervenire sulla Display List e quindi intervenire su cosa viene visualizzato in un filmato Flash attraverso le classi che discendono da DisplayObjectContainer.

Display list La classe Loader consente di gestire il caricamento in un filmato Flash di risorse esterne presenti su disco (file swf o immagini) Le classi Sprite e MovieClip consento di aggiungere, togliere cambiare l’ordine di visualizzazione di oggetti grafici creati run time, caricati utilizzando la classe loader, o presenti in libreria

DisplayObjectContainer Le classi derivate Sprite e MovieClip possono contenere e gestire la visualizzazione di qualsiasi oggetto grafico discendente da DisplayObject: Oggetti semplici come TextField o Shape Oggetti Loader che contegono contenuti caricati da disco Discendenti di Sprite e MovieClip che a loro volta possono contenere altri oggetti.

DisplayObjectContainer Sprite MovieClip Le calssi derivate da Sprite: Rispondono agli eventi del mouse e della tastiera Possono contenere altri oggetti grafici Hanno un solo frame Le calssi derivate da MovieClip: Rispondono agli eventi del mouse e della tastiera Possono contenere altri oggetti grafici Hanno la timeline e quindi più frame

Child list Le classi Sprite e MovieClip hanno metodi specifici per gestire la propria child list. Cioè l’elenco degli oggetti grafici che contengono. addChild(child:DisplayObject) aggiunge un elemento alla child listt Ad ogni elemento viene assegnato un indice. Gli elementi vengono visaulizzati nell’ordine in cui sono stati aggiunto (l’ultimo risulta in primo piano)

Child list addChildAt(child:DisplayObject, index:int) aggiunge un elemento in un punto determinato della child list getChildAt(index:int):DisplayObject restituisce l’oggetto grafico che si trova al’indice specificato. removeChild(child:DisplayObject) elimina l’oggetto specificato.

Document class La Document Class è la classe che associo al filmato flash principale In l’istanza della classe questo caso è il filmato stesso e viene creata automaticamente in fase di compilazione. Se la Document Class non è una sottoclasse di Sprite o di MovieClip la compilazione verrà interrotta da un errore.

Esempio Dichiarazione di una classe facendola discendere da Sprite o da MovieClip: package { import flash.display.Sprite; ...... public class Orologio extends Sprite { }

Esempio Definizione di una o più propietà che contengano gli oggetti grafici da aggiungere alla child list: ...... import flash.text.TextField public class Orologio extends Sprite { private var orologio_txt:TextField; ..... }

Esempio Creazione degli oggetti grafici da aggiungere alla child list: public class Orologio extends Sprite { private var orologio_txt:TextField; ..... public function Orologio () { orologio_txt = new TextField(); }

Esempio Impostazione delle proprietà degli oggetti creati: ..... public function Orologio () { orologio_txt = new TextField(); orologio_txt.text = "00:00:00“ ; orologio_txt.autoSize= TextFieldAutoSize.LEFT; }

Esempio Aggiunta degli oggetti creati alla child list nell’ordine desiderato ..... public function Orologio () { addChild(orologio_txt); }

Una superficie su cui disegnare

I metodi per disegnare Ogni Shape, Sprite e MovieClip ha una proprietà graphics che è una istanza della classe Graphics creata automaticamente con la creazione dell’oggetto. Usando i metodi offerti da Graphics è possibile disegnare linee e riempimenti e figure. I disegni vengono fatti su una superfice trasparente come su un lucido. Si possono usare indifferentemente uno delle tre classi. La classe Shape è di gran lunga la più efficiente. Per visualizzare una shape è necessario aggiungerla a una child list di uno Sprite o di una MovieClip

Disegnare un linea Questa classe disegna una linea package { import flash.display.Shape; import flash.display.Graphics; import flash.display.Sprite; public class Disegno extends Sprite { public function Disegno() { var linea:Shape=new Shape() ; linea.graphics.lineStyle(2,0xFF0000); linea.graphics.moveTo(100,100); linea.graphics.lineTo(200,200); addChild(linea) }

Disegnare un linea linea.graphics.moveTo(100,100); (x=100, y=100) Il pennino viene spostate alle coordinate x=100, y=100

Disegnare un linea linea.graphics.lineTo(200,200); (x=100, y=100) Viene tracciata una linea retta fino a 200,200

Disegnare un linea Questa classe disegna aggiunge un tratto curvo package { import flash.display.Shape; import flash.display.Graphics; import flash.display.Sprite; public class Disegno2 extends Sprite { public function Disegno2() { var linea:Shape=new Shape() ; //var curva:Shape = new Shape(); linea.graphics.lineStyle(2,0xFF0000); linea.graphics.moveTo(100,100); linea.graphics.lineTo(200,200); linea.graphics.curveTo(200,300,300,300); addChild(linea) }

Disegnare un linea linea.graphics.curveTo(200,300,300,300); (x=100, y=100) Punto di controllo (x=200, y=300) (x=200, y=200) (x=300, y=300) Viene tracciata una linea curva fino a (300,300)

Disegnare Figure Disegna un cerchio e un elissi package { import flash.display.Shape; import flash.display.Graphics; import flash.display.Sprite; public class Disegno3 extends Sprite { public function Disegno3() { var cerchio:Shape=new Shape() ; var ellissi:Shape = new Shape(); cerchio.graphics.lineStyle (1,0x00FF00); cerchio.graphics.drawCircle(100,100,45); addChild(cerchio) ellissi.graphics.lineStyle (1,0x0000FF); ellissi.graphics.drawEllipse(200,150,45, 100); addChild(ellissi) }

Disegnare Figure Disegna un rettangolo package { import flash.display.Shape; import flash.display.Graphics; import flash.display.Sprite; public class Disegno4 extends Sprite { public function Disegno4() { var rettangolo:Shape = new Shape(); rettangolo.graphics.lineStyle (1,0x0000FF); rettangolo.graphics.drawRect(30. 40,45, 100); addChild(rettangolo) }

Disegnare Figure Disegna un rettangolo package { import flash.display.Shape; import flash.display.Graphics; import flash.display.Sprite; public class Disegno4 extends Sprite { public function Disegno4() { var rettangolo:Shape = new Shape(); rettangolo.graphics.lineStyle (1,0x0000FF); rettangolo.graphics.drawRect(30. 40,45, 100); addChild(rettangolo) }

Disegnare Figure Disegna un rettangolo con riempimento package { import flash.display.Shape; import flash.display.Graphics; import flash.display.Sprite; import flash.display.GradientType; public class Disegno5 extends Sprite { public function Disegno5() { var rettangolo:Shape = new Shape(); rettangolo.graphics.lineStyle (1,0x0000FF); rettangolo.graphics.beginFill(0x0000FF); rettangolo.graphics.drawRect(30, 40,45, 100); addChild(rettangolo) }