C# TA SINIF YAPISI

Ana sayfa Forumlar PROGRAMLAMA C# C# TA SINIF YAPISI

1 yazı görüntüleniyor (toplam 1)
  • Yazar
    Yazılar
  • #13209
    özgür
    İzleyici

    ——————————————————————————–

    Nesne tabanlı program yazarken mutlaka kullandığımız yapılardan biri de nesnelerdir . Günlük yaşantımızda aslında her şey bir nesnedir . Programcılığın amaçları arasında da hayatımızı kolaylaştırmak olduğuna göre ürettiğimiz çözümlerde nesnelerden yararlanmalıyız . Hayatımızda ki nesneleri programlarımızda sınıflar olarak nitelendiriyoruz . Örnek vermek gerekirse çalışanlar , öğrenciler , banka hesabı gibi . Basit bir uygulama ile sınıfların nasıl tanımlandığına bir göz atalım .
    class sinifin_adi
    {
    //sınıfın üyeleri
    }
    class ogrenci
    {
    public int ogrID;


    }

    Öğrenci adında basit bir sınıf tanımladık ve bu sınıfımızın ogrID adında tekbir üyesi oldu . Bu üyemizi tanımlarken public anahtar sözcüğü kullandık . Bu sözcüğe erişim değiştirici denir . Buna benzer dört farklı erişim değiştiricisi vardır . Bu konuya yeri gelmişken deyineyim .

    Erişim Değiştiricisi
    Özelliği
    private
    Bu tür üyelere tanımlayıcı sınıf dışında erişilemez , türetilen sınıflardan bile .
    protected
    Bu tür üyelere sınıf dışında görünmezler . Sadece türetilen sınıflardan erişilebilir .
    public
    Bu tür üyelere her yer den erişilebilir .
    internal
    Kodun bulunduğu göre public ve protected türlerinin bir karışımıdır .

    Bu bilgileri de verdikten sonra şimdide sınıfların üyelerinden bahsedelim . Aklınızı karıştırmamak için basit tanımlarını verip bu konuyu hemen geçmek istiyorum . Çünkü verecek olduğum her başlık nesne yönelimli programlamada birer konu başlığı .

    Alanlar : Sınıf içerisinde tanımlanan değişkenlere denir .
    Yöntemler : Sınıfın alanları üzerinde çalışan gerçek koddur . Sınıflara davranış özelliklerini verir .
    Özellikler : Bunlar sayesinde bir sınıfın alanlarına bir erişimci yönteminin var olup olmadığını bilmeden public alanlarmış gibi erişilebilen bir istemci yazabiliriz .
    Sabitler : Değiştirilmeyen bir değeri olan bir alandır .
    Dizinleyiciler : Değerleri almak , ayarlamak için bir nesneyi kolayca dizinlememizi sağlar .
    Olaylar : Bir kod parçasının çalışmasını sağlayan şeylerdir . Fare hareketi , tıklama işlemi gibi .
    İşleçler : Standart matematiksel işleçleri bir sınıfa ekleyerek , bu işleçler sayesinde daha yetenekli yazabilmemize olanak sağlar .

    Sınıflar ve nesne yönelimli yazılım hakkındaki bu temel bilgileri aldıktan sonra örnek uygulamalar ile pekiştirelim . İlk örneğimizde basit bir uygulama yapalım . Sınıfımızın bir fonksiyonu olsun ve ekrana herhangi bir metni yazdıralım bu fonksiyon sayesinde .

    static void Main(string[] args)
    {
    ilkSinif.ilkFonksiyon();
    }
    }
    class ilkSinif
    {
    public static void ilkFonksiyon()
    {
    Console.WriteLine(“İlk Sınıf Uygulaması”);
    Console.ReadLine();
    }

    }

    Öncelikle gördüğümüz gibi hazırlamış olduğumuz bir sınıf içerisindeki bir fonksiyona , eğer erişim değiştiricisinden dolayı bir engel verilmemiş ise sinif_adi.fonksiyon_adi şeklinde ulaşabiliriz . Bu örneğimizde birde önemli bir nokta var oda static kelimesi . Eğer örneğimizde fonksiyonumuzu static olarak tanımlamamış olsa idik uygulamamızı derlerken şu hata ile karşılaşırdık : “Error 1 An object reference is required for the nonstatic field, method, or property ‘classmakale_1.ilkSinif.ilkFonksiyon()’ ” Bu hatayı Main() fonksiyonumuz static bir fonksiyon olduğu için static bir fonksiyon içinden static olmayan çağıramıyor olmamızdan verir . Eğer static yapmadan çağırmak istiyorsak o zaman Main() içerisinde yavru bir üye tanımlamamız gerekir . Oda şu şekilde yapılıyor :

    static void Main(string[] args)
    {
    ilkSinif yavruUye = new ilkSinif();
    yavruUye.ilkFonksiyon();
    }
    }

    Yavru üye tanımlamayı da öğrendikten sonra makalemize daha detaylı bir örnek ile devam edelim . Bir bisiklet sınıfımız olsun bu sınıfa ait bazı üyeler olsun bu üyeler sayesinde bisikletin maliyet ve satış fiyatlarını hesaplayalım .

    static void Main(string[] args)
    {
    double tekerlek;
    double demiraksam;
    double cant;
    double pedal;
    double satisF;
    bisiklet yeniBisiklet = new bisiklet();

    Console.WriteLine(“tTekerlek Birim Fiyatını Giriniz”);
    tekerlek = Double.Parse(Console.ReadLine());
    Console.WriteLine(“tnDemir Aksam Fiyatını Giriniz”);
    demiraksam = Double.Parse(Console.ReadLine());
    Console.WriteLine(“tnCant Birim Fiyatını Giriniz”);
    cant = Double.Parse(Console.ReadLine());
    Console.WriteLine(“tnPedal Fiyatını Giriniz”);
    pedal = Double.Parse(Console.ReadLine());
    satisF=yeniBisiklet.satisFiyatiHesapla(tekerlek,de miraksam,cant,pedal);
    Console.WriteLine(“tnBisikletin satış fiyatı = {0} YTL”,satisF);
    Console.ReadLine();

    }
    }
    class bisiklet
    {
    private double tekerlekbFiyati;
    private double demiraksamFiyati;
    private double cantbFiyati;
    private double pedalFiyati;
    private const double iscilik=52.5;
    public double mFiyati;
    public double sFiyati;

    private double maaliyetFiyatiHesapla()
    {
    mFiyati = (tekerlekbFiyati * 2) + demiraksamFiyati + pedalFiyati;
    mFiyati += (cantbFiyati * 2) + iscilik;
    return mFiyati;
    }
    public double satisFiyatiHesapla(double tekerlek, double demiraksam, double cant, double pedal)
    {
    tekerlekbFiyati = tekerlek;
    demiraksamFiyati = demiraksam;
    cantbFiyati = cant;
    pedalFiyati = pedal;
    return (maaliyetFiyatiHesapla() * 120)/100;
    }

    }

    Bu uygulamamızda kullanıcıdan alığımız birim fiyatlara göre belirli bir işçilik ekleyerek bir maliyet fiyatı ve bu maliyete de belirli bir kar oranı ekleyerek satış fiyatını bulmaya çalıştık . Burada maaliyetFiyatiHesapla() fonksiyonunu private yapma sebebimiz ise bu fonksiyona dışardan erişilmesini istememizdir . Yazımızı burada tamamlıyoruz . Umarım faydalı olur .

1 yazı görüntüleniyor (toplam 1)
  • Bu konuyu yanıtlamak için giriş yapmış olmalısınız.
Bana Ders Anlat © 2008-2022