Versions Compared

Key

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

...

Med disse detaljene på plass er klassediagrammet fullstendig nok til at vi kan skrive Java-kode for Institutt- og Emne-klassene. Her vil vi bare skissere løsningen, mens en slags oppskrift er gitt på siden om koding av 1-n-assosiasjonerMetoder for å opprette og fjerne koblinger er skissert under, med kode for å opprette eksempel-objektstrukturen, men merk at koden ikke sikrer konsistens, dvs. at koblingene er gjensidige, så vi må gjøre det manuelt.

Code Block
languagejava
public class Institutt {

	// felt som kan inneholde flere emner
	private ArrayList<Emne> emner;

	// metode for å opprette emne-kobling
	public void addEmne(Emne emne) {
		this.emner.add(emne);
	}

	// metode for å fjerne emne-kobling
	public void removeEmne(Emne emne) {
		this.emner.remove(emne);
	}
}
Code Block
languagejava
public class Emne {

	// felt som kan inneholde ett Institutt
	private Institutt ansvarligInstitutt;

	// metode for å opprette eller fjerne ansvarlig-institutt-kobling
	public void setAnsvarligInstitutt(Institutt institutt) {
		this.ansvarligInstitutt = institutt;
	}
}
Code Block
languagejava
Institutt idi = new Institutt(...);
Emne tdt4100 = new Emne(...);
Emne tdt4180 = new Emne(...);
idi.addEmne(tdt4100);
idi.addEmne(tdt4180);
tdt4100.setAnsvarligInstitutt(idi);
tdt4180.setAnsvarligInstitutt(idi);

Ulike kombinasjoner av multiplisiteter gir opphav til ulike sett med innkapslingsmetoder og stiller ulike krav til deres logikk. Koding av de ulike variantene skisseres på egne sider (se sidelista under).