Sei sulla pagina 1di 50

Laboratorio di Programmazione II

Presentazione del Corso Il linguaggio Java Oggetti e Metodi Strutture di Controllo Classi in Java

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

Laboratorio di Programmazione II

Sommario
Laboratorio di Programmazione II

Presentazione del Corso Il linguaggio Java Oggetti e Metodi Strutture di Controllo Classi in Java

Presentazione del corso Richiami concetti base linguaggio Java


Editare, compilare e correggere programmi Java Istruzioni di base in java

Presentazione del Corso


Laboratorio di Programmazione II

Presentazione del Corso Il linguaggio Java Oggetti e Metodi Strutture di Controllo Classi in Java

Docente e Tutor
Laboratorio di Programmazione II

Presentazione del Corso Il linguaggio Java Oggetti e Metodi Strutture di Controllo Classi in Java

Contatti Alessandro Farinelli Dipartimento di Informatica Ca Vignal 1 - Primo piano - Stanza 1.55 Tel. 0458027072 e-mail alessandro.farinelli@univr.it Ricevimento:
Mercoledi' 16:30  18:30 Su appuntamento tramite e-mail

Tutor: Filippo Bistaa

Corso
Laboratorio di Programmazione II

Presentazione del Corso Il linguaggio Java Oggetti e Metodi Strutture di Controllo Classi in Java

Dati del Corso Secondo modulo del corso di Algoritmi 64 ore di laboratorio 22 lezioni, 3 ore per lezione
Mercoledi' 10:30  13:30 Giovedi' 08:30  11:30

Esame
Laboratorio di Programmazione II

Modalit esame L'esame vale il 50% del voto dell'intero corso di Algoritmi Due modalit di esame: Prove parziali:
Prove parziali Esame singolo Valido solo per il primo appello che segue la ne delle lezioni (I appello di Febbraio) Prova al calcolatore (probabilmente ne Novembre) Progetto (svolgimento durante la lezione, presentazione orale a ne corso) voto nale = 50% progetto + 50% prova calcolatore Vale per qualsiasi sessione prova singola al calcolatore di dicolt pari alla somma delle dicolt delle prove parziali.

Presentazione del Corso Il linguaggio Java Oggetti e Metodi Strutture di Controllo Classi in Java

Esame singolo

Pre-requisiti
Laboratorio di Programmazione II

Presentazione del Corso Il linguaggio Java Oggetti e Metodi Strutture di Controllo Classi in Java

Conoscenze di base Conoscenza di base del linguaggio Java Capacit di editare compilare eseguire un sorgente java Conoscenza degli argomenti sviluppati nel modulo di teoria

Programma
Laboratorio di Programmazione II

Presentazione del Corso Il linguaggio Java Oggetti e Metodi Strutture di Controllo Classi in Java

Programma del corso Basi Java Ricorsione Ordinamento Strutture dati ed algoritmi notevoli:
Strutture lineari (Pile, code, liste) Alberi Gra

Algoritmi notevoli per la bioinformatica (PDP, ricerca motivi regolatori, sottosequenza comune) Basi Matlab per analisi e visualizzazione dati

Materiale Didattico
Laboratorio di Programmazione II

Presentazione del Corso Il linguaggio Java Oggetti e Metodi Strutture di Controllo Classi in Java

Materiale didattico di riferimento Slide del corso


Disponibili sul sito del corso

Libri del corso di teoria Manuali Java e Matlab esempio:


Thinking in Java, Bruce Eckel Java API

Come accedere ad i le durante la lezione


Laboratorio di Programmazione II

Presentazione del Corso Il linguaggio Java Oggetti e Metodi Strutture di Controllo Classi in Java

Accesso ai le Sito del corso codice Copiare i le in locale per modicarli

Il linguaggio Java
Laboratorio di Programmazione II

Presentazione del Corso Il linguaggio Java Oggetti e Metodi Strutture di Controllo Classi in Java

Paradigmi di programmazione
Laboratorio di Programmazione II

