array van Objects

  • Onderwerp starter Onderwerp starter Aupt
  • Startdatum Startdatum
Status
Niet open voor verdere reacties.

Aupt

Nieuwe gebruiker
Lid geworden
25 sep 2008
Berichten
4
Hallo
ik probeer een array van objects te maken. Maar ik krijg het niet voor elkaar.
(Onderstaande code is even gemaakt om het probleem te demonstreren)

public class cd{
class cdtje{
String titel;
String artiest;

}
public static void main(String[] args){
cdtje[] cdnr=new cdtje[50];
cdnr[0]=new cdtje(); //hier krijg ik een foutmelding
cdnr[1]=new cdtje();
cdnr[0].titel="hallo";
cdnr[0].artiest="jantje";
cdnr[1].titel="sdfsdhqh";
cdnr[1].artiest="pietje";
}
}

Wat is hier mis mee?????
 
je hebt geen constructor gemaakt in de class.
Code:
public cdtje(){
}

Wat voor foutmelding geeft hij verder?
 
ok bedankt.
alleen bij een object zonder array hoeft dat toch ook niet perse public?

de foutmeldingen krijg ik bij deze regels:

cdnr[0]= new cdtje();
cdnr[1]= new cdtje();

Multiple markers at this line
- No enclosing instance of type cd is accessible. Must qualify the
allocation with an enclosing instance of type cd (e.g. x.new A() where x is an
instance of cd).
- Syntax error on token(s), misplaced construct(s)
- Syntax error on token ";", ( expected
 
Laatst bewerkt:
De reden van deze fout is vrij ingewikkeld. Maar dit zijn je twee belangrijkste stukken uit je code:

public class cd{
class cdtje{

en

public static void main(String[] args)

Klasse cdtje is een inner klasse van cd. Deze klasse bestaat alleen als er een object CD bestaat. Maar dit geeft problemen met static uit de main. Want omdat deze functie static is mag je niet gebruik maken het object CD (en dus ook niet cdtje). Static functies mogelijk alleen maar static variabelen gebruiken.

De eevoudigste oplossing is om je class cdtje ook static te maken. Dan wordt deze onafhankelijk van klasse cd.
Maar de beste oplossing is om in je main functie in aparte klasse te zetten. De main functie maakt dan een object CD en de code die nu in main staat moet je verhuizen naar de constructor van CD.
 
ok ik heb het voor elkaar. ik heb nu de main in een aparte class gezet.
Bedankt!
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan