C# OOP, klasės, interfeisai ir kt. Flashcards

1
Q

Kas yra objektinis programavimas (OOP)?

A

Programavimo modelis, kuriame visas kodas yra parašytas aplinkui objektus ir duomenis (o ne funkcijas ir logiką).

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

Kas yra objektas?

A

Objektas gali būti apibrėžtas kaip duomenų laukas, turintis unikalius parametrus ir metodus.

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

Kas yra sąsaja (interface) ?

A

Apibrėžia tam tikrus funkcionalumo reikalavimus, kuriuos vėliau išpildyti turi šį interfeisą implementuojančios klasės.

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

Kuo skiriasi klasių paveldėjimas nuo interfeisų, ypač abstrakti klasė nuo interfeiso?

A

Paveldint klases savybės galima sakyt automatiškai priskiriamos tai vaikinei klasei kuri paveldėjo šią klasę.
Kai yra paveldima abstrakti klasė ji yra per daug abstrakciai aprašyta tėvinei klasėj pvz:

public class TransportoPriemone()
{
public int DuruSkaicius;
public string Tipas;
}
, todėl vaikinio objekto kūrimo metu šios savybės turi būti tiksliau aprašytos, kad būtų galima panaudoti jas. Šiuo aspektu interfeisas veikia labai panašiai - kūrimo metu taip pat reikia nurodyti tikslesnius parametrus kurie buvo gana abstrakciai nurodyti jame. Skirtumas tarp jų yra tai kad galime paveldėti tik vieną klasę, bet interfeisus galima implemetuoti kelis.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Kas yra Klasė?

A

Klasė yra programinės įrangos vienas iš statybinių komponentų.

Jį sudaro:

a) savybės
b) metodai

Klasę, jos metodus ir parametrus galime pasiekti dvejais būdais:

a) susikuriant klasės objektą pvz objektas.parametras = “Smagu”;
b) nurodant kad klasė yra “static”. Tokiu atveju negalima kurti klasės objekto o metodus ir parametrus pasieksim per klasės vardą pvz Klasė.Metodas();

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

Kas yra Prieigos modifikatoriai (Access modifiers). Kokių jų yra?

A

Tai yra būdas kaip valdytis prieigos laipsnį prie klasės ir/ar jos narių.
Yra 5 prieigos modifikatoriai:
1) public (viešas)
2) private (privatus)
3) protected (apsaugotas)
4) Internal (vidinis)
5) protected internal (apsaugotas vidinis)
6) private protected (privatus apsaugotas)

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

Kas yra public ir private prieigos modifikatoriai?

A

Public (viešas) priegos modifikatorius leidžia pasiekti klasės narį iš bet kurios klasės ar namespace’o.

Private (privatus) - prieigos modifikatorius leidžia pasiekti narį iš kodo, kuris parašytas toje pačioje klasėje.

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

Kas yra protected ir internal prieigos modifikatoriai?

A

Protected priegos modifikatorius - narys su protected prieigos modifikatoriumi gali būti pasiektas:

a) kodu kuris parašytas toje pačioje KLASĖJE;
b) kodu, kuris yra kilęs iš tos pačios KLASĖS.

Internal prieigos modifikatorius - narius galima pasiekti naudojant kodą, kuris yra tos pačios KOMPILIACIJOS dalis.

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

Kas yra metodų overridinimas?

A

Metodų perrašymo prireikia, kuomet esančiame metode norime įterpti kitus parametrus nei nurodyta metodo pradiniame konstruktoriuje.
Paveldint klasę, metodą esantį tėvinėje klasėje kurį perrašysime turime pažymėti kaip “virtual”, o naują metodą - “override”. Pvz:

public class Shape
{
  public virtual void Draw()
  {
    // pirminė implementacija
  }
}
public class Circle : Shape
{
  public override void Draw()
  {
    // nauja implementacija
  }
}
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Kas yra Polimorfizmas?

A

Polimorfizmas reiškia „daug formų“, ir jis atsiranda, kai turime daug klasių, kurios yra tarpusavyje susijusios paveldėjimo būdu.

Pavyzdys gali būti, kad to paties pavadinimo metodas yra užklojamas kuriant naujus klasės objektus. Metodo viduje tuomet kaip pvz bus išspausdintas vis kitas tekstas. Todėl nors ir naudojamas tas pats metodas kuris paveldimas iš tos pačios klasės, jis skirtinguose objektuose duos skirtingus rezultatus.

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