...
I denne oppgaven tar vi utgangspunkt i et StringGrid-grensesnitt som definerer metodene til et rutenett som holder strenger. Et rutenett som holder strenger er firkantet og består av et antall rader og kolonner. Det skal være mulig å spørre rutenettet hvilken streng som er på angitt rad og kolonne i tillegg til å endre strengen på angitt rad og kolonne. Denne oppførselen er oppsummert i det definerte StringGrid-grensesnittet under:
Code Block |
---|
package interfaces; public interface StringGrid extends Iterable<String> { public int getRowCount(); public int getColumnCount(); public String getElement(int row, int column); public void setElement(int row, int column, String element); } |
har et navn (String) bestående av fornavn ("given name") og etternavn ("family name").
- Grid - generelt grensesnitt (og implementasjon) for rutenett og iterator over elementene
Legg merke til at StringGrid-grensesnittet arver (extends) fra Iterable<T>-klassen hvilket betyr at det skal være mulig å iterere over klassen ved å spørre Iterator-objektet om neste streng i rutenettet.
Del 1 - StringGrid-grensesnitt og implementerende StringGridImpl-klasse
Lag en StringGridImpl-klasse som implementerer StringGrid-grensesnittet.
-- De får utdelt GridImpl<T> og skal selv definere Grid<T>-grensesnittet og endre GridImpl så den implementerer Grid<T> (dersom vi tror bruk av generics forvirrer dem, så låser vi det til String, men da må testen oppdateres)
Del 2 -
...
StringGridIterator-klasse
-- GridIterator<T> implementerer en Iterator<T> over alle elementene. Klassen kan konfigureres slik at den kan itererer bortover først (rowMajor=true) eller nedover først (rowMajor=false).
...