Stian_ Skrevet 21. oktober 2004 Del Skrevet 21. oktober 2004 Har et lite problem med min obligatoriske oppgave på kurset INF1000. Feilmeldingen er: Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 65 at HybelHus.<init>(Oblig3.java:42) at Oblig3.main(Oblig3.java:353) feilen kan komme fra: class HybelHus { Hybel[][] hyblene = new Hybel[4][8]; HybelHus(String filnavn) { //Hybel[][] hyblene = new Hybel[4][8]; for (int a=0;a<4;a++) { for (int b=0;b<8;b++) { char b2 = (char) (a + 'A'); hyblene[a][b2] = new Hybel(a,b2); } //end for b } //end for a class HybelHus { Hybel[][] hyblene = new Hybel[4][8]; HybelHus(String filnavn) { for (int a=0;a<4;a++) { for (int b=0;b<8;b++) { char b2 = (char) (a + 'A'); hyblene[a][b2] = new Hybel(a,b2); } //end for b } //end for a (...) eller class Oblig3: class Oblig3 { public static void main(String [] args) { HybelHus h = new HybelHus("HaiHus.data"); h.meny(); } //end main } //end Oblig3 kan legge ut java-filen, men frister meg lite. er det nødvendig, så si ifra. Lenke til kommentar
gnab Skrevet 21. oktober 2004 Del Skrevet 21. oktober 2004 char b2 = (char) (a + 'A'); hyblene[a][b2] = new Hybel(a,b2); Hva er hensikten med b2? Hvilke parametere har konstruktøren til Hybel? Lenke til kommentar
Stian_ Skrevet 21. oktober 2004 Forfatter Del Skrevet 21. oktober 2004 b2 er bare en omforming fra char til int. de to classene som kan være nyttig: class Student { int elektrisitet; int saldo; String navn; Student(String navn, int saldo) { this.navn = navn; this.saldo = saldo; } //end Student konstrukt�r } //end class Student class Hybel { Student leietager; int gang; char bokstav; Hybel(int gang, char bokstav) { this.gang = gang; this.bokstav = bokstav; } //end Hybel konstrukt�r } //end class Hybel Lenke til kommentar
gnab Skrevet 21. oktober 2004 Del Skrevet 21. oktober 2004 Prøv slik da: char b2 = (char) (a + 'A'); hyblene[a][b] = new Hybel(a,b2); b2 kan ikke brukes om indeks i listen.. Lenke til kommentar
Stian_ Skrevet 21. oktober 2004 Forfatter Del Skrevet 21. oktober 2004 retta litt på koden, skjønte hva du mente med b2. men hva er feilen her da? forandra: for (int a=0;a<4;a++) { for (int b=0;b<8;b++) { hyblene[a][b] = new Hybel(); } //end for b } //end for a feilmelding /uio/platon/mn-l12/stianvi/inf1000/oblig3/newObl/Oblig3.java:41: Hybel(int,char) in Hybel cannot be applied to () hyblene[a][b] = new Hybel(); ^ 1 error Lenke til kommentar
gnab Skrevet 21. oktober 2004 Del Skrevet 21. oktober 2004 (endret) Du endra litt for mye tror jeg.. for (int a=0;a<4;a++) { for (int b=0;b<8;b++) { char b2 = (char) (a + 'A'); hyblene[a][b] = new Hybel(a,b2); } //end for b } //end for a Endret 21. oktober 2004 av gnab Lenke til kommentar
Stian_ Skrevet 22. oktober 2004 Forfatter Del Skrevet 22. oktober 2004 hmm, kanskje - men den for-løkken hadde noen feil. Får se på det i morra, nå legger jeg meg. takker for hjelpen. Lenke til kommentar
buskmann Skrevet 22. oktober 2004 Del Skrevet 22. oktober 2004 Dette er ikke noe pekerproblem (i ett ord). Ganske enkelt fordi pekere er noe man har i C/C++ og ikke i Java. Lenke til kommentar
Brandvold Skrevet 22. oktober 2004 Del Skrevet 22. oktober 2004 (endret) Oblig er morro:) Endret 22. oktober 2004 av Brandvold Lenke til kommentar
Nudo Skrevet 22. oktober 2004 Del Skrevet 22. oktober 2004 (endret) Legg ut fila, så kan jeg prøve å kjøre det her og se om jeg får noe ut av det. Er uansett litt nysgjerrig på hvordan oppgavene deres ser ut, og hvordan dere legger det fram:) Endret 22. oktober 2004 av Nudo Lenke til kommentar
adyton Skrevet 22. oktober 2004 Del Skrevet 22. oktober 2004 Dette er ikke noe pekerproblem (i ett ord). Ganske enkelt fordi pekere er noe man har i C/C++ og ikke i Java. På UiO inf1000 har vi pekere i java.. Lenke til kommentar
Brandvold Skrevet 22. oktober 2004 Del Skrevet 22. oktober 2004 (endret) Så vidt jeg skjønner så betyr feilmeldinga at det ikke er nok plass i arrayen, og i dette tilfellet er det fordi du søker igjennom en rad og en kolonne for mye i for-løkka di. for (int a=0;a<4;a++) { for (int b=0;b<8;b++) { [CODE] Arrayindex starter på 0, og når du har 4*8 array så må du søke igjennom med 3 og 7. for (int a=0;a<3;a++) { for (int b=0;b<7;b++) { Så skal det nok fungere:) Endret 22. oktober 2004 av Brandvold Lenke til kommentar
gnab Skrevet 22. oktober 2004 Del Skrevet 22. oktober 2004 (endret) Grunnen til at han fikk feilmeldinga var at han prøvde å skrive til et element b2 som ikke eksisterer i listen.. For-løkken fungerer helt fint.. for (int a=0;a<3;a++) { for (int b=0;b<7;b++) { ... } } Disse to for-løkkene vil går fra henholdsvis 0-2 og 0-6.. a++ og b++ blir kjørt etter hver løkke, ikke før.. Endret 22. oktober 2004 av gnab Lenke til kommentar
obotron Skrevet 22. oktober 2004 Del Skrevet 22. oktober 2004 Dette er ikke noe pekerproblem (i ett ord). Ganske enkelt fordi pekere er noe man har i C/C++ og ikke i Java. På UiO inf1000 har vi pekere i java.. Pekere i C/C++ er noe helt annet enn hva enn hva "pekere" i java er... Dette kommer du til å finne ut i seinere kurs! Lenke til kommentar
lodott Skrevet 22. oktober 2004 Del Skrevet 22. oktober 2004 Er char et tall i java som i c(++) ? Hvis jeg husker rett så er det ikke det.. Lenke til kommentar
smetho Skrevet 22. oktober 2004 Del Skrevet 22. oktober 2004 char er en bokstav i Java...(kan jo vel bestå av tall også da, men det er ikke egentlig et tall ) Lenke til kommentar
lodott Skrevet 22. oktober 2004 Del Skrevet 22. oktober 2004 char er en bokstav i Java...(kan jo vel bestå av tall også da, men det er ikke egentlig et tall ) Ja..så da vil jo "hyblene[a][b2]" bli galt når "b2" er en char. Lenke til kommentar
buskmann Skrevet 22. oktober 2004 Del Skrevet 22. oktober 2004 Er char et tall i java som i c(++) ?Hvis jeg husker rett så er det ikke det.. Stemmer. Å caste mellom int og char funker fint i C, går på trynet i Java. Lenke til kommentar
Stian_ Skrevet 22. oktober 2004 Forfatter Del Skrevet 22. oktober 2004 Har fiksa det for lengst, men takker for hjelpen. er snart ferdig nå. må bare skrive til fil og lage en øko rapport. lyst til å se hvordan oblig'n ser ut? vel, her er oppg.: http://www.ifi.uio.no/~inf1000/obliger/oblig3.pdf Lenke til kommentar
Nudo Skrevet 22. oktober 2004 Del Skrevet 22. oktober 2004 Løsningsforslag til den? Eller har ikke leveringsfristen gått enda? Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå