[Java] Dynamische Variabelen

Pagina: 1
Acties:

Acties:
  • 0 Henk 'm!

  • keejoz
  • Registratie: November 2008
  • Laatst online: 28-08 15:53
Hallo,

ik ben bezig met een taak voor school en daar moet ik 4 klasses aanmaken in een 5de klasse.
Daarna moet ik uit die 4 klasses een paar methodes oproepen. Dit gebeurt via een getter die een "nummer" mee krijgt enzo uit 1 van de 4 klassen de methode oproept.

is het mogelijk om variabelen "samen" te stellen? zoals bijv.:

klassen:
klas1
klas2
klas3
klas4

dat ik dan klas + nummer (dat ik meegaf met mijn getter) samenstel tot klas1 bv?

ik ehb al zitten zoeken maar vond alleen dingen die mij aanraden om "maps" of arrays te gebruiken maar die mag/kan ik nog niet gebruiken in wat ik nu doe.

Acties:
  • 0 Henk 'm!

Verwijderd

Je kan die instances in een array gooien en ze dan benaderen?

Acties:
  • 0 Henk 'm!

  • keejoz
  • Registratie: November 2008
  • Laatst online: 28-08 15:53
Verwijderd schreef op zaterdag 15 november 2008 @ 15:01:
Je kan die instances in een array gooien en ze dan benaderen?
keejoz schreef op zaterdag 15 november 2008 @ 14:46:
ik ehb al zitten zoeken maar vond alleen dingen die mij aanraden om "maps" of arrays te gebruiken maar die mag/kan ik nog niet gebruiken in wat ik nu doe.
:z

Acties:
  • 0 Henk 'm!

  • Razr
  • Registratie: September 2005
  • Niet online
Even kijken of ik je begrijp:

Je hebt een klasse (de vijfde dan) met daarin instanties van andere klassen? Als je vervolgens een instantie maakt van klasse 5, kun je toch daarvan de public velden aanroepen en vervolgens de methode welke je wilt hebben?

Voorbeeld:
Java:
1
2
3
4
class Vijf {
    public Klasse1 abc = new Klasse1();
    // andere code
}


Dan kun je toch later iets doen als
Java:
1
2
Vijf test = new Vijf();
test.abc.get(1);


Ik weet niet of het goed uitleg, maar vind ik je op niet heel erg duidelijk :?

Acties:
  • 0 Henk 'm!

  • keejoz
  • Registratie: November 2008
  • Laatst online: 28-08 15:53
Razr schreef op zaterdag 15 november 2008 @ 15:13:
Even kijken of ik je begrijp:

Je hebt een klasse (de vijfde dan) met daarin instanties van andere klassen? Als je vervolgens een instantie maakt van klasse 5, kun je toch daarvan de public velden aanroepen en vervolgens de methode welke je wilt hebben?

Voorbeeld:
Java:
1
2
3
4
class Vijf {
    public Klasse1 abc = new Klasse1();
    // andere code
}


Dan kun je toch later iets doen als
Java:
1
2
Vijf test = new Vijf();
test.abc.get(1);


Ik weet niet of het goed uitleg, maar vind ik je op niet heel erg duidelijk :?
ik wil eigenlijk gewoon mijn "klasse" kunnen samenstellen.

bv mijn 4 klassen heten respectievelijk
programmeur1
programmeur2
programmeur3
programmeur4

en dan, geef ik een nummer mee met mijn methode om de "klasse te kiezen"
bv nummer 3

dan heb ik mijn nummer = 3 en die wil ik dan samenstellen tot programmeur + nummer (programmeur3) anders moet ik nu een hele waslijst aan if (nummer = 3) then x = programmeur3 schrijven terwjil ik dan gewoon kan checken of het een nummer tussen 0 en 5 is en die dan samenplakken

Sorry voor mijn gebrekkige uitleg

Acties:
  • 0 Henk 'm!

  • Wmm
  • Registratie: Maart 2002
  • Laatst online: 26-09 13:27

Wmm

Tsja, daar heb je arrays voor en dat is ook gewoon wat jij hier moet gebruiken. Wat jij wilt met aan elkaar plakken kan niet voor zover ik weet. Als het al zou kunnen zou dat een lelijke oplossing zijn aangezien arrays hier speciaal voor zijn.

Dat je ze nog niet mag / kan gebruiken lijkt me een beetje vreemd als je zo'n opdracht moet doen. Lijkt me dan juist een uitstekende opdracht om met arrays te leren werken.

[ Voor 26% gewijzigd door Wmm op 15-11-2008 15:45 ]


