Il paradigma di programmazione a oggetti

Documenti analoghi
Le basi del linguaggio Java

Le basi del linguaggio Java

Corso di Laurea Ingegneria Informatica Laboratorio di Informatica

Prima lezione di laboratorio. I mattoni di base di un programma Java. Riassunto. Comandi Unix. Oggi. Blog & Group.

Elementi lessicali. Lezione 4. La parole chiave. Elementi lessicali. Elementi lessicali e espressioni logiche. Linguaggi di Programmazione I

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

Informatica 1 Tipi e dichiarazioni in C++ C++ - Tipi e dichiarazioni 1

Programmazione a oggetti

Corso di Fondamenti di Informatica Il sistema dei tipi in C++

IL LINGUAGGIO JAVA Input, Tipi Elementari e Istruzione Condizionale

Corso sul linguaggio Java

Introduzione alla programmazione in C++

La velocità di una carovana

Introduzione alla programmazione

Corso sul linguaggio Java

18 - Classi parzialmente definite: Classi Astratte e Interfacce

Alfabeto ed elementi lessicali del linguaggio C

Programmazione I. Linguaggi di programmazione. Traduzione. Fabrizio Messina

Programmazione Java Struttura di una classe, Costruttore, Riferimento this

Linguaggio C++ Linguaggi di terza generazione

Modulo 2: Strutture fondamentali della programmazione Java

Programmazione Orientata agli Oggetti in Linguaggio Java

Introduzione alla programmazione in linguaggio C

Laboratorio di Programmazione Lezione 2. Cristian Del Fabbro

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

Funzioni, Stack e Visibilità delle Variabili in C

Elementi di programmazione

Sommario. Introduzione... xv. Giorno 1 Elementi base del linguaggio C

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

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

14 - Metodi e Costruttori

Metodi statici. Dichiarazione e chiamata di metodi statici

La sintassi del C APPENDICE H

Gestione delle eccezioni in Java

Lezione 6 Introduzione al C++ Mauro Piccolo

LINGUAGGI DI ALTO LIVELLO. Si basano su una macchina virtuale le cui mosse non sono quelle della macchina hardware

Indice. Prefazione. 3 Oggetti e Java 53

Introduzione a Java. Prof. Francesco Accarino IIS Altiero Spinelli Via Leopardi132 Sesto San Giovanni

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

Perché il linguaggio C?

Programmazione Orientata agli Oggetti. Emilio Di Giacomo e Walter Didimo

Introduzione all OOP!

La classe java.lang.object

5 - Istruzioni condizionali

STORIA E CARATTERISTICHE

Laboratorio di Programmazione Lezione 1. Cristian Del Fabbro

Programmazione ad Oggetti

Proprietà delle Classi e degli Oggetti in Java

Fondamenti di Programmazione. Antonio Pescapè e Marcello Esposito Parte Quinta v1.0

Alberi Binario in Java

Fondamenti di Informatica I

Corso di Laurea Ingegneria Civile Fondamenti di Informatica. Traduzione ed esecuzione di programmi. Dispensa 08

Il linguaggio di programmazione Python

Uguaglianza e copia di oggetti

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

Linguaggi di Programmazione

Gocce di Java (seconda edizione) Glossario

Transcript:

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

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) www.eclipse.com, 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

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 */ 13 14 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 15 16 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

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 19 20 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) 21 22 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... 23 24, DICo Università degli Studi di MIlano 4

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