Csharp ile Sınıf ve Kalıtım Kullanımı Laboratuvar Çalışması

Aşağıdaki yapıya sahip Bisiklet isimli bir sınıf tanımlayınız,

-  bisiklet sınıfının hız ve vites olmak üzere iki gizli(private) özelliği vardır, bu özelliklere set ve get metodları kullanarak erişim sağlayınız.

- bisikletin yapıcı(constructor) metodunda vites değerini 1, hız değerini 0(sıfır) olarak tanımlayıp, bisikletin hızlanması ve yavaşlamasını aşağıdaki metodlarla gerçekleştiriniz.

hızlan(int miktar, int vites)
yavasla(int miktar, int vites)

- Vites değeri maksimum 4 olabilir, bu değeri de yine set ve get metodları içinde kontrol ediniz,  vitesin minimum değeri 1'dir. Hız değeri maksimum 40 km'dir, minimum 0'dır.

- bilgiYaz() isimli bir metod oluşturarak o anki hız ve vites bilgisini yazdırınız.

- Bisiklet sınıfından türeteceğiniz ElektrikliBisiklet sınıfında da menzil(mesafe), şarjSuresi, bataryaOmru isimli üç özellik vardır,  menzil özelliği varsayılan 200 km, sarjSuresi 4 saat, bataryaOmru 5 yıldır. 

- ElektrikliBisiklet sınıfında da bilgYaz() metodu olacak, bu metod da Hız, Vites bilgisi yanında menzil, şarjSüresi, bataryaÖmrü gibi bilgileri ekrana yazacaktır.



Bu bilgilere göre sınıfları oluşturarak gerekli programı geliştiriniz.

 
 
class Bisiklet
{
    private int hiz, vites;
    public int Hiz
    {
        set
        {   if (value < 0) //Hız sıfırdan düşük olamaz
                hiz = 0;
            else if (value > 40) //Hız 40 km yi geçemez
                hiz = 40;
            else
                hiz = value;
        }
        get { return hiz; }
    }
 
    public int Vites
    {
        set
        {
            if (value > 4) //Vites 4'ü geçemez
                vites = 4;
            else if (value<0) //Vites sıfırdan küçük olamaz.
                vites =0;
            else
                vites = value;
        }
        get { return hiz; }
    }
 
    public Bisiklet()
    {
        vites = 1;
        hiz = 0;
    }
 
    public void hizlan(int miktar, int _vites)
    {
        vites = _vites;
        hiz += _vites*miktar;
       
    }
    public void yavasla(int miktar, int _vites)
    {
        vites = _vites;
        hiz -= _vites*miktar;
    }
 
    public virtual void bilgiYaz()
    {
        Console.WriteLine("============");
        Console.WriteLine("Hız:"+hiz);
        Console.WriteLine("Vites:"+vites);
        Console.WriteLine("============");
    }
 
}
 
class ElektrikliBisiklet :Bisiklet
{
    int menzil, sarjSuresi, bataryaOmru;
 
    public ElektrikliBisiklet()
    {
        menzil = 200;
        sarjSuresi = 4;
        bataryaOmru = 5;
    }
 
    public override void bilgiYaz()
    {
        Console.WriteLine("============");
        base.bilgiYaz();
        Console.WriteLine("Menzil:" + menzil);
        Console.WriteLine("Şarj Süresi:" + sarjSuresi);
        Console.WriteLine("Batarya Ömrü:"+bataryaOmru);
        Console.WriteLine("============");
 
    }
}
 
 
namespace Quiz_Sinif_Kalitim
{
    class Program
    {
        static void Main(string[] args)
        {
            Bisiklet b1 = new Bisiklet();
            b1.bilgiYaz();
            b1.hizlan(20, 2);
            b1.bilgiYaz();
            b1.yavasla(5, 1);
            b1.bilgiYaz();
 
            ElektrikliBisiklet e1 = new ElektrikliBisiklet();
            e1.hizlan(20, 2);
            e1.bilgiYaz();
            e1.yavasla(10, 2);
            e1.bilgiYaz();
            Console.ReadKey();
        }
    }
}



Diğer Yazılar

C# ile Nesne Yönelimli Programlamaya Giriş
C# Set ve Get Metodları ile Dört İşlem
C# ile Soyut Metod Kullanımı

C# Tüm Paylaşımlar (Konu Sırasına Göre)


Mutlu kodlamalar,
Oğuzhan TAŞ
Ocak 2024
 
 
Bookmark and Share