Gå til innhold

Trenger hjelp til oppgave


Anbefalte innlegg

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
Videoannonse
Annonse

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

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

	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 av Frankh0104
Lenke til kommentar

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 av kjey
Lenke til kommentar

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

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

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 konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...