Gå til innhold

Skoleoppgave, subtyping osv


Anbefalte innlegg

Videoannonse
Annonse

Hadde jeg vært Bob hadde jeg fortalt Alice at hun må ha mer linjeskift i koden sin så det blir lett å se hvilke kommentarer som hører til hvilken kode. Jeg hadde også bedt om en forklaring på hvorfor i all verden 'n' er public og ikke private?

 

Jeg tror svaret ditt ang. pre- og postconditions for (a) er riktig, forutsatt at set()-metoden brukes. Når n er public er det ikke noe problem å sette denne direkte (altså "Cell c = new Cell(); c.n = -45;"), så den bør være private (alt bør være private hvis det ikke er en god grunn for noe annet).

Lenke til kommentar

Du må altså endre fra "public int n;" til "private int n;", og spesifisere at set()-metoden bare aksepterer positive verdier og hva som skjer hvis 0 eller en negativ verdi gis inn. Definisjonen er blitt mindre fleksibel, nå kan ikke Bob lenger bruke n direkte, han må bruke set()- og get()-metodene. For Alice er det ikke blitt mindre fleksibelt, hun kan bruke n i metodene i Cell-klassen fritt (men hun er ansvarlig for å sørge for at n ikke settes til en ulovlig verdi).

Lenke til kommentar

OK, takk. Men i oppgaven står det om int n;

 

// this field is public for simplicity
// generally this is not a recommended practice
Så meningen med oppgaven er nok ikke å ta denne private, men å forstå om det gir restriksjoner eller fleksibilitet for Alice/Bob når man gjør de forskjellige endringene
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...