Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.


Excerpt
 Denne Denne oppgaven handler om en begrenset klone av Twitter, med to klasser, TwitterAccount og Tweet.

...

I tillegg har hver Twitter-konto en mengde tweets, som er små, korte tekster. En tweet hører til den kontoen den ble sendt fra. Hvis noen finner en annen sin tweet interessant har man muligheten til å retweete denne. Da lager man en tweet som refererer til originalen, og (implisitt) får original-tweeten sin tekst. Merk at i en kjede av retweets, så vil alle referere til samme original-tweet. Mao., hvis hvis tweet B er en retweet av A og tweet C er en retweet av B, vil både tweet B og C ha A som original-tweet, slik det er vist til venstre under. 

Tweet-klassen

Tweet skal ha to konstruktører, en for hver måte å tweete på:

...

  • String getUserName() - returnerer brukernavnet

  • void follow(TwitterAccount account) - denne (this) kontoen starter å følge account

  • void unfollow(TwitterAccount account) - slutt å følge account

  • boolean isFollowing(TwitterAccount account) - returnerer om denne kontoen følger account

  • boolean isFollowedBy(TwitterAccount account) - returnerer om account følger denne kontoen

  • void tweet(String) - lager en ny tweet for denne kontoen

  • void retweet(Tweet tweet) - retweeter tweet fra denne kontoen

  • Tweet getTweet(int i) - returner tweet nummer i, der 1 er den nyeste, 2 den nest nyeste, … (merk rekkefølgen!)

  • int getTweetCount() - returner antall tweets til kontoen

  • int getRetweetCount() - returner antall retweets av tweets fra denne kontoen

...

Exercise-panelet

Bruk av Exercise-panelet er obligatorisk for denne oppgaven. Du må ha panelet åpent med Twitter.ex-filen (tests > objectstructures Twitter.ex) i før du begynner med oppgaven. For mer informasjon/hjelp, se nederst på hovedsiden for Øving 5.

Del 1

  • Implementer Tweet-klassen.
  • For å teste klassen må du sende inn inn TwitterAccount-objekter i konstruktøren. Lag en forenklet versjon av av TwitterAccount-klassen for dette formålet, der du kun implementerer konstruktøren og evt. en passende toString(). Dette gjør det mulig å teste Tweet-klassen din uten at du må implementere hele TwitterAccount-klassen først.

...

Del 2

  • Implementer TwitterAccount-klassen.
  • Test klassen og dens samspill med Tweet-klassen ved å lage Twitter-konto for deg selv og noen av vennene dine. La noen av kontoene følge hverandre, tweete og retweete.


JExercise-testkode Testkode for denne oppgaven finner du her: objectstructures/TweetTest.java og objectstructures/TwitterAccount og TwitterAccountTest.java. Original Original-koden (jextest) finner du her: objectstructures/Tweet.jextest og  og objectstructures/TwitterAccount.jextest.

.ex for bruk med Exercise-panelet finner du her: Twitter.ex.

Frivillig utvidelse

På Twitter kan man markere en annen sin tweet som en favoritt. Implementer passende metoder for å kunne gjøre dette. En konto må ha oversikt over hvilke tweets den har markert som favoritter, og en tweet må vite hvem og hvor mange som har markert den som favoritt. Hva synes du burde skje hvis man markerer en retweet som en favoritt?

 

Include Page
Bunntekst for JExercise- oppgaver
Bunntekst for JExercise- oppgaver