Frankh0104 Skrevet 2. september 2008 Del Skrevet 2. september 2008 public class Billett { private String navn; private int fødselsår; public Billett () //konstrukstør uten parameter { navn = "ukjent"; //tilordner en verdi til variabelen } public String hentNavn () { return navn; } // endrer innholdet i navn, mutator public void settNavn(String nyttNavn) { navn = nyttNavn; } public Billett(String nyttnavn, int fødeselsår) { navn = nyttnavn; this.fødselsår = fødselsår; } public int hentAlder (int detteÅr) { int alder; alder = detteÅr-fødselsår; return alder; } public String finnAldersgruppe () { String gruppe; if(hentAlder > 67) { gruppe = "honnør"; } if((hentAlder > 16) && (hentalder < 67)) { gruppe = "voksen"; } if (hentAlder < 16) { Gruppe = "barn"; } return gruppe; } } Når jeg compiler så får jeg: cannot find symbol - variable hentAlder Noen som ser hva som er galt? Er klar over at det kan være noe med lokale variabler, men vet ikke hvordan jeg skal skrive det.. Lenke til kommentar
___ Skrevet 2. september 2008 Del Skrevet 2. september 2008 Kode som ikke er indentert er vanskelig å lese. Det er fullt mulig å poste indentert kode. Ellers burde du finlese koden din, så finner du sikkert feilen. Tips: CASE Werner Lenke til kommentar
Frankh0104 Skrevet 2. september 2008 Forfatter Del Skrevet 2. september 2008 public class Person { // instance variables - replace the example below with your own private String navn; private int fødselsår; private int alder; private int pris; public Person(String navn, int fødselsår) { int detteår = 2008; this.navn = navn; // kopierer fra argument til objektets variabler this.fødselsår = fødselsår; alder = detteår - fødselsår; // eksempel på beregning: beregner alder } public void settNavn(String nyttNavn) { // void betyr at denne metoden har 'tom' retur navn = nyttNavn; // kopierer fra argument til objektets variable } public String hentNavn(String nyttNavn) { // returnerer innholdet i variabelen navn return navn; } public String hentAldersgruppe() { // finner aldersgruppe ut fra alder String gruppe; if (alder >= 67) { gruppe = "honnør"; } else if (alder >= 16) { gruppe = "voksen"; } else { gruppe = "barn"; } return gruppe; } Nå fungerer denne. Neste steg er å legge inn en pris på hver gruppe, som feks 100kr på voksen og 50kr på barn og honnør.. Har prøvd noen forskjellige måter men får det ikke helt til.. Så om noen har noen forslag hadde det vært fint.. Lenke til kommentar
___ Skrevet 2. september 2008 Del Skrevet 2. september 2008 Vi vil gjerne se hvordan du har prøvd... Werner Lenke til kommentar
Frankh0104 Skrevet 2. september 2008 Forfatter Del Skrevet 2. september 2008 public class Billettautomat { // instance variables - replace the example below with your own private String navn; private int fødselsår; private int alder; private int pris; public Billettautomat(String navn, int fødselsår) { int detteår = 2008; this.navn = navn; // kopierer fra argument til objektets variabler this.fødselsår = fødselsår; alder = detteår - fødselsår; // eksempel på beregning: beregner alder } public void settNavn(String nyttNavn) { // void betyr at denne metoden har 'tom' retur navn = nyttNavn; // kopierer fra argument til objektets variable } public String hentNavn(String nyttNavn) { // returnerer innholdet i variabelen navn return navn; } public String hentPris(String nyPris) { return pris; } public String hentAldersgruppe() { // finner aldersgruppe ut fra alder String gruppe; if (alder >= 67) { gruppe = "honnør"; } else if (alder >= 16) { gruppe = "voksen"; } else { gruppe = "barn"; } return gruppe; } public int hentPris() { String pris; if(gruppe = voksen) { pris = 200; } return pris; } public void skrivUtData() { System.out.println("Utskrift av objektets data:\n\n" + "Navn: " + navn + "\n" + "Fødselsår: " + fødselsår + "\n" + "Alder: " + alder + "\n" + "Aldersgruppe: " + hentAldersgruppe()); Prøvde noe slik som dette.. Men siden jeg bare har hatt java i et par uker så er det mye prøving og feiling så vet jeg ikke helt hva jeg skal gjøre nå.. Lærte det med return og if else i dag, så har ikke forstått det helt ennå tror jeg.. Lenke til kommentar
Frankh0104 Skrevet 2. september 2008 Forfatter Del Skrevet 2. september 2008 public String hentPris(String nyPris) { return pris; } Den så jeg var feil, men forstår ikke hvordan jeg fikser det med pris.. Lenke til kommentar
pgdx Skrevet 2. september 2008 Del Skrevet 2. september 2008 Sammenligning av strenger er noe drit. if (gruppe.equals("Voksen") { return 200; } Du har String pris, mens du egentlig vil ha et tall, nemlig int pris. Obs: bølgeparantesene '{' skal være på samme linje som if-en slik som i mitt eksempel. Lenke til kommentar
Frankh0104 Skrevet 2. september 2008 Forfatter Del Skrevet 2. september 2008 { int pris; if (gruppe.equals("Voksen")) { return 200; } } Nå testet jeg denne men får cannot find symbol - variable gruppe.. Føler jeg mangler noe viktig Lenke til kommentar
pgdx Skrevet 2. september 2008 Del Skrevet 2. september 2008 Metoden må vel ta inn String gruppe og så bli kalt med hentPris(hentAldersgruppe()). Lenke til kommentar
Frankh0104 Skrevet 2. september 2008 Forfatter Del Skrevet 2. september 2008 (endret) public int hentPris(hentAldersgruppe()) { String gruppe; if (gruppe.equals("voksen")) { return 200; } if (gruppe.equals("honnør")) { return 100; } if (gruppe.equals("barn")) { return 100; } return pris; } Noe slikt? Men nå får jeg <identifier expected> på øverste linjen. Hvorfor? Endret 2. september 2008 av Frankh0104 Lenke til kommentar
kjey Skrevet 2. september 2008 Del Skrevet 2. september 2008 (endret) public int hentPris() { String gruppe = hentAldersgruppe(); if (gruppe.equals("voksen")) { return 200; } if (gruppe.equals("honnør")) { return 100; } if (gruppe.equals("barn")) { return 100; } return pris; } Kanskje dette hjelper? Du kan ikke deklarere en ny "String gruppe" uten å tilordne den noen verdi. Edit: Angående "identifier": du lager metoden hentPris, du kaller jo ikke på den. Det du har gjort feil er å kalle på en metode inne i parameterlisten til hentPris, men det går jo ikke. Altså det kompilatoren mener med <identifier expected> er at du må oppgi datatypen til argumentet, f.eks: public int hentPris(String gruppe). Her er "gruppe" parameter til metoden hentPris. Du hadde skrevet: public int hentPris(hentAldersgruppe()), og det går ikke. Endret 2. september 2008 av kjey Lenke til kommentar
Frankh0104 Skrevet 2. september 2008 Forfatter Del Skrevet 2. september 2008 (endret) aah, nå forstår jeg ja Nå ser ting ut til å fungere ja! Takker for svar! Endret 2. september 2008 av Frankh0104 Lenke til kommentar
___ Skrevet 2. september 2008 Del Skrevet 2. september 2008 Ellers er det litt skummelt å sammenligne tekststrenger på den måten du gjør. Metoden equals() er nemlig case-sensitiv, og "Voksen" er ikke det samme som "voksen". Bruk equalsIgnoreCase() istedet. Werner Lenke til kommentar
pgdx Skrevet 2. september 2008 Del Skrevet 2. september 2008 Når vi er inne på det, så er det synd at ikke == funker på String. Er jo egentlig ingen grunn til det, dersom de bare hadde tatt i bruk flyweight pattern (eller hva det nå heter) fra starten av. Lenke til kommentar
Frankh0104 Skrevet 4. september 2008 Forfatter Del Skrevet 4. september 2008 Nå sliter jeg litt med print info her.. Jeg vil gjerne printe info for alle gruppene men ikke ved å skrive inn prisen, i tilfelle jeg skifter prisen ved hjelp av settPris funksjonen.. public void settPris(int nyPris) { pris = nyPris; } Noen tips til hvordan jeg skal skrive det? public void printPris() { System.out.println("Prisoversikt:\n\n" + "Barn: " + "100" + "\n" + "Voksen: " + "200" + "\n" + "Honnør: " + "100"); } } Lenke til kommentar
pgdx Skrevet 4. september 2008 Del Skrevet 4. september 2008 Gitt at du vil gjøre dette objektorientert, og Java-stilmessig, lag en metode som returnerer en streng, og så skriv ut den. public void printPris() { System.out.println(getPrisoversikt()); } public String getPrisoversikt() { String s = "Prisoversikt:\n"; s += "Barn: \t" + hentPris("barn") + "\n"; s += "Voksen: \t" + hentPris("voksen") + "\n"; s += "Honnør: \t" + hentPris("honnor") + "\n"; return s; } 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å