«C# dasturlash tili» O’quv qo’llanma


Konstruktorni chaqirish ketma-ketligi



Download 0,57 Mb.
bet19/76
Sana20.07.2022
Hajmi0,57 Mb.
#828017
1   ...   15   16   17   18   19   20   21   22   ...   76
Bog'liq
C # ma\'lumotnoma

Konstruktorni chaqirish ketma-ketligi


Konstruktorlar bajarilishi ketma - ketligi avval baza konstruktorlaridan boshlanib keyin xosila konstruktorlarga o’tiladi.


G’G’ Demonstratsiya poryadka vo’polneniya konstruktorov.


using System;

G’G’ Sozdaem bazovo’y klass.


class A {
public A() {
Console.WriteLine("Sozdanie klassa A.");
}
}

G’G’ Sozdaem klass, proizvodno’y ot A.


class V : A {
public VO {
Console.WriteLine("Sozdanie klassa V.");
}
}

G’G’ Sozdaem klass, proizvodno’y ot V.


class S : V {
public C( ) {
Console.WriteLine ("Sozdanie klassa S.");
}
}
class OrderOfConstruction {
public static void Main ( ) {
S s q new C ( );
}
}
Ushbu bajarilishlarning ketma-ketligi quyidagi vaziyat bilan tushuntiriladi. Baza sinfi konstruktori xosila sinfi konstruktoriga bog’liq bo’lmagan xolda o’z vazifasini bajaraveradi, ammo xosila sinfi konstruktori baza sinfi konstruktoriga murojat etish extimolligi bor.
Baza sinfiga izoxlar va xosila sinfi ob’ektlari.

S# qat’iy turlangan til bo’lib, bir sinf tiplari ikkinchi sinf ob’ektlariga izox bera olmaydi:


G’G’ Eta programma ne skompiliruetsya.


class X {
int a;

public X(int i) {a q i;)


}

class Y { int a ;


public Y(int i) { a q i;}
}

class IncompatibleRef {


public static void Main ( ) {
X x q new X(10);
X x2;
Y u q new Y(5);
x2 q x; G’G’ OK, obe peremenno’ye imeyut odinakovo’y tip.
x2 q u; G’G’ Oshibka, zdes peremenno’ye raznogo tipa.
}
}
Ammo S# tilida baza sinf ob’ekti shu bazadan kelib chiqqan xosila sinfi ob’ektlariga izox bera oladi.

G’G’ Sso’lka na bazovo’y klass mojet ukazo’vat na


G’G’ ob’ekt proizvodnogo klassa.

using System;


class X {


public int a;

public X(int i) {


a q i;
}
}

class Y : X {


public int b;

public Y(int i, int j) : base(j) {


b q i;
}
}

class BaseRef {


public static void Main() {
X x q new X(10) ;
X x2;
Y u q new Y(5, 6) ;
x2 q x;
G’G’ OK, obe peremenno’ye imeyut odinakovo’y tip.
Console.WriteLine("x2.a: " Q x2.a);
x2 q u; G’G’ Vse ravno ok, poskolku klass Y
G’G’ vo’veden iz klassa X.
Console.WriteLine("x2.a: " Q x2.a);

G’G’ X-sso’lki "znayut" tolko o chlenax klassa X.


x2.a q 19; G’G’ OK
G’G’ x2.bq27; G’G’ Oshibka, v klasse X net chlena b.
}
}
Shu bilan birga bu yerda asosiy rolni izox berilayotgan o’zgaruvchan o’ynaydi va u qaysi ob’ektdagi a’zolarga izox berish imkoniyati mavjudligini aniqlaydi.

G’G’ Peredacha sso’lki na proizvodno’y klass


G’G’ sso’lke na bazovo’y klass.

using System;


