MikkelRev Skrevet 16. november 2010 Del Skrevet 16. november 2010 (endret) Jeg har denne koden, litt forkortet: class Oppg { public static void main(String[]args) { ArrayList<Hare> harelist=new ArrayList<Hare>(); //Scanner-meny her med switch. //valg 1: harelist.add(new Hare()); } } class Dyr { ... } class Hare extends Dyr { Hare() { System.out.println("Antall harer: " + harelist.size()); } } Jeg ønsker å skrive ut hvor mange harer som har blitt opprettet fra Hare-klassen. Det gjør jeg med harelist.size(), men den cannot find symbol harelist. Hvordan bør jeg gjøre dette? Endret 16. november 2010 av MikkelRev Lenke til kommentar
Topguy Skrevet 16. november 2010 Del Skrevet 16. november 2010 Klassen Hare kjenner jo ikke til "harelist" og kan ikke bruke den. "harelist" er bare en lokal variabel i en metode i en helt annen klasse (Oppg). Lenke til kommentar
MikkelRev Skrevet 16. november 2010 Forfatter Del Skrevet 16. november 2010 Å sette public foran harelist-deklarasjonen var ikke noen løsning. Jeg prøvde med en get-funksjon i class Oppg, men fikk ikke det heller til. Lenke til kommentar
Topguy Skrevet 16. november 2010 Del Skrevet 16. november 2010 Nå er ikke jeg noen Java expert men i C++ ville jeg lagd en "static int harecounter" i Hare klassen som ble telt opp i Hare() og ned i ~Hare() (dvs. decontructoren). Den burde da telle instanser av Hare klassen på et vis og du kan printe ut verdien i constructoren til Hare hvis du har lyst. Sånn jeg tenker meg oppgaven (som du ikke har beskrevet) så er det ulogisk at "Hare" skal kjenne til noe som ligger i "Oppg". Det er mer logisk at du lager metoden Hare::getTotalHares() som returnerer anntallet harer og som du kaller i main() og printer ut resultatet av der. 1 Lenke til kommentar
MikkelRev Skrevet 16. november 2010 Forfatter Del Skrevet 16. november 2010 (endret) Takk, en static variabel funket det! Hvordan kan jeg oppdatere en membervariabel til en spesifikk hare i arraylisten harelist basert på en annen membervariabel som er kjent? Kanskje jeg forklarer dårlig/tenker feil, men ser for meg at hadde dette vært database, ville jeg skrevet UPDATE hare SET dato='2010-11-16' WHERE ID='H1'; ID og verdien er altså en kjent membervariabel til hareklassen. Har prøvd å snuse på harelist.indexOf(), men ble ikke helt klok på den. Edit: tror jeg fant det ut, looper gjennom og ser etter verdien for hver runde med en if(). Endret 16. november 2010 av MikkelRev Lenke til kommentar
quantum Skrevet 16. november 2010 Del Skrevet 16. november 2010 Du kan lagre harene dine i en Map, f.eks. en HashMap, da kan du slå rett opp på riktig hare uten å måtte loope deg fram. Det opprinnelige problemet kunne du løst ved å sende inn hareliste i constructoren til Hare-klassen: i main-metoden harelist.add(new Hare(harelist)); og i Hare public Hare(List<Hare> harelist) { super(); System.out.println(harelist.size()); } Lenke til kommentar
MikkelRev Skrevet 16. november 2010 Forfatter Del Skrevet 16. november 2010 Problemet med å loope gjennom arraylisten er at jeg må loope gjennom både harelisten og gaupelisten (begge er subclasses av abstract class Dyr) for å søke etter angitt ID. Hvordan jeg looper gjennom begge to uten å få masse redundant er det jeg jobber med nå. Men kan HashMap løse det problemet også? Skal jeg bruke det istedetfor arraylist eller i tillegg? Vil helst ikke gjøre det altfor komplisert, så jeg ikke mister helt oversikt. Lenke til kommentar
x871kx6167ss7 Skrevet 17. november 2010 Del Skrevet 17. november 2010 På et litt annet «nivå», så lurer jeg på hvorfor harer skal vite hvor mange andre harer som finnes? Jeg vet ikke hvor mange mennesker det finnes. Lenke til kommentar
quantum Skrevet 17. november 2010 Del Skrevet 17. november 2010 (endret) På et litt annet «nivå», så lurer jeg på hvorfor harer skal vite hvor mange andre harer som finnes? Jeg vet ikke hvor mange mennesker det finnes. kanskje fordi de ikke er så monogame for oss? edit: og det bør du jo strengt tatt ha en viss peiling på? 6,5 milliarder and counting ... lærer man ikke sånt på skolen i dag? Endret 18. november 2010 av quantum Lenke til kommentar
quantum Skrevet 17. november 2010 Del Skrevet 17. november 2010 Problemet med å loope gjennom arraylisten er at jeg må loope gjennom både harelisten og gaupelisten (begge er subclasses av abstract class Dyr) for å søke etter angitt ID. Hvordan jeg looper gjennom begge to uten å få masse redundant er det jeg jobber med nå. Men kan HashMap løse det problemet også? Skal jeg bruke det istedetfor arraylist eller i tillegg? Vil helst ikke gjøre det altfor komplisert, så jeg ikke mister helt oversikt. Skulle ikke være vanskelig å unngå redundant kode, skriv loop-kode som hanskes med List<Dyr>. HashMap blir mindre komplisert, du får lese dokumentasjonen, eller google litt. Hovedpointet er at du kan gjøre Hare myHare = hareMap.get(id); RTFM, det fins andre praktiske ting som Queue og Set også. Lenke til kommentar
MikkelRev Skrevet 17. november 2010 Forfatter Del Skrevet 17. november 2010 Takker. "RTFM" er mantraet og svaret på alt! Hele forumet burde egentlig bare vært en link til www.google.com Lenke til kommentar
quantum Skrevet 18. november 2010 Del Skrevet 18. november 2010 Takker. "RTFM" er mantraet og svaret på alt! Hele forumet burde egentlig bare vært en link til www.google.com Denne dokumentasjonen er jo ekstremt tilgjengelig, bare å trykke tab i det ide'et man benytter, og vips er både javadoc og fingerprint oppe på skjermen, totalt meningsløst å lime inn slikt her, forumet er f.eks. glimrende til å løse problemene man evt. måtte ha etter å ha lest docs. Husk at ikke bare er alle de spørsmålene du kan klare å komme opp med allerede besvart tidligere - og dermed umiddelbart tilgjengelig via google - men de er sannsynligvis også besvart mye bedre og grundigere enn det vi klarer her (vi trenger ikke være beskjedne, men verdens beste javaforum er vi nok ikke ... Lenke til kommentar
MikkelRev Skrevet 4. desember 2010 Forfatter Del Skrevet 4. desember 2010 Nytt spørsmål, gidder ikke lage ny tråd for hver minste ting, så tar det likegodt her. Hvordan looper jeg gjennom en arraylist av objekter? Har googlet, og kun funnet hvordan du looper gjennom arraylist of Strings eller Integers. Si jeg har ArrayList av products. Hvordan looper jeg gjennom hvert produkt og printer prisen? Har prøvd noe sånt, er jeg helt bak mål? ArrayList<Product> productlist=new ArrayList<Product>(); ... Product product; for(product : ProductList) {System.out.println("Price: " + product.getPrice() ); } Lenke til kommentar
blarsen Skrevet 5. desember 2010 Del Skrevet 5. desember 2010 Har prøvd noe sånt, er jeg helt bak mål? ArrayList<Product> productlist=new ArrayList<Product>(); ... Product product; for(product : ProductList) {System.out.println("Price: " + product.getPrice() ); } Du er nær. Prøv ArrayList<Product> productlist=new ArrayList<Product>(); ... for(Product product : productlist) { System.out.println("Price: " + product.getPrice() ); } 1 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å