[Java] Gepruts met classes

Pagina: 1
Acties:

  • SilentStorm
  • Registratie: November 2000
  • Laatst online: 18-03 14:45
Ik heb een programma met daarin verschillende classes. In de main maak ik dit object aan:

Databeest Data = new Databeest();

Vanuit de main vul ik vervolgens de datbase met gegevens uit bestanden die ik via een menu kan invullen. Nu wil ik via een andere class de gegevens weer uitlezen, maar heb daar een probleem mee: hij kan 'Data' niet vinden (neither class nor source found for...) - error 302.

[extra info]
--
Hoe zit het precies?
code:
1
2
3
4
5
public class base
{ public static void main(String args[])
  { Databeest Data = new Databeest();
[..]
}

Data wordt nu in hastable met betreffende naam gepompt. Ga uit van 'gegevens' in 'HTgegevens'.

[code]
class showComponist extends Frame implements ActionListener, FocusListener
{ [..]
public void getValues(String compkey)
{ Data Uitvoer;
Uitvoer = (gegevens)Data.HTgegevens.get(compkey);
[..]
}
[..]
}
[/extra info]

De compiler kan dus Data.HTgegevens niet vinden. Als ik ditzelfde probeer vanuit de main, kan ie m wel vinden. Wat doe ik fout? 'Databeest Data' public maken lukt me niet echt (foutmelding dat t niet kan). Als ik m niet in de main maar onder de class zet wil ie er zelfs vanuit de main niet meer mee werken..

Ik heb het idee dat het gewoon iets heel simpels is, maar ik kom er zo niet uit..

edit:
moet nu eerst werken, kan pas vanavond ergens weer reageren

Localhost is where the heart is


  • MisterData
  • Registratie: September 2001
  • Laatst online: 07-09 20:23
Je maakt het object Data vanuit je main methode en wilt hier ook bij kunnen vanuit een andere klasse :?

Kan dus niet, je zult een referentie van het object Data mee moeten geven aan de klasse die dat ding wil gebruiken. Maak Data anders gewoon static, dan kun je erbij vanuit alle klasses :)

  • roelio
  • Registratie: Februari 2001
  • Niet online

roelio

fruitig, en fris.

inderdaad kun je hier een ref meegeven maar als het om één databeest gaat is een static ook niet zo gek :)

AMD Phenom II X4 // 8 GB DDR2 // SAMSUNG 830 SSD // 840 EVO SSD // Daar is Sinterklaas alweer!!


  • SilentStorm
  • Registratie: November 2000
  • Laatst online: 18-03 14:45
Hm ok, static. Doen we dat. Maar nou ben ik toch wel errug benieuwd hoe ik dat zou kunnen doen als ik nou meerdere instanties van databeest wou maken (hier niet de bedoeling), voor de educationele redenen.

Referentie zeg je. Waar moet ik databeest dan declareren en hoe refereer ik ernaar? want op die manier ben ik eerst enige uren kwijtgeraakt en toen is het me niet gelukt om Jbuilder zover te krijgen dat ie weet wat ie er mee moet..

Localhost is where the heart is


  • MisterData
  • Registratie: September 2001
  • Laatst online: 07-09 20:23
Je moet dat Databeest object gewoon meegeven aan de constructor van die showComponent class.

Voorbeeld :
code:
1
2
3
4
public static void main(String[] args) {
  Databeest beessie = new Databeest();
  showComponist componist = new showComponist(beessie);
}

Eventueel maak je een methode in je showCOmponist klasse om het databeest in te stellen (setDatabeest(new Databeest()) of zoiets)

Heej dit is mijn 400e post *D

  • SilentStorm
  • Registratie: November 2000
  • Laatst online: 18-03 14:45
Als ik m static maak doet ie een beetje moeilijk met die hashtables. Dezen moeten dan namelijk ook static en dan wil ie niet zo best meer invoeren. Niet zo'n goed idee dus.. Ik ga het maar op de hierboven geschreven manier proberen.


[ edit: Meteen gelukt op andere manier.. probleem opgelost.
_ Danx voor alle moeite!
]

Localhost is where the heart is

Pagina: 1