class TwoDShape {


double pri_width; G’G’ Zakro’to’y chlen.
double pri height; G’G’ Zakro’to’y chlen.

G’G’ Konstruktor po umolchaniyu.


public TwoDShape ( ) {
width q height q 0.0;
}

G’G’ Konstruktor klassa TwoDShape.


public TwoDShape (double w, double h) {
width q w;
height q h; }

G’G’ Sozdaem ob’ekt, v kotorom shirina ravna vo’sote.


public TwoDShape (double x) {
width q height - x;
}

G’G’ Sozdaem ob’ekt iz ob’ekta.


public TwoDShape (TwoDShape ob) {
width q ob.width;
height q ob.height;
}

G’G’ Svoystva width i height.


public double width
get { return pri_width; }
set { pri_width q value; } }

public double height {


get { return pri_height; }
set { pri_height q value; }
}
public void showDim() {
Console.WriteLine("Shirina i vo’sota ravno’ " Q
width Q " i " Q height);
}
}

G’G’ Klass treugolnikov, proizvodno’y ot klassa TwoDShape.


class Triangle : TwoDShape {
string style; G’G’ Zakro’to’y chlen.

G’G’ Konstruktor po umolchaniyu.


public Triangle() {
style q "null";
}

G’G’ Konstruktor klassa Triangle.


public Triangle (string s,
double w,
double h) :
base(w, h) {
style q s;
}

G’G’ Sozdaem ravnobedrenno’y treugolnik.


public Triangle(double x) : base(x) {
style q "ravnobedrenno’y";
}

G’G’ Sozdaem ob’ekt iz ob’ekta.


public Triangle(Triangle ob) : base(ob) {
style q ob.style;
}

G’G’ Metod vozvrahaet plohad treugolnika,


public double area () {
return width * height G’ 2;

G’G’ Metod otobrajaet tip treugolnika.


public void showStyle () {
Console.WriteLine("Treugolnik " Q style);
}
}
class Shapes7 {
public static void Main() {
Triangle t1 q new Triangle("pryamougolno’y", 8.0, 12.0);

G’G’ Sozdaem kopiyu ob’ekta t1.


Triangle t2 q new Triangle (t1);

Console.WriteLine("Informatsiya o t1: ") ;


t1.showStyle() ;
t1.showDim();
Console.WriteLine ("Plohad ravna " Q t1.area ());

Console.WriteLine() ;


Console.WriteLine("Informatsiya o t2: ");


t2.showStyle() ;
t2.showDim () ;
Console.WriteLine("Plohad ravna " Q t2.area());
}
}

Download 0,57 Mb.

Do'stlaringiz bilan baham:
1   ...   15   16   17   18   19   20   21   22   ...   76




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©hozir.org 2024
ma'muriyatiga murojaat qiling

kiriting | ro'yxatdan o'tish
    Bosh sahifa
юртда тантана
Боғда битган
Бугун юртда
Эшитганлар жилманглар
Эшитмадим деманглар
битган бодомлар
Yangiariq tumani
qitish marakazi
Raqamli texnologiyalar
ilishida muhokamadan
tasdiqqa tavsiya
tavsiya etilgan
iqtisodiyot kafedrasi
steiermarkischen landesregierung
asarlaringizni yuboring
o'zingizning asarlaringizni
Iltimos faqat
faqat o'zingizning
steierm rkischen
landesregierung fachabteilung
rkischen landesregierung
hamshira loyihasi
loyihasi mavsum
faolyatining oqibatlari
asosiy adabiyotlar
fakulteti ahborot
ahborot havfsizligi
havfsizligi kafedrasi
fanidan bo’yicha
fakulteti iqtisodiyot
boshqaruv fakulteti
chiqarishda boshqaruv
ishlab chiqarishda
iqtisodiyot fakultet
multiservis tarmoqlari
fanidan asosiy
Uzbek fanidan
mavzulari potok
asosidagi multiservis
'aliyyil a'ziym
billahil 'aliyyil
illaa billahil
quvvata illaa
falah' deganida
Kompyuter savodxonligi
bo’yicha mustaqil
'alal falah'
Hayya 'alal
'alas soloh
Hayya 'alas
mavsum boyicha


yuklab olish