If it is not explicitly told in following recipe, setting up services are described for Ubuntu 20.04 server, but applications are described for Xubuntu 20.04 workstation. If you use different Ubuntu version or Linux distribution, settings as well as content, names and places of configuration files may be different!
Got it.

6. Abstraktas klases un saskarnes

Pārskatiet prezentāciju Abstraktas klases un saskarnes

Uzdevumi

Izveidojiet klasi Human

Izpētiet pakotni jtm.activity06 un izveidojiet Human klasi, kas ievieš Humanoid saskarni:

  1. Ar peles labo pogu noklikšķiniet uz pakotnes main.java.jtm.activity06 un atlasiet  New — Class
  2. Ievadiet class name: Human
  3. Spiediet Add.. un main.java.jtm.activity06 pakotnē atlasiet Humanoid.
  4. Sadaļā Which method stubs would you like to create? atlasiet Inherited abstract methods
  5. Spiediet Finish

Izveidojiet klasi Martian

Izveidojiet Martian klasi, kas implementē Humanoid, Alien un Cloneable saskarnes:

  1. Ar peles labo pogu noklikšķiniet uz pakotnes main.java.jtm.activity06 un atlasiet New — Class.
  2. Ievadiet class name: Martian
  3. Sadaļā interfaces spiediet Add.. un atlasiet:
    1. Humanoid no main.java.jtm.activity06 pakotnes,
    2. Alien no main.java.jtm.activity06 pakotnes,
    3. Cloneable no java.lang pakotnes.
  4. Sadaļā Which method stubs would you like to create? atlasiet Inherited abstract methods
  5. Spiediet Pabeigt

Implementējiet Martian un Human klašu metodes

Implementējiet metodes atbilstoši prasītajam, kas aprakstīta saskarnes definīcijās un vienību testu pārbaudēs.

error Piezīmes:

  1. Kad Humanoid ir izsalcis, tas ēd un pieņemas svarā. Ja Alien ēd Humanoid, tas to nogalina.
    1. Implementējot Humanoid eat(), ir jāpieņem Integer, bet Alien eat() jāpieņem Object.
  2. Kad Humanoid vemj, tas zaudē apēstā svaru.
    1. Human vomit() tikai Integer, bet Alien var izvemt jebkuru Objektu.
  3. Ja clone() tiek izsaukts Martian, tā struktūra ir jāklonē rekursīvi visu "vēderu" saturam. To var izdarīt, ieviešot iekšējo metodi clone(Object), piemēram:

    /*
     * Implementation of Object clone() method for Cloneable interface
     * @see https://docs.oracle.com/javase/7/docs/api/java/lang/Cloneable.html
     */
    @Override
        public Object clone() throws CloneNotSupportedException {
        return clone(this);
    }

    private Object clone(Object current) {
        // TODO implement cloning of current object
        // and its stomach
    }
  4. Implementējiet toString() metodi Human un Martian klasēm šādā formātā:

    @Override
    public String toString() {
    return "ClassName: " + weight + " [" + stomach + "]";
    }

    kur ClassName ir Human cilvēkam, un Martian marsietim.
    Piemēram, ja pašreizējais objekts ir marsietis un tā "vēderā" ir cits marsietis un pēc tam cilvēks ar 3 vēderā, tam ir jāparāda:

    [Martian: 3 [Martian: 4 [Human: 5 [3]]]

Papildu informācija


  

Created by Valdis Vītoliņš on 2024-03-06 20:18
Last modified by Valdis Vītoliņš on 2024-12-04 14:41
 
Xwiki Powered
Creative Commons Attribution 3.0 Unported License