Az előadás letöltése folymat van. Kérjük, várjon

Az előadás letöltése folymat van. Kérjük, várjon

Osztály leszármaztatás

Hasonló előadás


Az előadások a következő témára: "Osztály leszármaztatás"— Előadás másolata:

1 Osztály leszármaztatás
Protected, private, public, base stb. kulcsszavak

2 Osztályok és konstruktorok
Osztályok létrehozása és példányosítás, Származtatott osztály létrehozása és példányosítás

3 Osztály definiálása Class kulcsszóval
Amikor példányosítunk, először a konstruktor fut le mint metódus Ha nem definiálunk konstruktort akkor is létezik, ha definiálunk, az új lesz érvényes Először az ősosztály konstruktora fut le

4 Ősosztály, származtatott osztály
A származtatott osztály örökli az ősosztály metódusait és tagváltozóit Először az ősosztály majd az alosztály konstruktora fut le A gyerek objektum éhes is lesz és alszik is. ősosztály származtatott osztály

5 Jancsika objektum (példányosítás)
Főprogramban gyerek osztály példányosítása

6 Paraméteres konstruktor használata
Ha paraméteres az ősosztály konstruktora, akkor a paramétert származtatni kell az öröklött osztályban, azaz nem térhet el a két konstruktor szintaktikája Konstruktor(paraméterek) = konstruktor(paraméterek) Őszosztály konstruktora Leszármazott osztály konstruktora gyerekek jancsika=new gyerekek("Tóth János");

7 Védelmi szintek Private Protected Public Internal

8 Public kulcsszó Más osztályokból láthatóak az ilyen függvények és tagváltozók.

9 Private kulcsszó Csakis az osztályon belül elérhető – ahol deklarálták . Akkor használjuk általában, ha nem akarjuk, hogy egy más osztályból közvetlenül módosítani tudjanak egy property-t például vagy kiolvasni az értékét. Pl. az ember alszik állapotát nem akarom, hogy közvetlenül írják a főprogramból mint osztályból: Pl: objektum.alszik=true; Ezért elrejtem, és csak egy cselekvés módosíthatja ugyanazon osztályból.

10 Private kulcsszó Folytatva az előző példát definiálok egy tagváltozót privát módon és elrejtem a külső osztályok számára. Ha befolyásolni akarják a változó értékeit, használniuk kell a felébreszt, elaltat metódusokat. Kiolvasáshoz az allapotkiolvas() metódust kell használniuk. public class emberek { private bool alszik=true; public void altat()       {         this.alszik=true;       }          public void felebreszt()       { this.alszik=false;       } } class Program { public static void Main(string[] args) { emberek x=new emberek(); x.altat(); x.felebreszt(); Console.WriteLine(this.allapotkiolvas()); }

11 Private és Protected kulcsszó
Ha a gyerekek alosztályából akarom elérni a privát változót akkor az nem fog menni, se külső osztályból. Az alsó ábrán a gyerek alosztály konstruktorából hívom meg a felébreszt() metódust. Kívülről ugyebár nem látható, így az objektumon majd nem tudom meghívni. Ha ez a metódus private lenne, akkor szintén nem érném el az alosztályból, csak az emberek ősosztályból. Hát ezért egy megoldás maradt, hogy kívülről ne legyen látható, de alosztályból elérhető legyen: protected szó használata a felebreszt() metóduson, amit az ábrán nem látunk, de így lett létrehozva az ősosztályban a metódus.

12 Hol a hiba? Keresd meg ha van, gépi segítség nélkül !

13 1. példa public class emberek { public string név=""; private void nagybetűsít() { this.név=this.név.ToUpper(); } public emberek(string _név) { this.név=_név; this.nagybetűsít(); } } public class gyerekek:emberek { public gyerekek(string _név):base(_név) {   this.nagybetűsít(); } } class Program { public static void Main(string[] args) { gyerekek jancsika=new gyerekek("Tóth János"); emberek felnott=new emberek("Nagy Aladár"); }


Letölteni ppt "Osztály leszármaztatás"

Hasonló előadás


Google Hirdetések