Vai al contenuto

Primario: Sky Slate Blackcurrant Watermelon Strawberry Orange Banana Apple Emerald Chocolate Marble
Secondario: Sky Slate Blackcurrant Watermelon Strawberry Orange Banana Apple Emerald Chocolate Marble
Sfondo: Blank Waves Squares Notes Sharp Wood Rockface Leather Honey Vertical Triangles
Corsi di Laurea










ROX @ Unisa - Forum degli studenti di Ingegneria utilizza i cookie. Se prosegui la navigazione accetti il loro uso.    Accetto l'uso dei cookie
-->
Foto

Domande irrisolte 2... OOP 2009/2010


  • Effettua l'accesso per rispondere
Questa discussione ha avuto 49 risposta/e

#1
Ale89

Ale89

    Advanced Member

  • Utente
  • StellaStellaStella
  • 225 Messaggi:
Ragazzi dopo quell di ieri ho altre domande su cui farvi riflettere...
1) Tipi generici "possibilità che ce li chiedano"
2) Perchè le mappe non implementano l'interfaccia Collection
3) Un esempio di polimorfismo nelle collection

Ho provato a cercare in giro ma si trova davvero poco e male... Se avete anche soltanto idea è buono che ne discutiamo oggi e domani anziche che farci trovare impreparati all'orale!!!


Fieru cu biessi quiddhu ca tie 'uè biessi e none quiddhu ca l'auri te dicenu cu 'sinti! SUD SOUND SYSTEM - Nun me fannu paura
Hey Bobby Marley sing something to me. This world go crazy, it's an emergency! MANU CHAO - Mr Bobby

#2
eferre

eferre

    Advanced Member

  • Utente
  • StellaStellaStella
  • 1502 Messaggi:
1) Il buon Tufano li chiede di sicuro! :D
2) Collection è definita per elementi che si identificano su un solo campo.
3) Non ho capito che genere di esempio vuoi :asd:

#3
IbraAleKadabra

IbraAleKadabra

    Newbie

  • Utente
  • StellaStellaStella
  • 1194 Messaggi:

3) Un esempio di polimorfismo nelle collection


Anke io cercavo questa risposta.. :S
"Puntalo ke te lo salti e se sbaglii fa niente, riprenditi il pallone e ripuntalo.. Se qualcuno ti dice qualkosa, dimmelo ke me la vedo io!!!"
Grazie di tutto Mister..

Immagine inviata

#4
IbraAleKadabra

IbraAleKadabra

    Newbie

  • Utente
  • StellaStellaStella
  • 1194 Messaggi:
Cmq penso ke una delle risposte possa essere nella overriding di un metodo implementato nelle collection!!!
"Puntalo ke te lo salti e se sbaglii fa niente, riprenditi il pallone e ripuntalo.. Se qualcuno ti dice qualkosa, dimmelo ke me la vedo io!!!"
Grazie di tutto Mister..

Immagine inviata

#5
IbraAleKadabra

IbraAleKadabra

    Newbie

  • Utente
  • StellaStellaStella
  • 1194 Messaggi:
Cmq penso ke una delle risposte possa essere nella overriding di un metodo implementato nelle collection!!!
"Puntalo ke te lo salti e se sbaglii fa niente, riprenditi il pallone e ripuntalo.. Se qualcuno ti dice qualkosa, dimmelo ke me la vedo io!!!"
Grazie di tutto Mister..

Immagine inviata

#6
eferre

eferre

    Advanced Member

  • Utente
  • StellaStellaStella
  • 1502 Messaggi:
ah, forse ho capito: visto che le strutture che utilizziamo implementano l'interfaccia Collection, ridefinendo i metodi è ovvio che si fa del polimorfismo... quindi ogni metodo ridefinito di inserimento o cancellazione è un possibile esempio.

è questo che cercavi?

#7
Mikelito

Mikelito

    Advanced Member

  • Utente
  • StellaStellaStella
  • 102 Messaggi:
Per le collezioni viene utilizzato il polimorfismo per dati grazie al quale è possibile implementare collezione eterogenee.

esempio

Rifacendoci al classico esempio delle figure geometriche(classe base) da cui derivano le classi triangolo,quadrato,cerchio,ecc. Da qui si può pensare di creare una collezione di figure geometriche in cui possono essere inseriti oggetti delle classi derivate...ciò è possibile grazie al polimorfismo.


