Console.Write("Размеры прямоугольника r2: ");
r2.Show();
Console.WriteLine("Площадь прямоугольника r2: " + r2.Area());
}
}
Ushbu dasturni amalga oshirish quyidagi natijani beradi.
Размеры прямоугольника r1: 4 5
Площадь прямоугольника r1: 20
Размеры прямоугольника r2: 8 10
Площадь прямоугольника r2: 80
Metod ob'ektni qaytarmaguncha, ikkinchi unga aloqador bo`lgan ob`ektga ko`rsatgich mavjud bo`lib turadi. Shundan keyin u "axlat" sifatida yig'iladi. Natijada, ob'ekt faqat uni yaratgan metod tugaganligi sababli yo'q qilinmaydi.
Ob'ekt tipida ma'lumot qaytarishda qo`llaniladigan amaliy misollaridan biri- fabrika sinfi bo'lib, u o'z o`z sinfi ob'ektini qurish uchun mo'ljallangan metodiga ega. Ba'zi hollarda, sinf foydalanuvchilari uning konstruktoriga xavfsizlik yoki ob'ektni qurishdagi ba'zi tashqi omillar sabab kirishlarini xohlashmaydi. Bunday hollarda, fabrika sinf ob'ektlarini qurish uchun ishlatiladi. Keling, oddiy misolga qaraylik.
// Fabrika sinfidan foydalanish.
using System;
class MyClass {
int a, b; // sinfning yopiq a'zolari
// MyClass sinfi uchun fabrikani yaratish.
public MyClass Factory(int i, int j) {
MyClass t = new MyClass();
t.a = i;
t.b = j;
return t; // ob'ektni qaytarish
}
public void Show() {
Console.WriteLine("а и b: " + a + " " + b);
}
}
class MakeObjects {
static void Main() {
MyClass ob = new MyClass ();
Do'stlaringiz bilan baham: |