Acties:
  • 0 Henk 'm!

  • Gerco
  • Registratie: Mei 2000
  • Laatst online: 03:04

Gerco

Professional Newbie

Als ik het goed begrijp wil je dynamisch de naam van een class of variabele (welke is me nog niet helemaal duidelijk) samenstellen en daar dan een methode op aanroepen. Dat kan met behulp van reflection, maar dat lijkt me absoluut niet de bedoeling als je nog niet eens arrays mag gebruiken.

Het lijkt erop dat de opdracht bedoeld is om statements als switch of if te leren begrijpen en ik raad je dan ook aan om die te gebruiken in plaats van geavanceerde onderwerpen als dynamische class of variabele namen.

- "Als ik zou willen dat je het begreep, legde ik het wel beter uit!" | All number systems are base 10!


Acties:
  • 0 Henk 'm!

  • keejoz
  • Registratie: November 2008
  • Laatst online: 28-08 15:53
Gerco schreef op zaterdag 15 november 2008 @ 15:46:
Als ik het goed begrijp wil je dynamisch de naam van een class of variabele (welke is me nog niet helemaal duidelijk) samenstellen en daar dan een methode op aanroepen. Dat kan met behulp van reflection, maar dat lijkt me absoluut niet de bedoeling als je nog niet eens arrays mag gebruiken.

Het lijkt erop dat de opdracht bedoeld is om statements als switch of if te leren begrijpen en ik raad je dan ook aan om die te gebruiken in plaats van geavanceerde onderwerpen als dynamische class of variabele namen.
Nja, ik had liever zo gedaan maar een switch zal ook wel werken I guess ;) effe syntax opzoeken dan =)

Ik wou trouwens de naam van een class samenstellen ;)

Thx people

Acties:
  • 0 Henk 'm!

Verwijderd

keejoz schreef op zaterdag 15 november 2008 @ 14:46:
ik ehb al zitten zoeken maar vond alleen dingen die mij aanraden om "maps" of arrays te gebruiken maar die mag/kan ik nog niet gebruiken in wat ik nu doe.
Ik snap je frustratie mbt dit punt wel, toen wij voor het eerst C# kregen (HBO Informatica) moesten we iets doen met datum's (gebruiker vult getallen in voor dag, maand en jaar)...dus ik netjes een DateTime object aanmaken en de oprdracht daarmee afronden.

Bij het laten controleren kreeg ik als commentaar dat het opnieuw moest, maar nu met if/else statements...soms snappen de docenten niet dat je al een stapje verder bent.

Dus mijn tip: maak wat in jou ogen de beste oplossing is, en laat ook nog even snel zien dat je if/else en switch constructies ook snapt ;).

Acties:
  • 0 Henk 'm!

  • voodooless
  • Registratie: Januari 2002
  • Nu online

voodooless

Sound is no voodoo!

Misschien zoiets:

Java:
1
2
3
4
5
6
7
8
public Object getObjectByNumber(int nr){
   try{
      return Class.forName("programmeur"+nr).newInstance();
   } catch (Exception e){
      // doe iets met fout..
      return null;
   }
}


Maar als je heen array's of maps mag gebruiken zal het zo ook wel niet mogen?

Do diamonds shine on the dark side of the moon :?


Acties:
  • 0 Henk 'm!

  • flowerp
  • Registratie: September 2003
  • Laatst online: 11-09 18:20
Verwijderd schreef op zaterdag 15 november 2008 @ 16:43:
[...]
Bij het laten controleren kreeg ik als commentaar dat het opnieuw moest, maar nu met if/else statements...soms snappen de docenten niet dat je al een stapje verder bent.
Soms snappen de studenten niet dat je eerst de basis eens zelf gedaan moet hebben, zodat je later beter begrijpt wat de high-level dingen die je gebruikt nu precies doen.

Daarom maak je tijdens een opleiding ook dingen van een linked-list en map tot aan je eigen compiler. Dat heeft niets te maken met docenten die niet zouden snappen dat iemand al verder is, maar alles met leren hoe dingen intern werken.

It's shocking to find how many people do not believe they can learn, and how many more believe learning to be difficult.


Acties:
  • 0 Henk 'm!

Verwijderd

flowerp schreef op zaterdag 15 november 2008 @ 21:07:
[...]


Soms snappen de studenten niet dat je eerst de basis eens zelf gedaan moet hebben, zodat je later beter begrijpt wat de high-level dingen die je gebruikt nu precies doen.
...er is een verschil tussen datgene wat jij noemt en het soort les dat je krijgt tijdens de "eerste programmeerles" op school :).
Pagina: 1