Gå til innhold

Anbefalte innlegg

Hei

 

Jeg har fått et oppgave,der jeg skal lage en bysykkel-app som skal innholde 5 klasser. Jeg har fått problem med å lage Person-klasse og Personregister-klasse.

 

her er pseudokode:

 

import java.util.Date;

import java.text.DateFormat;

public class Person

{

< datafelt >

< konstruktør >

< get-metoder for sykkel og idNr >

 

public boolean godkjent()

{

< Metoden skal returnere true hvis personen ikke allerede leier

en sykkel og ikke har noen merknader. Ellers false. >

}

public void setMerknad(Date t, String m)

{

< Metoden skal ut fra parametrene t og m lagre en tekst i datafeltet for

merknader. I teksten skal tidspunktet formateres slik det er beskrevet

i oppgavens innledning. >

}

public boolean leiSykkel(Sykkel s)

{

< Hvis personen er godkjent, jfr. metoden godkjent(), skal metoden

registrere at personen leier sykkelen s. Starttidspunktet for leietiden

skal også registreres og skal være det samme som tidspunktet for når

denne metoden blir kalt. Metoden skal så returnere true.

Hvis personen ikke er godkjent, får vedkommende ikke leie sykkelen s

og metoden skal returnere false. >

}

public int leietid(Date sluttTid)

{

< Metoden skal returnere antall påbegynte timer fra starttidspunktet for

leien til sluttidspunktet angitt av parameteren sluttTid. >

}

public void leverInn()

{

< Metoden skal registrere innleveringstidpunktet (som vil være det samme

som tidspunktet for når denne metoden blir kalt). Videre skal leietiden

beregnes. Hvis den lovlige leietiden er overskredet, skal det settes en

merknad på personen. Denne skal inneholde innleveringstidspunktet og det

antall timer leietiden er overskredet med. Uansett skal det registreres

at personen ikke lenger leier sykkelen. >

}

public String toString()

{

< Metoden skal returnere en tekst som inneholder personens navn og idNr.

Hvis personen leier en sykkel, skal sykkelens idNr tas med i teksten.

Hvis personen har en merknad, skal denne også tas med i teksten. >

}

} // end of class Person

 

 

 

 

 

 

 

public class PersonRegister

{

private Person[] personer;

 

public PersonRegister(int antall)

{

personer = new Person[antall];

opprettPersonregister();

}

public void opprettPersonregister()

{

< Her skal du opprette konkrete Person-objekter og sette dem inn

i arrayen, f.eks 10 stykker. Du vil trenge dem for å kunne teste

ut programmet. >

}

public Person finnPerson(int personId)

{

< Metoden skal lete etter en person (et person-objekt) med idNr lik

parameteren personId. Hvis personen finnes i registeret, skal person-

objektet returneres fra metoden. I motsatt fall skal metoden returnere

null. NB! Vi kjenner ikke til antall person-objekter i arrayen og vet

heller ikke om disse ligger etter hverandre. >

}

public Person finnSykkelBruker(int sykkelId)

{

< Metoden skal lete etter en person (et person-objekt) som leier en sykkel

med idNr lik parameteren sykkelId. Hvis en slik person finnes i registeret,

skal person-objektet returneres fra metoden. I motsatt fall skal metoden

returnere null. NB! Vi kjenner ikke til antall person-objekter i arrayen

og heller ikke om disse ligger etter hverandre. >

}

} // end of class PersonRegister

Lenke til kommentar
Videoannonse
Annonse

Du må da lese.

Booleans = noe som kan være sant (true) eller ikke-sant (false)

F.eks, metoden godkjent() ber deg sjekke om personen leier en sykkel, hvis personen gjør det skal man retunere sant (true), hvis ikke skal man retunere ikke-sant (false)

 

Og jeg vet at du allerede har hatt to andre obligatoriske oppgaver, du har da løst dem fra pseudo-kode?

Endret av Gjest
Lenke til kommentar

public boolean godkjent()

{

< Metoden skal returnere true hvis personen ikke allerede leier

en sykkel og ikke har noen merknader. Ellers false. >

}

 

public boolean godkjent()
{
   if(!leier && !merknader)
		  return true;
   return false;

}

Lenke til kommentar

Jeg vet ikke hva jeg skal skrive i boolean-metoder, med logikken har jeg problem.

 

"Boolean" betyr at det har med sant/usant - verdier å gjøre, så de metodene skal svare på et eller annet spørsmål.

Noe slikt:

 

public boolean erKongHarald() {
if (name.equals("Harald") && stilling.equals("Konge") ) {
	return true;
} else {
	return false;
}
}

 

Legg merke til at du også kan gjøre dette, som er foretrukket (men kanskje vanskeligere å lese om du ikke er helt stø på hva slags verdier man får fra ting):

 

public boolean erKongHarald() {
return (name.equals("Harald") && stilling.equals("Konge") );
}

Endret av Djn
Lenke til kommentar

http://www.iu.hio.no/~evav/ProgrammeringH2012/Obliger/Oblig3H12/Oblig3H12.html

 

Jeg vet ikke hva jeg skal skrive i boolean-metoder, med logikken har jeg problem.

 

"Boolean" betyr at det har med sant/usant - verdier å gjøre, så de metodene skal svare på et eller annet spørsmål.

Noe slikt:

 

public boolean erKongHarald() {
if (this.name.equals("Harald") && this.stilling.equals("Konge") ) {
	return true;
} else {
	return false;
}
}

 

Legg merke til at du også kan gjøre dette, som er foretrukket (men kanskje vanskeligere å lese om du ikke er helt stø på hva slags verdier man får fra ting):

 

public boolean erKongHarald() {
return (this.name.equals("Harald") && this.stilling.equals("Konge") );
}

 

Du bruker this feil.

Lenke til kommentar

Hvordan bruker han this feil H5N1? Jeg har brukt det i objekt-klasser selv.

 

EDIT:

Nå skal det sies at jeg ikke er noen stødig java-programmerer, bare nysgjerrig :)

Endret av Gjest
Lenke til kommentar

Du bruker this feil.

 

Ikke så mye "feil" som "unødvendig" - det vil fungere, men jeg er enig i at det kun gjør det vanskeligere å lese. (Det begynner å bli en stund siden jeg skrev java sist.)

 

Redigert ut nå.

Endret av Djn
Lenke til kommentar
  • 5 uker senere...

public boolean erKongHarald() {
	return (name.equals("Harald") && stilling.equals("Konge") );
}

 

Ingen behov for this.

 

Ikke enig. This er utrolig bra i større kodebaser, da man straks ser at man jobber på intern state, og ikke parametere eller lokale variable. Å konsekvent bruke this er ansett som god kodestil om du ikke har en alternativ naming scheme på parametre og lokale variabler, som for eksempel _var.

 

EDIT: Men, selvsagt, i dette tilfellet er det ingen behov for det, da koden er så simpel at this kun blir ekstra støy.

Endret av Mads-b
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...