OOP Põhimõtted Flashcards

1
Q

Klass

A

Andmestruktuuri kirjeldus. Klass määratleb, millised omadused ja käitumised (väljad ja meetodid) objektidel on.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Objekt

A

Klassi instants. Kui klass on nagu plaan, siis objekt on selle plaani põhjal loodud tegelik asi, millel on selles klassis määratletud omadused ja meetodid.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Konstruktor

A

Klassi meetod, mis loob, algväärtustab ja algseadistab uue klassi instantsi.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Staatiline väli või meetod

A

Ei ole seotud ühegi konkreetse klassi instantsiga, vaid on seotud klassiga ise. Staatilist välja või muutujat saab kasutada ilma klassi objekti loomata.

private static int nextId;
private static int getNextId() {
    return nextId++;
}
public static void resetIdCounter() {
    nextId = 0;
}
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Enum klass

A

Võimaldab defineerida mingi tüübi, millel on kindel hulk konstante ehk selle tüübi võimalike väärtusi (nt DayOfWeek, MovieGenre).

public enum Sport {
    KUDO,
    BRAZILIAN_JIU_JITSU,
    KUNG_FU,
    BOXING
}
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Sisemised klassid ja liidesed

A

Klassid ja liidesed, mis on defineeritud teise klassi sees.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Meetodi ülelaadimine (overload)

A

Võimaldab defineerida mitu meetodit sama nimega, kuid eri parameetritega.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Meetodi ülekirjutamine (override)

A

Alamklass pärib ülemklassist mingi meetodi ja kirjutab selle enda jaoks üle. Kasutatakse @Override dekoratsiooni.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Pärimine

A

Alamklass pärib kõik omadused ja käitumised (väljad ja meetodid) ülemklassilt. Ta saab neid kasutada, laiendada või üle kirjutada.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Polümorfism —
Võime käsitleda ___is või ___ abil erineval ___ olevaid objekte erinevalt. Võimaldab koodis p___ust ja t___ust. Näiteks sama ___ kasutamine objekti erinevate ___ puhul, kus iga ___ ___ käitumine võib erineda vastavalt sellele, kuidas meetod on sellele ___ ülekirjutatud. Näiteks produceOrbs ___ üle kõikide ___ ___ hoolimata sellest, millise ___ ___ on tegu, ning loob ___ ___ ___, kusjuures iga ahju klassi ___ ___ kutse loob orbe natuke ___ ___.

A

Võime käsitleda meetodis või liidese abil erineval kujul olevaid objekte erinevalt. Võimaldab koodis taaskasutamist ja paindlikkust. Näiteks sama meetodi kasutamine objekti erinevate tüüpide puhul, kus iga tüübi instantsi käitumine võib erineda vastavalt sellele, kuidas meetod on sellele tüübile ülekirjutatud. Näiteks produceOrbs itereerib üle kõikide ahjude vabrikus hoolimata sellest, millise klassi ahjuga on tegu, ning loob orbe iga ahjuga, kusjuures iga ahju klassi craftOrb meetodi kutse loob orbe natuke erinevate reeglitega.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Kapseldus

A

Objekti sisemine olek ja käitumine on välise maailma eest varjatud ning seda saab muuta ainult objekti enda meetodite ja reeglite kaudu. Tagab objekti sisemise oleku turvalisuse ja stabiilsuse, ja kontrollib andmetele juurdepääsu ja nende muutmist. (private, getter, setter.)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

Abstraktsioon

A

Keerukate süsteemide lihtsustamine sellega, et süsteemid ei sõltu väga konkreetsetest detailidest.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

Abstraktne meetod

A

Ilma implementatsioonita meetod.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

Abstraktsed klassid ja liidesed on ___. Neil on mõned olulised erinevused:

Abstraktne klass:
Eesmärk: ___.

Liides:
Eesmärk: ___.

A

Abstraktsed klassid ja liidesed on mõlemad viisid Javas abstraktsiooni saavutamiseks ja lepingute määratlemiseks. Neil on mõned olulised erinevused:

Abstraktne klass:
Eesmärk: Abstraktsed klassid on teistele omavahel seotud klassidele šablooniks, pakkudes neile implementeerimiseks ühise aluse.

