.dsy:it. Pages (8): « 1 [2] 3 4 5 6 » ... Last »
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)
-- [HASHTABLE] Help (http://www.dsy.it/forum/showthread.php?threadid=23733)


Posted by sandrino83 on 26-01-2006 15:06:

certo

__________________
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 Joda on 26-01-2006 15:13:

Originally posted by sandrino83
certo


:pensa: potresti postare l'intero codice della classe ?

__________________
Homepage personale (English version)
c/o segreteria didattica via comelico


Posted by sandrino83 on 26-01-2006 15:38:

public abstract class Istruzione{

Hashtable<String,Integer> hashtable = new Hashtable<String,Integer>();

hashtable.put("three", 3);

public abstract void esegui();

...
}


Logicamente ho usato l metodo put in questa classe solo a livello di test, ma anche mettendolo nelle classi estese il risultato non cambia


Intervento del moderatore:
Post "ritoccato", codice eccessivo

__________________
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 Reaper on 26-01-2006 15:43:

.........mannaggia la p......a............... :)

cosa usi per stendere il testo del programma? jcreator anke tu? :)


Posted by sandrino83 on 26-01-2006 15:47:

si perchè?

__________________
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 Joda on 26-01-2006 16:36:

Originally posted by sandrino83
public abstract class Istruzione{

Hashtable<String,Integer> hashtable = new Hashtable<String,Integer>();

hashtable.put("three", 3);


....

}


Logicamente ho usato l metodo put in questa classe solo a livello di test, ma anche mettendolo nelle classi estese il risultato non cambia


Ho capito dove sbagli ...

Definizione di classe
Una classe può essere pubblica, privata, astratta e può estendere e/o implementare altre classi.

Ho visto che definisci una classe astratta, dunque...

Classi Astratte

le classi astratte si definiscono nel seguente modo :


public abstract NOMECLASSE {
dichiarare i metodi
}


Una classe astratta può contenere sia metodi astratti che statici.

metodi statici
I metodi statici sono quelli di cui viene definito il codice.

Esempio
code:
public void metodo() { codice metodo }


metodi astratti
I metodi astratti sono i metodi, la cui implementazione è lasciata allo sviluppatore, un pò come succede per le Interfacce.

Esempio di dichiarazione
code:
public void metodo() {} ;


Hashtable

la riga

code:
hashtable.put(chiave,valore);


la devi scrivere o nel metodo costruttore o in un metodo statico.

Metodo Costruttore

public class ClasseProva {
public ClasseProva() {
hashtable.put(chiave,valore);
}
}

Metodo statico
public class ClasseProva {
public ClasseProva() {
}

public void metodo_statico() {
hashtable.put(chiave,valore);
}
}

IDE Java

Di IDE Java ce ne sono differenti, comunque personalmente io consiglierei o netbeans oppure eclipse

__________________
Homepage personale (English version)
c/o segreteria didattica via comelico


Posted by sandrino83 on 26-01-2006 16:42:

grazie mille per i consigli....proverò......

__________________
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 zyx on 26-01-2006 18:38:

Io volevo chiedere una cosa. In istruzione dichiaro una Hashtable, che non costruisco, ma che non posso costruire neanche nelle varie classi estese, perchè ogni qualvolta costruisco una di queste classi mi si costruisce anche una nuova Hashtable. Invece il mio scopo è quello di costruire una Hashtable condivisa da tutte le classi. Come posso fare?


Posted by Joda on 26-01-2006 18:45:

Originally posted by zyx
Io volevo chiedere una cosa. In istruzione dichiaro una Hashtable, che non costruisco, ma che non posso costruire neanche nelle varie classi estese, perchè ogni qualvolta costruisco una di queste classi mi si costruisce anche una nuova Hashtable. Invece il mio scopo è quello di costruire una Hashtable condivisa da tutte le classi. Come posso fare?


scusa ma non ho capito potresti spiegare meglio ?

__________________
Homepage personale (English version)
c/o segreteria didattica via comelico


Posted by unid on 26-01-2006 19:01:

Sequenza

1- Secondo me la parte più difficile è l'implementazione della classe sequenza e del suo clone();
Una volta fatta quella si è a metà dell'opera....
Qualcuno l'ha già fatta??

2- Rispondo a qui sopra: Se dichiari l'hashtable nella classe astratta Istruzione e le altre classi le estendi da questa... anche le altre classi ereditano la stessa hashtable..

abstract class Istruzione implements Cloneable{

Hashtable<String,Integer> memoria = new Hashtable<String,Integer>();

public abstract void esegui() throws ExecutionException;

public abstract Object clone();

public abstract String toString();

}

poi dalle altre classi ci accedi tranquillamente così:

Integer temp = (Integer)memoria.get(variabile);
memoria.put(variabile, new Integer(valore));

a seconda di quello che devi fare...


Posted by zyx on 26-01-2006 19:26:

Si ma se faccio così come hai detto ora ogni volta che "programma.java" costruisce un istruzione(che può essere una qualsiasi di quelle da implementare) viene costruito anche un nuovo hashtable cosicchè io ho tanti Hashtable quante sono le "istruzioni" costruite. Invece bisogna avere un solo Hashtable che venga condiviso da tutte le "istruzioni"


Posted by zyx on 26-01-2006 19:29:

Quello che voglio cercare di capire io è: come creare un solo "Hashtable<String,Integer> memoria" dove però tutte le istruzioni possono scriverci e leggerci


Posted by zyx on 26-01-2006 19:34:

Per quanto riguarda la classe Sequenza io ho dichiarato un oggetto array. Ad esempio Array array. poi nel costruttore ho fatto elenco=e e poi un int arrayLength=array.length(elenco) così so quanti elementi ci sono nell'array.Poi nel metodo esegui ho fatto un for da 0 a arrayLength, e nel corpo del for ho fatto elenco[i].esegui. Credo e spero sia giusto.


Posted by unid on 26-01-2006 20:26:

Non crea altre hashtable, usa sempre la stessa... importante è che le sottoclassi estendano tutte Istruzione.

Il metodo clone non l'hai implementato??


Posted by Joda on 26-01-2006 20:26:

per quanto riguarda l'hashtable, potresti creare una classe che la istanzi (una volta sola), poi passi l'oggetto alle successive classi che vengono create.

__________________
Homepage personale (English version)
c/o segreteria didattica via comelico


All times are GMT. The time now is 11:19. Pages (8): « 1 [2] 3 4 5 6 » ... Last »
Show all 118 posts from this thread on one page

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