13-amaliy Mavzu: 13-amaliy: Icomparable va Icloneable interfeysi metodlarini sinfda qayta aniqlash Nazariy ma’lumotlar



Yüklə 30,5 Kb.
tarix24.12.2023
ölçüsü30,5 Kb.
#192001
13-amaliy


13-amaliy
Mavzu: 13-amaliy:Icomparable va Icloneable interfeysi metodlarini sinfda qayta aniqlash
Nazariy ma’lumotlar:
C# dasturlash tilida IComparable va ICloneable interfeyslari, obyektlar orasida taqqoslash va nusxalash imkoniyatlarini qo'shadi. Bu interfeyslar o'z ichiga olgan metodlar orqali, mos keluvchi funksionalni amalga oshirish uchun ishlatiladi. Quyidagi qismlarda, har bir interfeys metodlarini va ularni qanday to'g'ri aniqlash kerakligini ko'rsataman.
IComparable Interfeysi
IComparable interfeysi, obyektlarni taqqoslash uchun ishlatiladi. Bu interfeys faqat bir taqqoslash kriteriyasini o'z ichiga oladi.
public class MyClass : IComparable
{
public int MyProperty { get; set; }

// IComparable interfeysi uchun CompareTo() metodini aniqlash


public int CompareTo(object obj)
{
if (obj == null) return 1;

MyClass otherObject = obj as MyClass;

if (otherObject != null)
return this.MyProperty.CompareTo(otherObject.MyProperty);
else
throw new ArgumentException("Object is not a MyClass");
}
}
Ushbu sinfda, IComparable interfeysi uchun kerakli metod CompareTo aniqlanadi. Ushbu metod, berilgan obyekt bilan o'zini taqqoslash uchun ishlatiladi.
ICloneable Interfeysi
ICloneable interfeysi, obyektni nusxalash uchun ishlatiladi. Bu interfeysga tegishli metod o'zini nusxalangan obyektni qaytaradi.
public class MyClass : ICloneable
{
public int MyProperty { get; set; }

// ICloneable interfeysi uchun Clone() metodini aniqlash


public object Clone()
{
return new MyClass { MyProperty = this.MyProperty };
}
}
Ushbu sinfda, ICloneable interfeysi uchun kerakli metod Clone aniqlanadi. Ushbu metod, obyektni nusxalab yangi obyekt qaytaradi.
Bu interfeyslarni sinfda qo'llash orqali, sinf obyektlarini taqqoslash va nusxalash imkoniyatlarini oshirish mumkin.
IComparable va ICloneable interfeyslarini qanday ishlatishni ko'rsatuvchi amaliy misolni quyidagi kodi orqali ko'ring:
using System;

public class Person : IComparable, ICloneable


{
public string Name { get; set; }
public int Age { get; set; }

// IComparable interfeysi uchun CompareTo() metodini aniqlash


public int CompareTo(object obj)
{
if (obj == null) return 1;

Person otherPerson = obj as Person;

if (otherPerson != null)
return this.Age.CompareTo(otherPerson.Age);
else
throw new ArgumentException("Object is not a Person");
}

// ICloneable interfeysi uchun Clone() metodini aniqlash


public object Clone()
{
return new Person { Name = this.Name, Age = this.Age };
}

public override string ToString()


{
return $"{Name}, {Age} yosh";
}
}

class Program


{
static void Main()
{
// IComparable interfeysini sinash
Person person1 = new Person { Name = "John", Age = 25 };
Person person2 = new Person { Name = "Jane", Age = 30 };

Console.WriteLine($"Taqqoslash natijasi: {person1.CompareTo(person2)}");

// ICloneable interfeysini sinash
Person clonedPerson = (Person)person1.Clone();

Console.WriteLine("Asl obyekt: " + person1);


Console.WriteLine("Nusxalangan obyekt: " + clonedPerson);
}
}
Bu dastur Person sinfini ishlatadi. Person sinfi IComparable interfeysi orqali yosh bo'yicha taqqoslanadi va ICloneable interfeysi orqali obyektni nusxalaydi. Dastur natijasida, obyekt yaratiladi, taqqoslanadi, va nusxalangan obyekt chiqariladi.
Mavzuga oid masalalar:
Taqqoslash (IComparable):

  1. Kitoblar: Sizda bir Book sinfi bor. Kitoblar biror attribut (masalan, nomi va narxi) bo'yicha taqqoslanadi. IComparable interfeysini ishlatib, kitoblarni narxi bo'yicha taqqoslash metodini qo'shing.

  2. Futbolchilar: Sizda futbolchilar haqida ma'lumotlar bor. Oyinlarni o'ynagan va g'ol yig'gan futbolchilar o'zaro taqqoslanadi. IComparable interfeysini ishlatib, futbolchilarni g'ol yig'ishlarini hisoblash bo'yicha taqqoslash metodini qo'shing.\

  3. Movie sinfini yaratib, uning obyektini narxi bo'yicha taqqoslash uchun IComparable interfeysini ishlating. Ma'lumotlariga film nomi, janri va narxi kiradi.

Nusxalash (ICloneable):
Student:

  1. Student sinfini yaratib, uning obyektini nusxalash uchun ICloneable interfeysini ishlating. Ma'lumotlariga nom, yosh va o'qish joyi kiradi.

  2. Car: Car sinfini yaratib, uning obyektini nusxalash uchun ICloneable interfeysini ishlating. Ma'lumotlariga model, yil va rang kiradi.

  3. Computer: Computer sinfini yaratib, uning obyektini nusxalash uchun ICloneable interfeysini ishlating. Ma'lumotlariga kompyuter modeli, RAM hajmi va disk hajmi kiradi.

Yüklə 30,5 Kb.

Dostları ilə paylaş:




Verilənlər bazası müəlliflik hüququ ilə müdafiə olunur ©azkurs.org 2024
rəhbərliyinə müraciət

gir | qeydiyyatdan keç
    Ana səhifə


yükləyin