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 Protected, private, public, base stb. kulcsszavak.

Hasonló előadás


Az előadások a következő témára: "OSZTÁLY LESZÁRMAZTATÁS Protected, private, public, base stb. kulcsszavak."— Előadás másolata:

1 OSZTÁLY LESZÁRMAZTATÁS Protected, private, public, base stb. kulcsszavak

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

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 ősosztályszármaztatott osztály A gyerek objektum éhes is lesz és alszik is.

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) gyerekek jancsika=new gyerekek("Tóth János"); Őszosztály konstruktoraLeszármazott osztály konstruktora

7 Private Protected Public Internal Védelmi szintek

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. 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; } } 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()); } 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 Keresd meg ha van, gépi segítség nélkül ! Hol a hiba?

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 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(); } } 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"); } 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 Protected, private, public, base stb. kulcsszavak."

Hasonló előadás


Google Hirdetések