Il paradigma di programmazione a oggetti
|
|
|
- Elisabetta Rinaldi
- 8 anni fa
- Visualizzazioni
Transcript
1 Il paradigma di Paradigma a oggetti Il paradigma di Corso di laurea in Comunicazione digitale Formalizza mediante le classi il concetto di modulo che incapsula i dati e le procedure per modificarli Le classi si definiscono in una struttura gerarchica e ereditano caratteristiche e funzionalità Obiettivo: migliorare l efficienza del processo di produzione e mantenimento del software 2 Concetti base della programmazione OO Astrazione Il meccanismo con cui si specificano le caratteristiche peculiari di un oggetto che lo differenziano da altri Incapsulamento dei dati Il processo con cui si nascondono i dettagli di definizione degli oggetti, solo le interfacce con l esterno devono essere visibili Ereditarietà Gli oggetti sono definiti in una gerarchia ed ereditano dall immediato parente caratteristiche comuni, che possono essere specializzate Polimorfismo Possibilità di eseguire funzioni specializzate per una particolare classe ma che hanno lo stesso nome 3 definito dalla Sun Microsystems, Inc. Introdotto nel 1995 E un linguaggio orientato agli oggetti Derivato da Smalltalk e C++ Definito per essere trasportabile su architetture differenti e per essere eseguito da browser 4 Pedigree di algol Simula-67 C pascal ada smalltalk eiffel C++ objectivec UCSDPascal objectpascal visualc++ delphi ada95 Traduzione e esecuzione di Il compilatore traduce il programma sorgente in una rappresentazione speciale detta bytecode Il bytecode non è un linguaggio macchina di una CPU particolare, ma di una macchina virtuale Il compilatore non è legato ad una particolare macchina è indipendente dall architettura della macchina L interprete traduce il bytecode nel linguaggio macchina e lo esegue 5 6, DICo Università degli Studi di MIlano 1
2 Il paradigma di Virtual Machine - JVM Portabilità del bytecode codice sorgente compilatore bytecode interprete compilatore Bytecode codice macchina 7 8 Vantaggi del bytecode Ambiente di sviluppo Ci sono diversi ambienti di sviluppo per programmi : Sun Software Development Kit (SDK) Borland JBuilder MetroWork CodeWarrior Microsoft Visual J++ Symantec Café Eclipse IBM (freeware) scritto in java I dettagli operativi di questi ambienti sono diversi, ma il processo di compilazione ed esecuzione è sostanzialmente identico 9 10 Struttura del programma Ogni programma è una raccolta di una o più classi Una classe contiene uno o più metodi Un metodo contiene le istruzioni Ogni programma deve avere una e una sola classe contenente il metodo speciale main Struttura del programma - 2 // commenti sulla classe public class Mio_programma Intestazione della classe Corpo della classe Manzoni.java I commenti possono essere aggiunti ovunque 11 12, DICo Università degli Studi di MIlano 2
3 Il paradigma di Struttura del programma 3 // commenti sulla classe public class Mio_programma // commenti sul metodo public static void main (String[] args) Intestazione del metodo Corpo del metodo Commenti I commenti di un programma sono spesso chiamati documentazione inline Devono essere inclusi per documentare lo scopo e le funzionalità del programma Non influenzano il funzionamento Vengono trascurati dal compilatore Possono avere due forme: // commenti fino alla fine della riga /* commento che può stare su più righe */ Spazi vuoti Gli spazi, righe vuote e le tabulazioni sono chiamati spazi bianchi Gli spazi bianchi sono usati per separare le parole e I simboli di un programma Gli spazi bianchi vengono ignorati dal compilatore Un programma può essere formattato come si desidera con gli spazi bianchi La formattazione migliora la leggibilità di un programma e va usata in modo consistente Es Manzoni_2.java e Manzoni_3.java Alfabeto Lessico di L insieme dei caratteri specificato dal formato UNICODE a 16 bit Parole riservate Un numero finito di parole che sono predefinite, non possono essere ridefinite e non possono essere usate diversamente Parole riservate Sono gli identificatori predefiniti nel linguaggio: abstract boolean break byte byvalue case cast catch char class const continue default do double else extends false final finally float for future generic goto if implements import inner instanceof int interface long native new null operator outer package private protected public rest return short static super switch synchronized this throw throws transient true try var void volatile while Identificatori Gli identificatori sono le parole introdotte dal programmatore usando i caratteri dell alfabeto Per definire classi, riferimenti a oggetti, variabili etc. Un identificatore è costituito da una sequenza di lettere e cifre che inizia con una lettera ed è composto da lettere, cifre, il carattere underscore _ e il segno $ Non possono quindi iniziare con una cifra è sensibile alle maiuscole, case sensitive Totale e totale sono identificatori diversi 17 18, DICo Università degli Studi di MIlano 3
4 Il paradigma di Separatori e operatori Separatori: sono caratteri che permettono di separare o raggruppare parti di codice ( ) [ ] ;,. Operatori: sono simboli o sequenze di simboli che denotano alcune operazioni = > <!? : == <= >=!= && * / & % ˆ << >> >>> += -= *= /= &= = ˆ= %= <<= >>= >>>= Costanti Una costante è un identificatore il cui valore non può essere modificato dopo la sua dichiarazione iniziale Il compilatore segnala un errore se si cerca di modificare una costante Si dichiara con il modificatore final final int ALT_MIN = 69; Rendono chiara la semantica dei valori letterali altrimenti non evidenti Rendono il codice modulare, facilitandone il cambiamento Prevengono errori involontari Riassumendo Alcuni identificatori sono definiti da noi (come Manzoni) Altri sono stati definiti da altri programmatori e noi li usiamo (come println) Alcuni identificatori speciali sono detti parole riservate e hanno un significato prestabilito Una parola riservata non può essere ridefinita Errori Errori di sintassi, che vengono intercettati dal compilatore (errori di compilazione) Se c è un errore durante la fase di compilazione, non viene creato un programma eseguibile Errori generati durante l esecuzione (errori d esecuzione) Tentativi di divisione per zero, che causano la fine anomala del programma Errori che producono risultati diversi da quelli desiderati (errori logici) Errori sintattici o di compilazione Nel programma Manzoni.java si sostituisca System.out.println ( il cielo di ); con le seguenti espresioni System.aut.println ( il cielo di ); System.out.println ( il cielo di ); System.out.println ( il cilo di ); Errori sematici Nel programma Divisione.java si provi a passare in input 0 come divisore In esecuzione si genera il messaggio: java.lang.arithmeticexception: /by zero at Divisione.main(Divisione.java:26) Exception in thread "main" Process Exit , DICo Università degli Studi di MIlano 4
5 Il paradigma di Errori logici Si vuole calcolare il MCD tra due numeri Si fornisce il programma MCD_errato.java Non si ottengono errori in compilazione, né errori in esecuzione, ma non si ottiene neanche il risultato voluto. Librerie di I/O Per esercizi anni scorsi Scaricare il file cs1.jar Salvarlo nella cartella ext sotto la directory jdk \jdk\jre\lib\ext Per esercizi del testo Pighizzini Scaricare il file corsoalberti.jar E collocarlo nella stessa cartella ext 25 26, DICo Università degli Studi di MIlano 5
Le basi del linguaggio Java
Corso di Laurea Ingegneria Civile Fondamenti di Informatica Dispensa 10 Le basi del linguaggio Java Aprile 2010 Le basi del linguaggio Java 1 Prerequisiti Nozioni generali sulla sintassi e semantica del
Le basi del linguaggio Java
Le basi del linguaggio Java Compilazione e interpretazione Quando si compila il codice sorgente scritto in Java, il compilatore genera il codice compilato, chiamato bytecode. È un codice generato per una
Corso di Laurea Ingegneria Informatica Laboratorio di Informatica
Corso di Laurea Ingegneria Informatica Laboratorio di Informatica Capitolo 4 Traduzione ed esecuzione di programmi Ottobre 2006 Traduzione ed esecuzione di programmi 1 Nota bene Alcune parti del presente
Prima lezione di laboratorio. I mattoni di base di un programma Java. Riassunto. Comandi Unix. Oggi. Blog & Group.
I mattoni di base di un programma Java Stefano Mizzaro Dipartimento di matematica e informatica Università di Udine http://www.dimi.uniud.it/mizzaro/ [email protected] Programmazione, lezione 2 8 ottobre
Elementi lessicali. Lezione 4. La parole chiave. Elementi lessicali. Elementi lessicali e espressioni logiche. Linguaggi di Programmazione I
Lezione 4 Elementi lessicali e espressioni logiche Matricole 2-3 Elementi lessicali il linguaggio C ha un suo vocabolario di base i cui elementi sono detti token esistono 6 tipi di token: parole chiave
19 - Eccezioni. Programmazione e analisi di dati Modulo A: Programmazione in Java. Paolo Milazzo
19 - Eccezioni Programmazione e analisi di dati Modulo A: Programmazione in Java Paolo Milazzo Dipartimento di Informatica, Università di Pisa http://www.di.unipi.it/ milazzo milazzo di.unipi.it Corso
Informatica 1 Tipi e dichiarazioni in C++ C++ - Tipi e dichiarazioni 1
Informatica 1 Tipi e dichiarazioni in C++ C++ - Tipi e dichiarazioni 1 Cosa è il C++ E un linguaggio di programmazione derivato dal C Può essere usato per modificare il SO Unix e i suoi derivati (Linux)
Programmazione a oggetti
Programmazione a oggetti Quanti oggetti, tra di loro parlando, fanno programmi. Pilu Crescenzi [email protected] Università di Firenze Programmazione a oggetti p.1/32 Cosa è un oggetto Una scatola software
Corso di Fondamenti di Informatica Il sistema dei tipi in C++
Corso di Fondamenti di Informatica Il sistema dei tipi in C++ Anno Accademico Francesco Tortorella Struttura di un programma C++ // Programma semplice in C++ #include int main() { cout
IL LINGUAGGIO JAVA Input, Tipi Elementari e Istruzione Condizionale
Fondamenti di Informatica IL LINGUAGGIO JAVA Input, Tipi Elementari e Istruzione Condizionale Fondamenti di Informatica - D. Talia - UNICAL 1 Lettura di dati da input In Java la lettura di dati da input
Corso sul linguaggio Java
Corso sul linguaggio Java Modulo JAVA1 1.1 Programmazione base 1 Prerequisiti Saper scrivere algoritmi elementari Tecniche elementari di sviluppo di una applicazione Modalità a riga di comando Utilizzo
Introduzione alla programmazione in C++
Introduzione alla programmazione in C++ Fondamenti di Informatica Roberto BASILI Marzo, 2007 La Programmazione Programmare significa: Determinare la natura del problema (analisi) Definire una decomposizione
La velocità di una carovana
Programmazione A.A. 2002-03 I linguaggio Java ( Lezione X, Parte I ) Il primo programma Prof. Giovanni Gallo Dr. Gianluca Cincotti Dipartimento di Matematica e Informatica Università di Catania e-mail
Introduzione alla programmazione
Introduzione alla programmazione Cosa è un calcolatore? Hardware Processore Memoria Periferiche Funzionamento Esegue istruzioni elementari Esegue istruzioni molto velocemente Deve essere programmato Il
Corso sul linguaggio Java
Corso sul linguaggio Java Modulo JAVA2 2.1- Funzioni 1 Prerequisiti Programmazione elementare in Java Tecnica top-down Concetto matematico di funzione Compilazione e link di programmi Esecuzione di funzioni
18 - Classi parzialmente definite: Classi Astratte e Interfacce
18 - Classi parzialmente definite: Classi Astratte e Interfacce Programmazione e analisi di dati Modulo A: Programmazione in Java Paolo Milazzo Dipartimento di Informatica, Università di Pisa http://www.di.unipi.it/
Alfabeto ed elementi lessicali del linguaggio C
Programmazione M-Z Ingegneria e Scienze Informatiche - Cesena A.A. 2016-2017 Alfabeto ed elementi lessicali del linguaggio C Pietro Di Lena - [email protected] s t a t i c s h o r t l e g s ; i n
Programmazione I. Linguaggi di programmazione. Traduzione. Fabrizio Messina
Programmazione I di programmazione Traduzione Fabrizio Messina [email protected] www.dmi.unict.it/~messina di programmazione I linguaggi di programmazione sono classificati in tre livelli: linguaggi
Programmazione Java Struttura di una classe, Costruttore, Riferimento this
Programmazione Java Struttura di una classe, Costruttore, Riferimento this [email protected] http://www.di.univaq.it/romina.eramo/tlp Roadmap > Struttura di una classe > Costruttore > Riferimento
Linguaggio C++ Linguaggi di terza generazione
Linguaggio C++ Linguaggi di terza generazione Insieme di primitive ad alto livello, ognuna traducibile in una sequenza di primitive in linguaggio macchina Es.: pesolordo pesocarico + pesoveicolo Due load,
Modulo 2: Strutture fondamentali della programmazione Java
Modulo 2: Strutture fondamentali della programmazione Java Argomenti Trattati: Un semplice programma Java: Presentazione di un primo Esempio; Introduzione alla struttura; Compilazione ed esecuzione. Argomenti
Programmazione Orientata agli Oggetti in Linguaggio Java
Programmazione Orientata agli Oggetti in Linguaggio Java Classi e Oggetti: Metafora Parte a versione 2.2 Questo lavoro è concesso in uso secondo i termini di una licenza Creative Commons (vedi ultima pagina)
Introduzione alla programmazione in linguaggio C
Introduzione alla programmazione in linguaggio C Il primo programma in C commento Header della libreria Funzione principale Ogni istruzione in C va terminata con un ; Corso di Informatica AA. 2007-2008
Laboratorio di Programmazione Lezione 2. Cristian Del Fabbro
Laboratorio di Programmazione Lezione 2 Cristian Del Fabbro Prossima lezione GIOVEDÌ 29 OTTOBRE 14:00 Input da tastiera package input; import java.io.*; public class Input { public static void main(string[]
Programma del corso. Elementi di Programmazione. Introduzione agli algoritmi. Rappresentazione delle Informazioni. Architettura del calcolatore
Programma del corso Introduzione agli algoritmi Rappresentazione delle Informazioni Architettura del calcolatore Reti di Calcolatori Elementi di Programmazione Algoritmi e programmi Algoritmo Sequenza
Funzioni, Stack e Visibilità delle Variabili in C
Funzioni, Stack e Visibilità delle Variabili in C Programmazione I e Laboratorio Corso di Laurea in Informatica A.A. 2016/2017 Calendario delle lezioni Lez. 1 Lez. 2 Lez. 3 Lez. 4 Lez. 5 Lez. 6 Lez. 7
Elementi di programmazione
Fondamenti di Informatica per la Sicurezza a.a. 2003/04 Elementi di programmazione Stefano Ferrari Università degli Studi di Milano Dipartimento di Tecnologie dell Informazione Stefano Ferrari Università
Sommario. Introduzione... xv. Giorno 1 Elementi base del linguaggio C
Sommario Introduzione... xv Organizzazione del volume... xv Argomenti...xvi Domande...xvi Verifiche...xvi Domande e risposte...xvi Esercizi...xvi Non è richiesta alcuna precedente esperienza di programmazione...
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
INTRODUZIONE ALLA PROGRAMMAZIONE AD ALTO LIVELLO IL LINGUAGGIO JAVA. Fondamenti di Informatica - D. Talia - UNICAL 1. Fondamenti di Informatica
Fondamenti di Informatica INTRODUZIONE ALLA PROGRAMMAZIONE AD ALTO LIVELLO IL LINGUAGGIO JAVA Fondamenti di Informatica - D. Talia - UNICAL 1 Fondamenti di Informatica - Programma Un programma è una formulazione
14 - Metodi e Costruttori
14 - Metodi e Costruttori Programmazione e analisi di dati Modulo A: Programmazione in Java Paolo Milazzo Dipartimento di Informatica, Università di Pisa http://www.di.unipi.it/ milazzo milazzo di.unipi.it
Metodi statici. Dichiarazione e chiamata di metodi statici
Metodi statici Dichiarazione e chiamata di metodi statici Cos è un metodo Un metodo è un blocco di istruzioni che fornisce una funzionalità e viene identificato con un nome Può avere dei parametri ed un
La sintassi del C APPENDICE H
APPENDICE H La sintassi del C Nella notazione della sintassi utilizzata, le categorie sintattiche (non terminali) sono state indicate da uno stile tipografico in corsivo, mentre le parole letterali e i
Gestione delle eccezioni in Java
Gestione delle eccezioni in Java Fondamenti di Informatica Ingegneria Gestionale Canale AL 1 Le eccezioni in Java Exception handling: insieme di costrutti e regole sintattiche e semantiche presenti nel
Lezione 6 Introduzione al C++ Mauro Piccolo
Lezione 6 Introduzione al C++ Mauro Piccolo [email protected] Linguaggi di programmazione Un linguaggio formale disegnato per descrivere la computazione Linguaggi ad alto livello C, C++, Pascal, Java,
LINGUAGGI DI ALTO LIVELLO. Si basano su una macchina virtuale le cui mosse non sono quelle della macchina hardware
LINGUAGGI DI ALTO LIVELLO Si basano su una macchina virtuale le cui mosse non sono quelle della macchina hardware 1 LINGUAGGI DI ALTO LIVELLO Barriera di astrazione Fortran Cobol Basic Pascal Python C
Indice. Prefazione. 3 Oggetti e Java 53
Prefazione xv 1 Architettura dei calcolatori 1 1.1 Calcolatori e applicazioni 1 1.1.1 Alcuni esempi di applicazioni 3 1.1.2 Applicazioni e interfacce 4 1.2 Architettura dei calcolatori 7 1.2.1 Hardware
Introduzione a Java. Prof. Francesco Accarino IIS Altiero Spinelli Via Leopardi132 Sesto San Giovanni
Introduzione a Java IIS Altiero Spinelli Via Leopardi132 Sesto San Giovanni Linguaggi di programmazione Ogni programma viene scritto utilizzando un linguaggio specializzato, formale e comprensibile da
Corso di Laurea Ingegneria Civile Fondamenti di Informatica. Dispensa 07. Oggetti e Java. Marzo Programmazione Java 1
Corso di Laurea Ingegneria Civile Fondamenti di Informatica Dispensa 07 Oggetti e Java Marzo 2010 Programmazione Java 1 Contenuti Il linguaggio Java Applicazioni Java e il metodo main Esempi di applicazioni
Perché il linguaggio C?
Il linguaggio C 7 Perché il linguaggio C? Larga diffusione nel software applicativo Standard di fatto per lo sviluppo di software di sistema Visione a basso livello della memoria Capacità di manipolare
Programmazione Orientata agli Oggetti. Emilio Di Giacomo e Walter Didimo
Programmazione Orientata agli Oggetti Emilio Di Giacomo e Walter Didimo Una metafora dal mondo reale la fabbrica di giocattoli progettisti Un semplice giocattolo Impara i suoni Dall idea al progetto Toy
Introduzione all OOP!
Introduzione all OOP! Introdurre l evoluzione dei linguaggi di programmazione e la loro classificazione Introdurre l OOP (astrazione, incapsulamento, ereditarietà) Dal C a Java un primo esempio 1 LINGUAGGI
La classe java.lang.object
La classe java.lang.object In Java: Gerarchia di ereditarietà semplice Ogni classe ha una sola super-classe Se non viene definita esplicitamente una super-classe, il compilatore usa la classe predefinita
5 - Istruzioni condizionali
5 - Istruzioni condizionali Programmazione e analisi di dati Modulo A: Programmazione in Java Paolo Milazzo Dipartimento di Informatica, Università di Pisa http://www.di.unipi.it/ milazzo milazzo di.unipi.it
STORIA E CARATTERISTICHE
IL LINGUAGGIO C STORIA E CARATTERISTICHE STORIA E VERSIONI Sviluppato da Dennis Ritchie ai Bell Labs nel 1972 per realizzare il sistema operativo UNIX K&R C: 1978 (prima versione, K&R dal nome degli autori
Laboratorio di Programmazione Lezione 1. Cristian Del Fabbro
Laboratorio di Programmazione Lezione 1 Cristian Del Fabbro Reperibilità homepage corso: https://users.dimi.uniud.it/~cristian.delfabbro/teaching.php email: [email protected] telefono: 0432 558676
Programmazione ad Oggetti
Programmazione ad Oggetti Java Eccezioni Eccezioni in breve Un eccezione è un oggetto che descrive una situazione anomala o di errore L eccezioni vengono lanciate da una parte di un programma e possono
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
Fondamenti di Programmazione. Antonio Pescapè e Marcello Esposito Parte Quinta v1.0
Fondamenti di Programmazione Antonio Pescapè e Marcello Esposito Parte Quinta v1.0 Agenda I linguaggi C e C++: introduzione Elementi Lessicali Commenti Identificatori Parole Chiave Costanti Letterali Elementi
Alberi Binario in Java
Alberi Binario in Java Realizzare un albero binario di ricerca. L albero binario è di ricerca se esiste una relazione di ordinamento tra i valori dei nodi (valori comparabili). In particolare, dato un
Fondamenti di Informatica I
Sapienza Università di Roma, Facoltà di Ingegneria Corso di Fondamenti di Informatica I Canale 1 (A-K) Anno Accademico 2009-2010 Corso di Laurea in Ingegneria Informatica Docente: Camil Demetrescu Esercitatore:
Corso di Laurea Ingegneria Civile Fondamenti di Informatica. Traduzione ed esecuzione di programmi. Dispensa 08
Corso di Laurea Ingegneria Civile Fondamenti di Informatica Dispensa 08 Traduzione ed esecuzione di programmi Traduzione ed esecuzione di programmi 1 Nota bene Alcune parti del presente materiale didattico
Il linguaggio di programmazione Python
Università Roma Tre Dipartimento di Matematica e Fisica Percorso Abilitante Speciale Classe A048 Matematica Applicata Corso di Informatica Il linguaggio di programmazione Python Marco Liverani ([email protected])
Uguaglianza e copia di oggetti
Uguaglianza e copia di oggetti Sommario 1. Classi Object e Class 2. Uguaglianza superficiale e uguaglianza profonda 3. Copia superficiale e copia profonda 4. Uguaglianza e copia in classi derivate 1 La
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
Linguaggi di Programmazione
Linguaggi di Programmazione 1 Linguaggio naturale e linguaggio macchina La comunicazione uomo-macchina avviene attraverso formalismi che assumono la forma di un linguaggio. Caratteristiche del Linguaggio
Gocce di Java (seconda edizione) Glossario
Gocce di Java (seconda edizione) Glossario Pierluigi Crescenzi 1 1 Dipartimento di Ingegneria dell Informazione, Università degli Studi di Firenze ([email protected]) abaco Antico strumento
