Esercizio 2. Mostrare l'evoluzione dello stato (ambiente di classi, heap, pila, System.out) durante la valutazione delle seguenti dichiarazioni di classe.

Slides:



Advertisements
Presentazioni simili
Puntatori Linguaggio C.
Advertisements

Mostrare l'evoluzione dello stato (ambiente di classi, heap, pila, System.out) dopo ciascuna istruzione del main: public class Up extends Object { public.
1 Le s-espressioni. 2 Un nuovo esempio completo: le s-espressioni Sexpr 4 alberi binari (possibilmente vuoti) che hanno sulle foglie atomi (stringhe)
Interfacce Java.
Oggetti Java.
Costruttori e Distruttori
Capitolo 2 Nozioni fondamentali su Java Lucidi relativi al volume: Java – Guida alla programmazione James Cohoon, Jack Davidson Copyright © The McGraw-Hill.
1 Semantica Operazionale di un frammento di Java: lo stato.
Alcune Classi Standard Object, Vettori. Esercizio dellultima volta Superclasse Persona Sottoclasse Libro.
Classi ed Oggetti in Java (Cenni). Richiami Ruolo delle Classi in Java Oggetti.
LIP: 19 Aprile Contenuto Soluzione Compitino Tipo di dato MultiSet, estensione con sottoclasse.
Si consideri il seguente programma: class Up extends Object { public static int x; public int y; public static void metodo(Up o) {Up w=o.metodo1(x); o.y=w.y+6;}
Mostrare l'evoluzione dello stato (ambiente di classi, heap, pila, System.out) dopo ciascuna istruzione del main: public class Up extends Object { public.
PRIMO ESERCIZIO (del ) Mostrare l'evoluzione dello stato (ambiente di classi, heap, pila, System.out) dopo ciascuna istruzione del main: public.
LIP: 1 Marzo 2005 Classe Object e Vettori. Partiamo da Lesercizio dellultima esercitazione realizzato tramite array Vedremo come si puo fare in modo piu.
Petri Nets Controllo Supervisivo Mutua esclusione generalizzata (GMEC)
Fondamenti di Informatica CDL in Ingegneria Gestionale (B)- A.A CDL in Ingegneria Gestionale (B)- A.A Programmazione Ricorsiva.
Layouts and Graphics. component - container - layout Un Container contiene [0 o +] Components Il Layout specifica come i Components sono disposti nel.
Esempio: Tombola! Parte seconda.
Unified Modeling Language class C {…} class B extends C {…} Esiste una notazione grafica per mostrare le relazioni di ereditarietà. Object StringC B Tutte.
Modificatori: static Variabili e metodi associati ad una Classe anziche ad un Oggetto sono definiti static. Le variabili statiche servono come singola.
Richiami di Java Multithreading. Threads (subclassing) public class A { public void a_method { C t = new C(); //C t = new C(String name); t.start(); …
Sezione: Costruttori Costruttori. Definizione dei costruttori Se per una classe A non scrivo nessun costruttore, il sistema automaticamente crea il costruttore.
prompt> java SumAverage
1 struct Pila { private: int size; int defaultGrowthSize; int marker; int * contenuto; void cresci(int increment); public: Pila(int initialSize) ; Pila();
Introduzione alla Object Oriented Programming, OOP E.Mumolo. DEEI
E.Mumolo. DEEI Introduzione alla programmazione ad oggetti in C++ Object Oriented Programming, OOP E.Mumolo. DEEI
1 Corso di Laurea in Biotecnologie Informatica (Programmazione) JAVA: i commenti Anno Accademico 2009/2010.
// PROTOTIPI void costruisciLista(Pnodo &, string &); void stampaLista(Pnodo ); void creaNodo (int, Pnodo&); Pnodo inserisciNodoTesta (int,Pnodo &); Pnodo.
1. Conoscere luso delle collezioni in Java Comprendere le principali caratteristiche nelle varie classi di Collection disponibili Saper individuare quali.
JAVA C import java.util.*; #include <stdio.h>
II ESONERO Modelli di Sistemi Biologici II 11/06/2009h11 A.40 TEMA 1 1.Si consideri il modello minimo del glucosio (6) rappresentato dalle seguenti equazioni:
Soluzione Esercizio - Classe Vettore
Selezione (=scelta) con “if-else”
Sottoprogrammi e Unità di Compilazione Nicola Fanizzi Laboratorio - Corso di Programmazione (B) C.d.L. in Informatica DIB - Università degli Studi di Bari.
La Programmazione Ricorsiva
Fondamenti di Informatica Corsi di Laurea in Ingegneria Gestionale Canale AL ESERCITAZIONE 4 ARGOMENTI: STRINGHE DI CARATTERI.
1 Lucidi delle esercitazioni di Sistemi di Elaborazione in Rete Università degli Studi della Calabria Corso di Laurea in Ingegneria Informatica A.A. 2003/2004.
Diagramma di flusso del problema del Supermercato.
void binario(int n); …………………
Ese 2 (del 31 Marzo 2004). Mostrare l'evoluzione dello stato (ambiente di classi, heap, pila, System.out) durante la valutazione delle seguenti dichiarazioni.
Multiset. Progettare (specifica con identificazione delle eventuali astrazioni necessarie, incluse eccezioni, e implementazione) del tipo di dato Multiset,
Enumerazioni e Classi 1. Enumerazioni Permettono di definire nuovi tipi che consistono in un insieme di valori costanti (ognuno con un nome) – Migliorano.
Soluzioni 1.Struttura base soluzione 2.Lettura dei tasti 3.Identificazione dei tasti 4.Accensione dei LED 5.Rotazione dei LED 6.Rotazione dei tasti fino.
Test con JUnit. zJUnit è un ambiente di test per programmi Java ySviluppato da Kent Beck É possibile usare JUnit allinterno di Eclipse per eseguire i.
1 Simulated multiple inheritance Sandro Pedrazzini Approfondimento Simulated multiple inheritance in Java.
Università degli Studi di BresciaA.A. 2012/2013 Fondamenti di Programmazione Docente: Alessandro SaettiA.A. 2012/2013 Università degli Studi di Brescia.
Conversione da base 10 a base X (Utilizzo della pila)
Collection & Generics in Java
Esercizi.
Stack Già visto l’altra volta senza gestione eccezioni, le prime tre slide servono solo come ripasso, dalla quarta argomento nuovo class Stack { int data[];
1 Implementazione di (ambiente e) memoria nel linguaggio imperativo.
1 novembre I nomi in Java F. Bombi 1 novembre 2002.
Ereditarieta’. Contenuti Introduciamo un meccanismo fondamentale di Java: l’ereditarieta’ Permette di estendere classi gia’ definite (ovvero di definire.
Fondamenti di informatica Oggetti e Java Luca Cabibbo Luca Cabibbo – Fondamenti di informatica: Oggetti e Java Copyright © 2004 – The McGraw-Hill Companies.
Corso di Laurea Ingegneria Informatica Fondamenti di Informatica
1 Eccezioni in Java. 2 Ricordiamo che 4 una procedura può terminare –normalmente, ritornando un risultato –in modo eccezionale ci possono essere diverse.
Ese 1 (del 31 Marzo 2004). Il compilatore Non esegue il programma, non guarda i valori che possono assumere di volta in volta le variabili, non fa assunzioni.
Metodologie di Programmazione Esercizi sulla semantica di Java.
Esercizio 2. Si mostri l’evoluzione dello stato (ambiente di classi, heap, pila) durante la valutazione delle seguenti dichiarazioni di classe nei punti.
1 Invocazione di metodi Com := Path Id (Expr_list) 4 path trattati come nelle variabili  path p’ 4 Risoluzione del nome: Ide * (Ide | Loc) * Cenv * Heap.
Ese 1 e 3 (del 6 Aprile 2005). Primo Ese Si identifichino gli errori che il compilatore segnalerebbe per il seguente programma Tipi Legami tra dichiarazioni.
Ex.1 - Semantica dell’Assegnamento Com := Path Ide = Expr (assegnamento) Com * Cenv * Heap * Astack  com Heap * Astack * Cenv Una soluzione parziale:
1 Java secondo contatto Nel tunnel una luce…. 2 Esercizio - Contatore Definire la classe Contatore con le seguenti caratteristiche:  Il metodo getValore.
10. Programmazione Ricorsiva Ing. Simona Colucci
Ricorsione 16/01/2019 package.
Ese 2 (del 31 Marzo 2004).
Esercizio 2.
Ese 1 (del 31 Marzo 2004).
Ese 3 (del 3 Aprile 2003).
Transcript della presentazione:

Esercizio 2

Mostrare l'evoluzione dello stato (ambiente di classi, heap, pila, System.out) durante la valutazione delle seguenti dichiarazioni di classe e l'esecuzione del metodo main (nei punti (1)--(6) public class Up extends Object { public static int x; public int y; public static void set (int i) {x=i+1;} public Up metodo (int i) { set(i); Up p1=new Up(); p1.y=y+i; p1.x=x; \\ (1) return p1;} {y=x;} public class Down extends Up { public int z; public Up metodo (int i) { set(i); Down p1=new Down(); p1.y=y-i; p1.z=x+y; \\ (2) return p1;} {z = 2;} } public class Princ extends Object { public static void main () { Up p1 = new Up (); \\ (3) Up p2 = p1.metodo(2); \\ (4) Up p3= new Down(); \\ (5) Up p4= p3.metodo(5); \\ (6)}

Ambiente delle classi 0 Object Up Down Princ Variabili e metodi non staticVariabili e metodi staticClasse ereditataNome classe Object Up Object main--- 0x Descr set set Descr met1 metodo Descr Up Up 0y z 0y Descr met2 metodo Descr Dow Down Descr Up Up 3 3

Descr set = Descr met1 = Descr Up = Ambiente delle classi 0 Descr met2 = <i, { set(i); Down p1=new Down(); p1.y=y-i; p1.z=x+y; return p1;} }, Down> Descr Down = Ereditarieta' sul costruttore Overriding del metodo metodo

Stato iniziale: : Ambiente delle classi : Heap vuota : Contiene il record di attivazione di main Princ Pila dei Frames vuota

Prima Istruzione del main: Up p1 = new Up() (3) com Creazione di un oggetto: l1l1 ' Up Copia del frame e dell'ambiente dei metodi di istanza da Up. 0y Valutazione del costruttore (come metodo di istanza) : {y=x;}

Il valore ritornato e assegnato alla variabile p1 nel frame al top della pila nel record di attivazione corrente l1l1 Princ l1l1 p1p1 ' Up 0y Istanziato per l 1 : ' = instantiate (,l 1 ) !

Seconda Istruzione del main: Up p2 = p1.metodo(2) fmet '(metodo) ' (metodo) = /// Princ l1l1 2i ' Push del Record di attivazione com

Stato nel punto (1): C 1 = { set(i); Up p1=new Up(); p1.y=y+i+1; p1.x=x;return p1 ;} /// Princ l1l1 2i l2l2 p1 ' l2l2 '' Up 2y l1l1 ' 0y

Valutazione di set(i) Object Up Down Princ Object Up Object ---main 3x Descr set set Descr met1 metodo Descr Up Up 0y z 0y Descr met2 metodo Descr met1 Down Descr Up Up 3 3 1

Stato nel punto (4) com l2l2 '' Up 2y l1l1 ' 0y Princ l1l1 p1p1 l2l2 p2p2 Istanziato per l 2 : '' = instantiate (,l 2 ) !

Terza Istruzione del main: Up p3 = new Down() (5) com Istanziato per l 3 : ' = instantiate (,l 3 ) ! l2l2 '' Up 2y l1l1 ' 0y l3l3 ' Down 3y 2z Creazione nuovo oggetto. Object Dichiarazione. l1l1 p1p1 l2l2 p2p2 l3l3 p3p3

Quarta Istruzione del main: Up p4 = p3.metodo(5) com fmet ' (metodo) '' (metodo) = C 2 = { set(i); Down p1=new Down(); p1.y=y-i; p1.z=x+y; return p1 ;}

Valutazione di set(i) Object Up Down Princ Object Up Object ---main 6x Descr set set Descr met1 metodo Descr Up Up 0y z 0y Descr met2 metodo Descr met1 Down Descr Up Up 3 3 2

Stato nel punto (2): C 2 = { set(i); Down p1=new Down(); p1.y=y-i; p1.z=x+y; return p1 ;} /// Princ l3l3 5i ' ////// l2l2 l1l1 l4l4 '' Down y 9z ////// l3l3 -2 instantiate…

Stato finale (6) ////// l2l2 l1l1 l4l4 '' Down y 9z ////// l3l3 -2 Object Dichiarazione. l1l1 p1p1 l2l2 p2p2 l3l3 p3p3 l4l4 p4p4 instantiate