Presentazione del Corso Il linguaggio Java Oggetti e Metodi Strutture di Controllo Classi in Java

Principali paradigmi di programmazione si distinguono per l'enfasi che pongono sui due aspetti fondamentali: oggetti e operazioni.
: enfasi sulle operazioni intese come azioni/comandi/istruzioni; esempio: C, Pascal 2 funzionale: enfasi sulle operazioni intese come funzioni che calcolano risultati; esempio: Lisp, Prolog 3 orientato agli oggetti: enfasi sugli oggetti che complessivamente rappresentano il dominio di interesse; Java, C++ (quasi...)
1
imperativo

Maggior parte dei programmi mettono a disposizione strutture per realizzare diversi paradigmi

Il linguaggio Java
Laboratorio di Programmazione II

Presentazione del Corso Il linguaggio Java Oggetti e Metodi Strutture di Controllo Classi in Java

Linguaggio Java alto livello orientato agli oggetti: tutto un oggetto! indipendente dalla piattaforma
costrutti del linguaggio risparmiano molta fatica al programmatore supporta i paradigmi imperativo e funzionale grazie ai concetti di bytecode e Virtual Machine

Un semplice programma Java


Laboratorio di Programmazione II

Presentazione del Corso Il linguaggio Java Oggetti e Metodi Strutture di Controllo Classi in Java

programma java
import java.lang.*; public class Semplice { public static void main(String[] args) { System.out.println("Questo un semplice programma Java."); } }

Compilare ed eseguire codice Java


Laboratorio di Programmazione II

Compilare ed eseguire un programma in Java

Presentazione del Corso Il linguaggio Java Oggetti e Metodi Strutture di Controllo Classi in Java

Sorgente Java
.java

javac

Eseguibile Java
.class

Eseguibile Java
.class

java

Esecuzione
(processo)

Scrivere compilare ed eseguire codice Java


Laboratorio di Programmazione II

Presentazione del Corso Il linguaggio Java Oggetti e Metodi Strutture di Controllo Classi in Java

Dall'editor all'esecuzione 1 Scrittura


Scrivere il programma con un qualsiasi editor, e.g, notepad (windows), gedit (linux), etc. Salvare il le con NomeClasse.java Il nome del le deve essere uguale al nome della classe

Scrivere compilare ed eseguire codice Java


Laboratorio di Programmazione II

Presentazione del Corso Il linguaggio Java Oggetti e Metodi Strutture di Controllo Classi in Java

Dall'editor all'esecuzione 2 Compilazione


Chiamare il compilatore java con parametro il nome del le da compilare Usando il Java Standard Developmnent Kit il compilatore viene chiamato con il comando javac javac NomeClasse.java produce NomeClasse.class NomeClasse.class rappresenta il bytecode del programma java

Scrivere compilare ed eseguire codice Java


Laboratorio di Programmazione II

Presentazione del Corso Il linguaggio Java Oggetti e Metodi Strutture di Controllo Classi in Java

Dall'editor all'esecuzione 3 Esecuzione


Chiamare il programma java che interpreta il bytecode con parametro il nome del le compilato senza .class Usando il Java Standard Developmnent Kit il comando per eseguire un programma java compilato java java NomeClasse comporta l'esecuzione di NomeClasse

Errori
Laboratorio di Programmazione II

Presentazione del Corso Il linguaggio Java Oggetti e Metodi Strutture di Controllo Classi in Java

Un programma errato
public class Errori { public static void main(String[] args) { System.out.println("Questi sono i miei primi errori Java") Sistem.out.println("...e non saranno gli ultm!!!"); } }

Tipi di Errori
Laboratorio di Programmazione II

Sintattici, Semantici e Logici Sintattici: violazione delle regole sintattiche del linguaggio Semantici, impossibilit di assegnare un signicato ad un'istruzione
esempio: Sistem.out.println(...); - errore di ortograa nella parola System a volte sono individuati dal compilatore (errori di semantica statica), altre volte sono individuati a tempo di esecuzione (errori di semantica dinamica) esempio: System.out.println(...) - manca il ';' sono individuati dal compilatore