PS
Una domanda mia....ma per tipi generici cosa si intende,i tipi wrapper oppure i generics quelli utilizzati per parametrizzare le collezioni con le parentesi angolari ????


alessio dammi un thank you :D :D :D :D
---------------------------------------------------------------------------
" Il TeMpO ?...Il NoStRo Più GrAnDe NeMiCo...... "

#8
Ale89

Ale89

    Advanced Member

  • Utente
  • StellaStellaStella
  • 225 Messaggi:
Tipo generico è quello tra parentesi angolari!!! Ricambia il thank you adess prrr
Fieru cu biessi quiddhu ca tie 'uè biessi e none quiddhu ca l'auri te dicenu cu 'sinti! SUD SOUND SYSTEM - Nun me fannu paura
Hey Bobby Marley sing something to me. This world go crazy, it's an emergency! MANU CHAO - Mr Bobby

#9
Di bello Giuseppe

Di bello Giuseppe

    Advanced Member

  • Utente
  • StellaStellaStella
  • 38 Messaggi:
Grazie al polimorfismo è possibile definire una struttura dati a tuo piacere, però dimenticare che devi implementare tutti i metodi dell'interfaccia Collection.
Per quanto riguarda le map possiamo subito notare che la firma dei metodi sarà sicuramente diversa da quella implementata in Collection, basta guardare l'inserimento, con un list abbiamo bisogno solo di un parametro, mentre nella map serve una chiave e l'oggetto da inserire nella struttura dati, quindi non parleremo più di override ma di overload.

#10
Umberto

Umberto

    Newbie

  • Utente
  • StellaStellaStella
  • 414 Messaggi:
Ragà quando il prof Tufano spiegò i listener disse ke questi nn stanno in attesa attiva, chiedendo sempre se si è verificato l'evento...e allora ke tipo di attesa è?? come fanno ad accorgersi dell'evento??
r0x GRAZIE DI ESISTERE...

#11
Di bello Giuseppe

Di bello Giuseppe

    Advanced Member

  • Utente
  • StellaStellaStella
  • 38 Messaggi:
In questo caso si parla di attesa passiva.
Quando si verifica un interrupt hardware ad esempio un click su un button, il sistema operativo lo rileva e lo passa alla jvm che si occupa di tutto il resto.

#12
Ale89

Ale89

    Advanced Member

  • Utente
  • StellaStellaStella
  • 225 Messaggi:
Il listener com'è ha detto Giuseppe è in attesa passiva...
Praticamente ogni componente ha una lista di listener(scusate la cacofonia :D )
Quando l'utente genera un evento il sistema operativo lo rileva e passa il controllo al thread di sistema per la gestione delle interfacce grafiche in java.. Questo, riconosciuto quale componente è stato in interazione con l'utente, accede alla lista dei listener :) e in base all'evento che gli è stato passato dal SO sceglie tra questi quale attivare(ad esempio se si tratta di un actionevent farà partire un'implementazione di actionlistener registrata e presente altrimenti non farà nulla) e in fine si mette in wait e varrà ripreso dalla prossima interruzione!

Spero di essere stato chiaro :aufsmaul: :aufsmaul:
Fieru cu biessi quiddhu ca tie 'uè biessi e none quiddhu ca l'auri te dicenu cu 'sinti! SUD SOUND SYSTEM - Nun me fannu paura
Hey Bobby Marley sing something to me. This world go crazy, it's an emergency! MANU CHAO - Mr Bobby

#13
BOJACK89

BOJACK89

    Newbie

  • Utente
  • StellaStellaStella
  • 141 Messaggi:
In realtà non stanno proprio in attesa completamente passiva, ma effettuano un "ascolto a campiponamento", il polling di cui parlò il professore era riferito a questa situazione.
'A vita è 'nu muorzo!

#14
Ale89

Ale89

    Advanced Member

  • Utente
  • StellaStellaStella
  • 225 Messaggi:
Sei sicuro che il polling è riferito al listener oppure come credo io è effettuato dal SO che interroga il registro di stato dove sono presenti anche bit x la gestione delle interruzioni? E successivamente riconosciuita un'interruzione attribuibile ad un evento gestibile dalla jvm riprende il thread di sistema x la gestione delle interfacce grafiche???
Fieru cu biessi quiddhu ca tie 'uè biessi e none quiddhu ca l'auri te dicenu cu 'sinti! SUD SOUND SYSTEM - Nun me fannu paura
Hey Bobby Marley sing something to me. This world go crazy, it's an emergency! MANU CHAO - Mr Bobby