Liides:
Eesmärk: Liidesed on lepingud, millist käitumist klass peab implementeerima olenemata klasside pärimise hierarhiast.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

Serialiseerimine

A

Teisendab objekti baitide voogu (byte stream), et seda saaks salvestada faili, andmebaasi või edastada võrgu kaudu teisele süsteemile. Selleks, et objekt oleks serialiseeritav, peab see klass rakendama Serializable liidest.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

Deserialiseerimine

A

Teisendab baitide voogu tagasi objektiks.

17
Q

Abstraktsed klassid ja liidesed on ___. Neil on mõned olulised erinevused:

Abstraktne klass:
Konstruktor: ___.

Liides:
Konstruktor: ___.

A

Abstraktsed klassid ja liidesed on mõlemad viisid Javas abstraktsiooni saavutamiseks ja lepingute määratlemiseks. Neil on mõned olulised erinevused:

Abstraktne klass:
Konstruktor: Võib olla. Saab teha väljade algvaäärtustamist jm algseadistamist.

Liides:
Konstruktor: Ei ole.

18
Q

Abstraktsed klassid ja liidesed on ___. Neil on mõned olulised erinevused:

Abstraktne klass:
Meetodite implementeerimine: ___.

Liides:
Meetodite implementeerimine: ___.

A

Abstraktsed klassid ja liidesed on mõlemad viisid Javas abstraktsiooni saavutamiseks ja lepingute määratlemiseks. Neil on mõned olulised erinevused:

Abstraktne klass:
Meetodite implementeerimine: Võivad olla nii abstraktsed kui implementeeritud meetodid.

Liides:
Meetodite implementeerimine: Ainult abstraktsed meetodid. Aga võivad olla vaikimisi ja staatilised implementeeritud meetodid.

19
Q

Abstraktsed klassid ja liidesed on ___. Neil on mõned olulised erinevused:

Abstraktne klass:
Mitu pärandit: ___.

Liides:
Mitu pärandit: ___.

A

Abstraktsed klassid ja liidesed on mõlemad viisid Javas abstraktsiooni saavutamiseks ja lepingute määratlemiseks. Neil on mõned olulised erinevused:

Abstraktne klass:
Mitu pärandit: Klass võib laiendada ainult ühte abstraktset klassi.

Liides:
Mitu pärandit: Klass võib laiendada aga mitu liidest. See võimaldab klassil pärida käitumist mitmelt liideselt. (Liides võib laiendada ainult ühte teist liidest Java-s)

20
Q

Abstraktsed klassid ja liidesed on ___. Neil on mõned olulised erinevused:

Abstraktne klass:
Väljad: ___.

Liides:
Väljad: ___.

A

Abstraktsed klassid ja liidesed on mõlemad viisid Javas abstraktsiooni saavutamiseks ja lepingute määratlemiseks. Neil on mõned olulised erinevused:

Abstraktne klass:
Väljad: Võivad olla väljad (muutujad).

Liides:
Väljad: Ei, va konstantid (static final).

21
Q

Objektorienteeritud programmeerimine (OOP) —
on programmeerimis___, mis põhineb “___ide” kasutamisel tark___mide m___iseks ja a___iseks. Objektid on ü___d, mis sisaldavad a___ ja k___ läbi m___. Need esindavad päris___ ___ või abs___ ___. OOP-il on neli põhiprintsiipi: ___, ___, ___ ja ___. See lä___ võimaldab koodi ta___, ho__, pa___ ja lihtsustab keer___ ___ käsitlemist.

A

on programmeerimisparadigma, mis põhineb “objektide” kasutamisel tarkvarasüsteemide modelleerimiseks ja arendamiseks. Objektid on üksused, mis sisaldavad andmeid ja käitumist läbi meetodite, ja esindavad pärismaailma asju või abstraktseid kontseptsioone. OOP-il on neli põhiprintsiipi: kapseldus, pärimine, polümorfism ja abstraktsioon. See lähenemisviis võimaldab koodi taaskasutamist, hooldatavust, paindlikkust ja lihtsustab keeruliste süsteemide käsitlemist.