|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Senior Member
Iscritto dal: Aug 2005
Messaggi: 439
|
[java] aiuto per definire una classe per dei menù
Ciao Raga
dovrei definire una classe menù principale e due sottomenù A e B A seconda del valore passato alla funzione showmenu(int) deve partire una delle due sottoclassi. Faccio un esempio se showmenu(1) deve partire la sottoclasse A mentre se showmenu(2) deve partire la sottoclasse B.Spero di essere stato chiaro. questa è una bozza come posso fare? grazie per l'aiuto
__________________
my pc :core duo2 e8500 ,asus rampage formula,corsair dominator 4giga, sapphire ati4870 512mb monitor samsung 22" t220hd vista 32bit Nel corso della vita, non ci sarà certo penuria di gente che ti dice come vivere, avranno tutte le risposte, cosa dovresti fare, cosa non dovresti fare. Non ci discutere mai, tu di' sempre: «Ah sì? è un'idea davvero brillante» e poi fai come ti pare.(Woody Allen) |
|
|
|
|
|
#3 |
|
Senior Member
Iscritto dal: Aug 2005
Messaggi: 439
|
scusa ma non consoco le due frecce tratteggiate
indicano un passaggio di valori? tu hai fatto a di tipo A e b di tipo B ma showmenù è di tipo intero lo sostituisco con char? grazie per la risposta
__________________
my pc :core duo2 e8500 ,asus rampage formula,corsair dominator 4giga, sapphire ati4870 512mb monitor samsung 22" t220hd vista 32bit Nel corso della vita, non ci sarà certo penuria di gente che ti dice come vivere, avranno tutte le risposte, cosa dovresti fare, cosa non dovresti fare. Non ci discutere mai, tu di' sempre: «Ah sì? è un'idea davvero brillante» e poi fai come ti pare.(Woody Allen) |
|
|
|
|
|
#4 |
|
Senior Member
Iscritto dal: Nov 2004
Città: Tra Verona e Mantova
Messaggi: 4553
|
La freccia tratteggiata indica una dipendenza.
Sarebbe una cosa tipo: Codice:
public class MenuPrincipale {
private A a = new A();
private B b = new B();
public void showMenu(int value) {
if(value == 0) {
a.showMenu(value);
} else if(value == 1) {
b.showMenu(value);
}
}
}
public class A extends MenuPrincipale {
public void showMenu(int value) {
fai qualcosa...
}
}
public class B extends MenuPrincipale {
public void showMenu(int value) {
fai qualcos'altro...
}
}
Essendo A e B stati di MenuPrincipale il fatto che la loro definizione dipenda da MenuPrincipale (dipendenza che instauri tramite le relazione gerarchica) è una ripetizione non necessaria. Sarebbe uguale dire: Codice:
public class MenuPrincipale {
private A a = new A();
private B b = new B();
public void showMenu(int value) {
if(value == 0) {
a.showMenu();
} else if(value == 1) {
b.showMenu();
}
}
}
public class A {
public void showMenu() {...}
}
public class B {
public void showMenu() {...}
}
Codice:
public class MenuPrincipale {
public void showMenu(int value) {
if(value == 0) {
showMenu000();
} else if(value == 1) {
showMenu001();
}
}
public void showMenu000() {...}
public void showMenu001() {...}
}
Essendo tuttavia la relazione di dipendenza di definizione transitiva (se una definizione A dipende da B e B dipende da C allora A dipende da C) eviterei di rendere A e B dipendenti da MenuPrincipale a meno che nel tuo sistema non risulti che anche MenuPrincipale debba essere uno stato e non un oggetto. Questo giusto per confonderti un attimo le idee
__________________
Uilliam Scecspir ti fa un baffo? Gioffri Cioser era uno straccione? E allora blogga anche tu, in inglese come me! |
|
|
|
|
|
#5 |
|
Senior Member
Iscritto dal: Aug 2005
Messaggi: 439
|
grazie per avermi confuso le idee ulteriormente
io dovrei far solo il diagramma uml almeno per ora il codice dopo quindi la situazione è un po più facile anche se le dipendenze non le ho mai usate
__________________
my pc :core duo2 e8500 ,asus rampage formula,corsair dominator 4giga, sapphire ati4870 512mb monitor samsung 22" t220hd vista 32bit Nel corso della vita, non ci sarà certo penuria di gente che ti dice come vivere, avranno tutte le risposte, cosa dovresti fare, cosa non dovresti fare. Non ci discutere mai, tu di' sempre: «Ah sì? è un'idea davvero brillante» e poi fai come ti pare.(Woody Allen) |
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 23:28.





















