1 Yhteyssuhde Mikä yhteyssuhde on? Yhteyssuhde Javalla Konstruktorit set-ja get-metodit tostring-metodi Pääohjelma 1 Mikä yhteyssuhde on? Tili - : String - : double * 1 Asiakas - hetu: String - : String Yhteysuhde Yhteyssuhteella tarkoitetaan sitä, että luokalla on suhde (yhteys) toiseen luokkaan. 2
2 Tili-luokkaan lisätään -attribuutti, mikä on Asiakasluokkaa. Tili-luokan olio sisältää viitteen Asiakas-luokan olioon. viittaa Asiakas-luokan olioon. Tarkoituksena on siis kertoa, kuka omistaa tilin Kun olio syntyy, yhteys toisen luokan olioon laitetaan null:ksi, jos yhteydestä ei ole tietoa null 3 Kun olio syntyy, voidaan olioon laittaa tieto yhteydestä toiseen olioon hetu Kun olio tuhoutuu, yhteydessä ollut olio on edelleen elossa hetu 4
3 private String ; private double ; private Asiakas ; Yhteyssuhde Javalla Tili-luokassa on viite Asiakas-luokan olioon. Yhteys luodaan Tili-luokan metodeilla (konstruktorilla tai set-metodilla) 0.0 null public class Asiakas { private String hetu, ; hetu public Asiakas() { hetu = ""; = ""; public Asiakas(String hetu, String ) { this.hetu = hetu; this. = ; Asiakas asiakas = new Asiakas(); Konstruktorit private Asiakas ; public Tili() { = null; -viitteeseen laitetaan null, koska ei ole yhteyttä eli tietoa sta public Tili(String, double ) { = null; public Tili(String, double, Asiakas ) { this. = ; Tili-luokan olioon laitetaan yhteys (viite), missä Asiakas-luokan olio on 6
4 Parametriton konstruktori 0.0 null Tili-luokan olioon laitetaan null, koska ei ole tietoa sta Parametrillinen konstruktori Asiakas asiakas = new Asiakas ("123456-1234", "Maija"); Tili tili = new Tili("Fi65123", 200.0, asiakas); Fi65123 4 200.0 hetu 123456-1234 Maija Tili-luokan olioon laitetaan yhteys (viite), missä Asiakas-luokan olio on. Konstruktori siis luo yllä yhteyden. 7 set-metodi Luokkaan tehdään metodi (setxx) yhteyden asettamista varten. private Asiakas ; Laitetaan Tili-luokan olioon yhteys (viite) Asiakas-luokan olioon. public void setomistaja(asiakas ) { this. = ; Luodaan erikseen Tili-luokan olio ja Asiakas-luokan olio. Sen jälkeen tehdään yhteys setomistaja-metodilla. Asiakas asiakas = new Asiakas ("123456-1234", "Maija"); tili.setomistaja(asiakas); 8
5 Luokkaan tehdään metodit attribuuttien (yhteyssuhde) lukemista (getxx ) varten. private Asiakas ; get-metodi public Asiakas getomistaja() { return ; palautetaan yhteys (viite) Asiakasluokan olioon Asiakas asiakas = tili.getomistaja(); saadaan yhteys (viite), missä Asiakas-luokan olio on. Tässä tilanteessa tulee null, koska Tili-luokan olio on luotu parametrittomalla konstruktorilla eikä siis ole tietoa 9 sta. tostring-metodi tostring-metodilla olion attribuutit muunnetaan merkkijonoksi. Metodia käytetään tietojen näyttämiseen. public String tostring() { String palautus = ""; Omistaja-attribuutti on Asiakas-luokkaa, joten kutsutaan Asiakas-luokan tostringmetodia if (!= null) { palautus = "=" + + ", =" + + ", =" +.tostring(); else { palautus = "=" + + ", =" + ; return palautus; jos Tili-luokan olion -attribuutin arvo on null (eli tilillä ei ole a), attribuutille ei saa kutsua metodeja System.out.println(tili.toString()); 10
6 Pääohjelma public static void main(string[] args) { System.out.print("Anna tilin n hetu: "); String hetu = input.nextline(); System.out.print("Anna tilin n : "); String = input.nextline(); luodaan Tili-luokan olio, tilin ksi tulee null luodaan Asiakas-luokan olio // Luodaan Asiakas asiakas = new Asiakas(hetu, ); // Laitetaan tiliin viite an tili.setomistaja(asiakas); luodaan yhteys Tili-luokan ja Asiakas-luokan olioiden välille System.out.println("Tilin tiedot:\n" + tili.tostring()); 11