Presentazione del Corso Il linguaggio Java Oggetti e Metodi Strutture di Controllo Classi in Java

Logici, relativi alle funzionalit realizzate dal programma (dierenti da quelle desiderate)

esempio: System.out.println(...e non saranno gli ultm!!!); : la stringa da stampare non corretta individuati solo analizzando o eseguendo test di verica del programma

Dal codice sorgente all'esecuzione


Laboratorio di Programmazione II

Riassunto

Presentazione del Corso Il linguaggio Java Oggetti e Metodi Strutture di Controllo Classi in Java

Ciclo edita compila esegui


Laboratorio di Programmazione II

Riassunto

Presentazione del Corso Il linguaggio Java Oggetti e Metodi Strutture di Controllo Classi in Java

Java API
Laboratorio di Programmazione II

Presentazione del Corso Il linguaggio Java Oggetti e Metodi Strutture di Controllo Classi in Java

Abstract Programming Interface documentazione per Java Java API documentazioni di classi, metodi e package noi utilizziamo la versione 1.6 standard edition

Oggetti e Metodi
Laboratorio di Programmazione II

Presentazione del Corso Il linguaggio Java Oggetti e Metodi Strutture di Controllo Classi in Java

Oggetti in Java
Laboratorio di Programmazione II

Presentazione del Corso Il linguaggio Java Oggetti e Metodi Strutture di Controllo Classi in Java

Utilizzare Oggetti Oggetti: entit manipolate dai programmi Ogni oggetto istanza di una classe La classe di appartenenza determina le operazioni eseguibili sull'oggetto Example (Utilizzo oggetti e metodi)
String s = ...; String r = s.toUpperCase(); System.out.println(r);

Creazione di oggetti
Laboratorio di Programmazione II

Presentazione del Corso Il linguaggio Java Oggetti e Metodi Strutture di Controllo Classi in Java

Creazione Oggetti Per utilizzare un oggetto si deve prima crearlo Un oggetto si crea:
con l'istruzione new e l'invocazione al costruttore

Example (Costruzione oggetti)


String s = new String("ciao");

Metodi in Java
Laboratorio di Programmazione II

Presentazione del Corso Il linguaggio Java Oggetti e Metodi Strutture di Controllo Classi in Java

Metodi dati parametri in ingresso compie azioni o restituisce risultati Denizione di un metodo
Signature: nome, numero, tipo ed ordine dei parametri formali Corpo: sequenza di istruzione per realizzare l'operazione richiesta Tipo di ritorno: void se il metodo non ritorna nessun risultato altrimenti il tipo del risultato il metodo viene invocato su un oggetto si passano al metodo i parametri attuali in java si passano sempre riferimenti ad oggetti fanno eccezione i tipi primitivi (int, double, char, etc.)

Invocazione di un metodo

Metodi Statici
Laboratorio di Programmazione II

Presentazione del Corso Il linguaggio Java Oggetti e Metodi Strutture di Controllo Classi in Java

Metodi Statici Metodi che non hanno un oggetto di invocazione Vengono richiamati specicando la classe a cui appartengono Example (metodi statici)
Math.max(a,b);

Input da tastiera
Laboratorio di Programmazione II

Presentazione del Corso Il linguaggio Java Oggetti e Metodi Strutture di Controllo Classi in Java

Leggera input da tastiera Importare la libreria Java.util.*


import Java.util.*;

Inizializzare lo stream di ingresso


Scanner sc = new Scanner(System.in)

Per leggere un dato (intero) da tastiera


int a = sc.nextInt();

Vedi le: EsempioInput.java

Esercizio
Laboratorio di Programmazione II

Presentazione del Corso Il linguaggio Java Oggetti e Metodi Strutture di Controllo Classi in Java

Concatena Stringhe Scrivere una classe ConcatenaStringhe che legge da input 4 stringhe, le concatena e stampa la stringa risultante. Soluzione: ConcatenaStringhe.java

Strutture di Controllo
Laboratorio di Programmazione II

