Professional Documents
Culture Documents
Osztályok
hierarchiája, Object osztály C#-ban. Láthatósági módosítók
használata (private, public, protected).
namespace _013_OOP_Lathatosagi_modositok
{
public class A
{
public int x = 1;
private int y = 2;
protected int z = 3;
}
}
A fenti példában láthatjuk az a osztályt amely 3 integer értékkel rendelkezik, de mindigyknek
másfajta láthatósági módosítóval rendelkezik
public int x = 1; - ez az érték bárhol látható lesz
private int y = 2; - ez az érték csak az osztályon belül less látható
protected int z = 3; - ez az érték csak az A osztályból leszármaztatott osztályban less
látható.
Az alábbi kódrészlet már magából a Formból jön, láthatjuk, hogy a Button1 click eseménye
kiirja a textboxba az A értékeit.
private void button1_Click(object sender, EventArgs e)
{
textBox1.Clear();
a.KiirasA(textBox1);
}
A péládt folytatva vizsgáljuk meg a B osztályt is:
using System.Windows.Forms;
namespace _013_OOP_Lathatosagi_modositok
{
public class B : A
{
public void KiirasB(TextBox tbox)
{
tbox.AppendText("x = " + x + ", ");
tbox.AppendText("y nem látható, ");
tbox.AppendText("z = " + z + "\n");
}
}
}
Láthatjuk, hogy a B osztály az előbb megbeszélt A osztályból van leszármaztatva, ebből
adódóan az A osztályban tárolt értékek a következő módon fognak megjelenni:
tbox.AppendText("x = " + x + ", ");
Az A osztály első értéke látható lessz a B osztály számára, mivel annak láthatósági
módosítója public volt
tbox.AppendText("y nem látható, ");
Az A osztály második értéke nem látható a B osztály számára, mivel annak
láthatósági módosítója private volt, tehát ez az érték csak az A osztály számára
elérhető
tbox.AppendText("z = " + z + "\n");
Az A osztály harmadik értéke szintén látható a B osztály számára, mivel annak
láthatósági módosítója protected volt. Ez azt jelenti, hogy az érték csak az A
osztályból leszármaztatott alosztályoknak látható.
Ez a B-re érvényes: public class B : A
Megvizsgálva a Formban levő kódrészletet, láthatjuk, hogy az A osztály második értéke
biztos nem lesz látható.
private void button2_Click(object sender, EventArgs e)
{
textBox1.Clear();
b.KiirasB(textBox1);
}
Futás közben:
namespace _013_OOP_Lathatosagi_modositok
{
public partial class Form1 : Form
{
private A a = new A();
private B b = new B();
public Form1()
{
InitializeComponent();
}