#15
Di bello Giuseppe

Di bello Giuseppe

    Advanced Member

  • Utente
  • StellaStellaStella
  • 38 Messaggi:
Precisamente no lo sò :D
Però pensandoci un credo che quando si verifica un interrupt tipo un click oppure uno spostamanto della freccia del mouse su di un' interfaccia attiva, visto che l'interfaccia corrisponde ad un programma, sia il sistema operativo che manda alla jvm dei paramatri come le coordinate e il tipo di interrupt ad esempio tasto destro o sinistro del mouse, in base a ciò la jvm identifica 'oggetto e avvia la listener corrispondente al tipo di evento.
Si gradiscono chiarimenti

#16
eferre

eferre

    Advanced Member

  • Utente
  • StellaStellaStella
  • 1502 Messaggi:
1) Il click del mouse o la pressione di un tasto generano un'interruzione hardware
2) L'interruzione hardware viene raccolta dal sistema operativo, il quale comunica con il "gestore dell'interfaccia di Java" (come avviene questo passaggio non ci è stato spiegato e francamente non credo sia il caso di chiederselo adesso)
3) Solo in questo momento viene riconosciuto da tale gestore il componente grafico coinvolto e viene affidato a tale componente la creazione dell'evento (l'oggetto Event che viene creato dipende dal messaggio passato al componente dal gestore delle interfacce): per esempio se viene trasmesso un messaggio del tipo "bottone premuto" di sicuro ad essere creato è un oggetto di tipo ActionEvent
4) L'oggetto viene "lanciato" al listener (o meglio viene passato come parametro ad uno dei suoi metodi) e allo stesso tempo la JVM si preoccupa di eseguire il "thread listener"

Ora l'unica cosa che non mi è chiara è l'attesa svolta dal listener: secondo me non si tratta di un'attesa, perchè il thread in teoria viene creato solo alla generazione dell'evento. Prima dell'evento esiste solo un oggetto di tipo listener registrato presso un componente grafico, che secondo me non è nient'altro che un collegamento tra il componente ed il brano di codice che solo EVENTUALMENTE deve essere eseguito.

#17
Di bello Giuseppe

Di bello Giuseppe

    Advanced Member

  • Utente
  • StellaStellaStella
  • 38 Messaggi:
Esattamente quello che avevo pensato io.
Come dici tu non esiste nessun tipo di attesa, però quando si verifica un evento il progrmma deve interrompere il suo funzionamento per creare il listener qundi in questo caso si potrebbe parlare di attesa... non so se rendo l'idea.

#18
ziofabrix

ziofabrix

    Newbie

  • Utente
  • StellaStellaStella
  • 251 Messaggi:
Per quanto riguarda i listener ricordo anche io che il prof accennò ad un meccanismo di polling...anche perkè nn potrebbe mettersi mica sempre li ad ascoltare..
Non preoccupatevi per il futuro:se la caverà benissimo anche senza di voi

#19
eferre

eferre

    Advanced Member

  • Utente
  • StellaStellaStella
  • 1502 Messaggi:

Esattamente quello che avevo pensato io.
Come dici tu non esiste nessun tipo di attesa, però quando si verifica un evento il progrmma deve interrompere il suo funzionamento per creare il listener qundi in questo caso si potrebbe parlare di attesa... non so se rendo l'idea.


Ma il fatto è che, una volta che l'interfaccia è stata creata ed è visualizzata a video, il programma è già in attesa di un'azione dell'utente. E credo che tale attesa sia passiva... in altre parole il programma riprende solo con un lancio di eccezione... e tale eccezione deriva dal software JVM (anch'esso in pausa) che a sua volta è stato risvegliato dal sistema operativo, a causa di un'interruzione hardware.

#20
Di bello Giuseppe

Di bello Giuseppe

    Advanced Member

  • Utente
  • StellaStellaStella
  • 38 Messaggi:
Se no ho capito male nella tua ipotesi il programma è ibernato cioè non esegue nessuna istruzione mentre è in attesa, quindi il programma rimane in pausa dopo aver assegnato il listener ad un oggetto, ciò non quadra perchè se proviamo ad invocare il metodo nel quale creiamo l'interfaccia dopo l'assegnamento dei listener non può eseguire più nulla nemmeno assegnare un'altro listener ad un oggetto o invocare un metodo.
Sbaglio?




Leggono questa discussione 0 utenti

0 utenti, 0 ospiti, 0 utenti anonimi