Objektid, klassid, pärimine

Vajadus objektorienteeritud lähenemise järele

1980-ndad aastad. Keerulised tarkvarasüsteemid. Graafikakeskkonnad.

Suurte projektide haldamine
Taaskasutamine (kasutada/muuta olemasolevat, mitte alustada nullist), keerukate graafiliste kasutajaliideste programmeerimine standardsemaks/lihtsamaks.

Objekti kõige üldisemas tähenduses kirjeldavad

    1. Olek
    2. Käitumine
    3. Identiteet

    Kapseldus (ingl.k. encapsulation)







Klass





      Pärimine (ingl.k. inheritance)





Javas on pärimine ühene, aga on sisse toodud võimalus, et sama klass saab realiseerida erinevaid liideseid (interface) -  sisuliselt me asendame seose "A on erijuht B-st" seosega "A oskab täita liidest B".

      Teadete saatmine (ingl.k. message passing), polümorfism




    Näide

     
    public class Loomad {

       static public void main (String[] argumendid) {
          System.out.println ("Mida loomad ytlevad?");
          Loom minuLoom = new Loom ("Patu");
          System.out.println (minuLoom); //kasutab toString() meetodit
          Kass minuKass = new Kass ("Kiti");
          System.out.println (minuKass);
          minuLoom = minuKass;
          System.out.println (minuLoom);
       } //main lopp

    } //Loomad lopp

    class Loom {

       private String nimi;

       Loom (String s) { //konstruktor
          paneNimi (s);
       }

       public String votaNimi() {
          return nimi;
       }

       public void paneNimi (String s) {
          nimi = s;
       }

       public String toString() { //katame yle
          return "Olen loom " + votaNimi();
       }

    } // Loom lopp

    class Kass extends Loom { //alamklass

       private int vurrupikkus;

       Kass (String s) {
          super (s);
       }

       public String toString() { //katame kaetu veel yle
          return "Olen KASS " + votaNimi();
       }

    } // Kass lopp

     
    Vaatame veel näiteid:
    Preili.java
    Kellad.java
    Arv.java


Jaanus Pöial