.dsy:it.
Show 150 posts per page

.dsy:it. (http://www.dsy.it/forum/)
- Fondamenti di architettura e programmazione (http://www.dsy.it/forum/forumdisplay.php?forumid=234)
-- [HELP] clone() (http://www.dsy.it/forum/showthread.php?threadid=23849)


Posted by elias86 on 30-01-2006 21:23:

Lightbulb clone()

Qua trovate una bella spiegazione x il metodo clone().

http://www.dis.uniroma1.it/~liberat...lone/clone.html


Posted by Reaper on 30-01-2006 22:06:

bacio! :)


Posted by elias86 on 30-01-2006 22:09:

ma che bacio??

Originally posted by Reaper
bacio! :)


ma che bacio e bacio!! schiaffoni!!!.. son un maschio!!!


Posted by Skilotto83 on 31-01-2006 08:20:

Re: ma che bacio??

Originally posted by elias86
ma che bacio e bacio!! schiaffoni!!!.. son un maschio!!!


ahahha :lol:

__________________
"Why, Sir, you find no man at all intellectual who is willing to leave London.
No, Sir, when a man is tired of London, he is tired of life; for there is in London all that life can afford."
(DR SAMUEL JOHNSON 1777)

MSN andrea.poretti(at)hotmail.it


Posted by Von Neumann on 31-01-2006 08:38:

Bbella Toni!!! Viuuuulennza! :D


Posted by trygun82 on 31-01-2006 13:44:

Ma il clone fa parte dell'interfaccia cloneable, quindi bisogna estendere Istruzione per usarlo, giusto?

__________________
"Se qualcuno non ti sorride, sii generoso e offrigli un sorriso.
Nessuno ha più bisogno di un sorriso di chi non può sorridere agli altri"

"Grattatio pallorum non est superstitio, sed remedium bonum contra omnia mala!"


Posted by elias86 on 31-01-2006 23:13:

Originally posted by trygun82
Ma il clone fa parte dell'interfaccia cloneable, quindi bisogna estendere Istruzione per usarlo, giusto?


devi fare:
code:
class Istruzione implements Cloneable


così funziona ma nn so se è una soluzione giusta o se ce ne sono altre.. stò andando un pò a tentativi con stò progetto c'è da sclerare!!!:twisted:

__________________
Vendo libri di Matematica discreta (eserciziario) e Informatica applicata al suono
Cerco URGENTEMENTE appunti del corso di "Economia e gestione dell'impresa" della prof.ssa Ripamonti dell'A.A. 2010-2011 chi li avesse mi contatti per favore avrei bisogno di fotocopiarli. Grazie.


Posted by trygun82 on 31-01-2006 23:43:

Così ci ho già pensato, la mia perplessità è se per implementarlo vuole che si usi quello già interfacciato o vuole che ne creiamo uno nuovo da zeo.

__________________
"Se qualcuno non ti sorride, sii generoso e offrigli un sorriso.
Nessuno ha più bisogno di un sorriso di chi non può sorridere agli altri"

"Grattatio pallorum non est superstitio, sed remedium bonum contra omnia mala!"


Posted by sandrino83 on 01-02-2006 10:20:

ragazzi....istruzione è una classe astratta perchè contiene metodi astratti.....non possiamo applicare un'interfaccia.....e poi secondo me dobbiamo crearlo noi un metodo che cloni e non usarne uno già pronto no?.......

__________________
we are just two lost souls swimming in a fish bowl year after year....running over the same old ground....what have we found.......


Posted by sandrino83 on 01-02-2006 11:01:

ragazzi usate l'interfaccia..........è giusto così

__________________
we are just two lost souls swimming in a fish bowl year after year....running over the same old ground....what have we found.......


Posted by WillyWonka on 01-02-2006 14:51:

BELLA TONI!!


Posted by sbrandu on 01-02-2006 15:10:

Io non ho usato l'interfaccia anche perchè nonè richiesta e funziona lo stesso..


Posted by sandrino83 on 01-02-2006 15:31:

Originally posted by sbrandu
Io non ho usato l'interfaccia anche perchè nonè richiesta e funziona lo stesso..


Potresti per favore postare come fai a creare il metodo clone()?
Logicamente non ti chiedo il codice ma solo gli elementi essenziali da mettere nella classe istruzione e in quelle estese....

__________________
we are just two lost souls swimming in a fish bowl year after year....running over the same old ground....what have we found.......


Posted by sbrandu on 01-02-2006 16:56:

Il clone() nella classe astratta Istruzione è solo dichiarato..
nelle sottoclassi che estendono Istruzione io ho implementato i vari clone facendo una copia degli oggetti correnti utilizzando il metodo clone e facendo il casting..


Posted by sandrino83 on 01-02-2006 17:05:

anch'io l'ho già fatto così ma non so se è giustissimo...........mi sembra una cosa troppo banale......daltronde il metodo già non serve a nulla nel progetto........tu hai sentito in giro ke va bene?

__________________
we are just two lost souls swimming in a fish bowl year after year....running over the same old ground....what have we found.......


Posted by sbrandu on 01-02-2006 17:12:

A me compila ed esegue senza errori la classe Programma.java (quella per il testing).. ora non so se fa tutto quello che è richiesto nel modo giusto, ma me lo fa credere il fatto che funzioni tutto


Posted by unid on 01-02-2006 18:17:

Secondo me il metodo clone deve essere implementato in ogni classe... ma SOPRATTUTTO deve essere statico in modo che ad esempio da Sequenza si possa accedere al metodo clone di Dichiara o Assegna o tutti gli altri.... Dato che a priori io non so che istruzione contiene Sequenza... posso fare un test ad esempio così:

public static Object clone(){
Object o = new Object();
if(this instanceof Dichiara){
.....
}
.....
}

e in Dichiara il clone è semplicemente così:

public static Object clone(){
Object o;
...

Intervento del moderatore:
Codice Limato


voi che ne dite?


Posted by ARIEL on 01-02-2006 20:42:

Scusate ma se il metodo clone() è astratto in Istruzione non può essere richiamato in quanto non ha un corpo e andrebbe perciò implementato in ogni classe....ma come cosa mi pare abbastanza dispendiosa soltanto che il testo non chiarisce bene come gestire il metodo clone().....qualcuna sa di preciso come va fatto?
Grazie


Posted by Vikyg13 on 01-02-2006 23:37:

Premetto che io nn ho definito clone() come astratto in Istruzione, in modo da ridefinirlo solo nelle classi che rappresentano realmente delle istruzioni (nn so se sia giusto).
Seguendo quanto scritto nel link io ho messo nella classe Istruzione (public abstract class Istruzione implements Cloneable) :

public Object clone() {
try {
return super.clone();
}
catch (CloneNotSupportedException e) {
return null;
}
}

Per definire il metodo invece nelle singole Istruzioni ho messo ad es. in Dichiara:

public Object clone() {
....

Intervento del moderatore:
Codice Limato


In qsto caso però mi dà un errore nella riga in grassetto dicendo che clone è dichiarato protected nella classe Object. Qualcuno mi sa dire come mai e cosa dovrei fare??
Per il metodo clone() in Dichiara ho sempre fatto uso del link dove spiega come clonare un oggetto in maniera "approfondita".


Posted by ARIEL on 02-02-2006 09:02:

Il problema è che nel testo del progetto viene specificato che il metodo clone() in Istruzione deve essere astratto quindi penso che bisogna attenersi a quanto viene detto...


Posted by sandrino83 on 02-02-2006 10:04:

ariel ha ragione....è obbligatoriamente astratto.......qualcuno è riuscito a farlo funzicare????

__________________
we are just two lost souls swimming in a fish bowl year after year....running over the same old ground....what have we found.......


Posted by ARIEL on 02-02-2006 10:22:

Penso che vada dichiarato astratto e implementato in ogni classe anche se a me sembrano tutti uguali alla fine! Cmq usando il clone di Clonable funziona ma penso sia errato!


Posted by sbrandu on 02-02-2006 12:47:

Allora..
Io credo che il metodo clone sia obbligatoriamente da dichiarare astratto nella classe astratta Istruzione.
Io ho poi utilizzato il clone() di object nelle classi estese a Istruzione per copiare l'oggetto di classe.
Facendo così ogni volta che si richiama il metodo clone su una qualsiasi istanza della classe Istruzione verrà invocato il metodo clone() della corrispondente sottoclasse estesa.

public Object clone() {
Object obj = new Object();
...

Intervento del moderatore:
Codice Limato


Così tutto sembra funzionare.. ma sono sempre ben accette soluzioni alternative soprattutto se migliori della mia.


All times are GMT. The time now is 21:39.
Show all 23 posts from this thread on one page

Powered by: vBulletin Version 2.3.1
Copyright © Jelsoft Enterprises Limited 2000 - 2002.