Presentazione del Corso Il linguaggio Java Oggetti e Metodi Strutture di Controllo Classi in Java

Selezione Semplice
Laboratorio di Programmazione II

Selezione Semplice

Presentazione del Corso Il linguaggio Java Oggetti e Metodi Strutture di Controllo Classi in Java

Selezione a due vie


Laboratorio di Programmazione II

Selezione a due vie

Presentazione del Corso Il linguaggio Java Oggetti e Metodi Strutture di Controllo Classi in Java

Ciclo a condizione iniziale


Laboratorio di Programmazione II

Ciclo a condizione iniziale

Presentazione del Corso Il linguaggio Java Oggetti e Metodi Strutture di Controllo Classi in Java

Ciclo a condizione nale


Laboratorio di Programmazione II

Ciclo a condizione nale

Presentazione del Corso Il linguaggio Java Oggetti e Metodi Strutture di Controllo Classi in Java

Ciclo FOR
Laboratorio di Programmazione II

Ciclo a FOR
for (inizializzazione; condizione; incremento) istruzione

Presentazione del Corso Il linguaggio Java Oggetti e Metodi Strutture di Controllo Classi in Java

Semanticamente equivalente a:
{

inizializzazione; while (condizione) { istruzione incremento; }

Ciclo FOR esempio


Laboratorio di Programmazione II

Ciclo a FOR esempio


for (int i = 0; i<=100; i++){ System.out.println("*") }

Presentazione del Corso Il linguaggio Java Oggetti e Metodi Strutture di Controllo Classi in Java

Semanticamente equivalente a:
{

int i=0; while (i<=100) { System.out.println("*"); i++; }

Schema ciclo while lettura dati


Laboratorio di Programmazione II

Ciclo while lettura dati


while( dato disponibile){ processa dato leggi nuovo dato }

Presentazione del Corso Il linguaggio Java Oggetti e Metodi Strutture di Controllo Classi in Java

Example (Numero interi letti da input)


... Scanner sc = new Scanner(System.in); int numInt = 0; while (sc.hasNextInt()){ numInt++; sc.nextInt(); } System.out.println("numero di interi immessi "+numInt); ...

Esercizi Cicli I
Laboratorio di Programmazione II

Presentazione del Corso Il linguaggio Java Oggetti e Metodi Strutture di Controllo Classi in Java

Cicli I 1 Scrivere un programma che calcoli il numero di interi positivi inseriti da tastiera. Soluzione: NumeroInteriPositivi.java 2 Scrivere un programma che calcoli la media dei numeri reali inseriti da tastiera. Soluzione: MediaReali.java 3 Scrivere un programma che stampi il MCD di due numeri interi dati in input Soluzione: MassimoComunDivisore.java
considerare come possibile MCD il minimo dei due numeri e poi decrementare MCD no a che non divide esattamente entrambi i numeri in input.

Esercizi Cicli II
Laboratorio di Programmazione II

Presentazione del Corso Il linguaggio Java Oggetti e Metodi Strutture di Controllo Classi in Java

Cicli II 4 Scrivere un programma che calcoli il massimo dei numeri reali inseriti da tastiera (assumere che venga inserito almeno un reale). Soluzione: MassimoReali.java 5 Scrivere un programma che stampi il massimo dei numeri reali inseriti da tastiera caso generale Soluzione: MassimoGenerale.java
utilizzare una variabile booleana per decidere se stato inserito almeno un dato valido

Cicli annidati
Laboratorio di Programmazione II

Il corpo di un ciclo pu contenere a sua volta un ciclo, chiamato ciclo annidato. possibile annidare un qualunque numero di cicli. Example (stampa della tavola pitagorica)
public class TavolaPitagorica { static final int NMAX = 10; public static void main (String[] args) { int riga, colonna; for (riga = 1; riga <= NMAX; riga++) { for (colonna = 1; colonna <= NMAX; colonna++) System.out.print(riga * colonna + " "); System.out.println(); }

Presentazione del Corso Il linguaggio Java Oggetti e Metodi Strutture di Controllo Classi in Java

Esercizi cicli annidati I


Laboratorio di Programmazione II

Media 1 Scrivere un programma che produca la seguente stampa:


* ** ***

Presentazione del Corso Il linguaggio Java Oggetti e Metodi Strutture di Controllo Classi in Java

dove l'altezza deve essere un parametro passato da input Soluzione:StampaAsterischi.java Scrivere un programma che produca la seguente stampa (l'altezza della piramide un dato passato da input):
* *** *****

trovare la relazione che lega il numero della riga ed il numero di spazi ed asterischi da stampare per ciascuna riga Soluzione: StampaPiramideAsterischi.java

Classi in Java
Laboratorio di Programmazione II

Presentazione del Corso Il linguaggio Java Oggetti e Metodi Strutture di Controllo Classi in Java

Classi in Java
Laboratorio di Programmazione II

Presentazione del Corso Il linguaggio Java Oggetti e Metodi Strutture di Controllo Classi in Java

Classe descrizione astratta dell'insieme di dati e delle funzioni che operano sugli stessi. denisce un'interfaccia pubblica (metodi che si possono chiamare) un'implementazione nascosta: codice e dati necessari per fare funzionare i metodi StudenteBase.java

Denizione di classi
Laboratorio di Programmazione II

Presentazione del Corso Il linguaggio Java Oggetti e Metodi Strutture di Controllo Classi in Java

Campi privati mantengono informazioni rilevanti per ciascun oggetto che la classe rappresenta (rappresentazione interna) sono variabili che possono essere utilizzate (lettura/scrittura) da ciascun metodo della classe buona non renderli accessibili all'esterno

Denizione di Classi
Laboratorio di Programmazione II

Presentazione del Corso Il linguaggio Java Oggetti e Metodi Strutture di Controllo Classi in Java

Interfaccia pubblica metodi disponibili all'esterno costruttori:


inizializzano i campi della classe deniscono quali informazioni sono necessarie per creare un oggetto metodi get: forniscono informazioni all'esterno metodi set: aggiornano i campi della classe

metodi di accesso:

altri metodi che rendono disponibili servizi ai clienti della classe

Denizione di Classi
Laboratorio di Programmazione II

Presentazione del Corso Il linguaggio Java Oggetti e Metodi Strutture di Controllo Classi in Java

Metodi privati metodi non disponibili all'esterno utilizzati dalla classe per realizzare i servizi da esportare

Interfaccia e contratto
Laboratorio di Programmazione II

Presentazione del Corso Il linguaggio Java Oggetti e Metodi Strutture di Controllo Classi in Java

Interfaccia Metodi pubblici della classe Una volta denita l'interfaccia si pu (ed buona norma farlo) immediatamente scriver un cliente della classe Esempio: ClienteStudenteBase.java Contratto I servizi esportati dai metodi pubblici Cosa i metodi pubblici realizzano non come lo realizzano

Esercizi Classi
Laboratorio di Programmazione II

Esercizi I Realizzare una classe Insegnamento che abbia:


tre campi: nome (Stringa) aula (Stringa) numeroIscritti (intero) un costruttore con un argomento che inizializza il nome dell'insegnamento Insegnamento(String nome) tre metodi get String getNome() String getAula() int getNumeroIscritti() due metodi set void setAula(String aula) void set NumeroIscritti(int numeroIscritti) Soluzione:Insegnamento.java

Presentazione del Corso Il linguaggio Java Oggetti e Metodi Strutture di Controllo Classi in Java

Esercizi Classi
Laboratorio di Programmazione II

Presentazione del Corso Il linguaggio Java Oggetti e Metodi Strutture di Controllo Classi in Java

Esercizi II Realizzare un metodo della classe Insegnamento.java che aggiunga un iscritto e restituisca il nuovo numero degli iscritti
int aggiungiIscritto()

Soluzione: Insegnamento.java

vericare il corretto funzionamento della classe Insegnamento eseguendo il metodo main della classe ClienteInsegnamento.java

Potrebbero piacerti anche