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

Documenti analoghi
Programmazione è gestione di eventi

Spostamento: 0.2 della distanza. 500 px x = 100; y = px

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

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

Oggetti e classi. Cos è un oggetto

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

Object-Oriented Programming

La classe java.lang.object

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

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

IL CONCETTO DI PACKAGE

Programmazione visuale

Lezione 13 Classi interne

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

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

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

Programmazione ad oggetti

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

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

Definizione di classi. Walter Didimo

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

Il Software programmabili programma algoritmo

Programmazione a oggetti

Esempio 2: Subtyping

public protected private private package

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

Istallazione di Java - Uso delle librerie

Il concetto di Package

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

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

I SISTEMI OPERATIVI. Insieme di programmi che implementano funzioni essenziali per l uso di un sistema elaboratore.

Programmazione con Java

Concetti base programmazione. Antonio Gallo

CODE MODEL - Modalità di scrittura del codice

18 - Classi parzialmente definite: Classi Astratte e Interfacce

Programmazione Orientata agli Oggetti. Emilio Di Giacomo e Walter Didimo

Programmazione in Java. Indipendenza dalla piattaforma. Indipendenza dalla piattaforma. Autore: Roberto Fabbrica Diapo 1.

Esercitazione n 2. Obiettivi

Corso sul linguaggio Java

Riassunto: cos è la OOP? classi astratte, interfacce, classi interne. Scaletta. Figura con area()? Figura senza area()? Stefano Mizzaro 1.

Funzioni costruttore e istanza di un'oggetto

SOMMARIO. Introduzione

Programmazione orientata agli oggetti. Ivan Lanese

9 - Array. Programmazione e analisi di dati Modulo A: Programmazione in Java. Paolo Milazzo

INTRODUZIONE ALLA PROGRAMMAZIONE AD ALTO LIVELLO IL LINGUAGGIO JAVA. Fondamenti di Informatica - D. Talia - UNICAL 1. Fondamenti di Informatica

Parte prima: le basi della programmazione Java

Ereditarietà e Polimorfismo

Unità Didattica 1 Linguaggio C. Fondamenti. Struttura di un programma.

Introduzione alla programmazione Object Oriented. Luca Lista

Principi di OOP con JAVA

Corso di Laurea Ingegneria Civile Fondamenti di Informatica. Dispensa 07. Oggetti e Java. Marzo Programmazione Java 1

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

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

Le direttive del Preprocessore

Catia Trubiani. Laboratorio di Ingegneria del Software a.a

Perché il linguaggio C?

Corso di Informatica

Linguaggi di Programmazione: Paradigmi di Programmazione

Esempio: Costruttori ed ereditarietà

Esercitazione. Docente Ing. Mariateresa Celardo

La programmazione ad oggetti (OOP)

Modulo 2: Strutture fondamentali della programmazione Java

I Clip Filmato. I marker. Informatica Grafica per le arti. I marker. I marker. I marker. I marker. gotoandplay("inizio");

Corso di Laurea in Bioinformatica Dipartimento di Informatica - Università di Verona

Programmazione a Oggetti Lezione 7. Il linguaggio Java: aspetti generali

Sistema Operativo (Software di base)

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

Le basi del linguaggio Java

I sistemi operativi. Prof. Daniele Contarino

Programmazione orientata agli oggetti Classi astratte e interfacce

Prof. Pagani corrado JAVA

I file utente sistema operativo nome

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

Programmazione ad oggetti

Uso di metodi statici. Walter Didimo

Java. Java: compilatore e interprete. Programma Java. Java Virtual Machine. Token. Alfabeto

Programmazione orientata agli oggetti Classi, package e file system. Package

Programmazione Java Avanzata Programmazione Object- Oriented in Java

Installazione Java Standard Edition (SDK)

Proprietà delle Classi e degli Oggetti in Java

OO puro. Primi concetti di Java. Tipi primitivi. Ogni cosa è un oggetto. Java è object-oriented puro Non come il C+ + (OO ibrido) Lorenzo Bettini

CdL in Medicina Veterinaria - STPA AA

Introduzione a Java. Riferimenti

Prof. Rossella Cancelliere

Esempio Principio di sostituibilità

Ereditarietà. Ereditarietà. Ereditarietà. Ereditarietà

Sistema operativo & file system 1

ESERCIZIO 1 (STRINGHE)

Linguaggi di Programmazione

Indice. Introduzione PARTE PRIMA FONDAMENTI 1

Le eccezioni in Java

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

Librerie digitali. Uso di XML per memorizzare i metadati. Descrizione generale. XML per memorizzare i metadati. Motivi dell uso di XML

Il paradigma OO e le Classi

4. I moduli in Access 2000/2003

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

Fondamenti di Informatica 1. Prof. B.Buttarazzi A.A. 2010/2011

C# delegates. Vittorio Maniezzo Università di Bologna. Vittorio Maniezzo Università di Bologna 1. Delegate

Introduzione alla OOP Object Oriented Programming

Transcript:

Le classi

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

Bicicletta cambia rapporto 24 kmh rallenta accelera 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à 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.

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.

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

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

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? NO fine SÌ correzione del codice 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 1. Il compilatore in primo luogo inizierà la sua ricerca dalla cartella in cui è stato salvato il file.fla. 2. 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\Rosa\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\Rosa\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\Rosa\classiProgetto\uno\Bike.as

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; }.. }

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; } } }

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 private Visibilità limitata alle classi che si trovano nello stesso package 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.