8 Haziran 2013 Cumartesi

C Sharp Uygulamalar Miras Alma - C Sharp Inheritance



KONU: C Sharp Uygulamalar - C Sharp ( C# ) Sınıf oluşturma, sınıfa fields & properties ekleme ve miras alma örnekleri. C sharp sınıftan miras alma. C sharp metot oluşturma. C sharp Override ToString metot.
ETİKETLER: c sharp miras alma - c sharp class inheritance - c sharp field - c sharp field declaration - c sharp properties - c sharp field property - c sharp access modifier - c sharp field access modifier - c# access modifier - c# field - c# field nedir - c# fields - c# field and property - csharp class - csharp class örnekleri - csharp class tanımlama - csharp class oluşturma - csharp class kullanımı - csharp class constructor - c sharp sınıf tanımlama - c sharp sınıf oluşturma - c sharp alan tanımlama - listbox kullanımı - sınıf metot tanımlama - c sharp override ToString metot - context menü kullanma - csharp contextmenustrip - csharp context menu.





UYGULAMAYI İNDİR



using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace OOP_inheritance
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            //Form üzerine sürükle bırak ile eklenen komponentlerin ilk değerlerini güncelleme
            InitializeComponent();
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            //program penceresi açılırken radio butonlarından biri seçili olsun

            rdbEgitmen.Checked = true;
        }

        private void btnImzala_Click(object sender, EventArgs e)
        {
            //Calisanlar sınıfından bir nesne  oluşturalım

            Calisanlar calisan;
            
            //Radio butonlarından hangisi seçili ise o değere göre calisan nesnesinin bir 
            //örneğini oluşturalım

            if (rdbEgitmen.Checked)
            {
                calisan = new Egitmenler();
            }
            else
            {
                calisan = new Muhasebeciler();
            }

            //calisan nesnesini özelliklerini formda girilen değelere göre güncelleyelim

            calisan.Ad = txtAd.Text;
            calisan.Soyad = txySoyad.Text;
            calisan.Maas = nudMaas.Value;

            //calisan nesnesini formdaki listbox listesine ekleyelim.

            lstCalisanlar.Items.Add(calisan);
            
            //ekleme işleminden sonra tüm textbox ları temizleyelim

            TextleriTemizle();
        }

        private void TextleriTemizle()
        {
            foreach (Control item in groupBox1.Controls)
            {
                if (item is TextBox)
                {
                    (item as TextBox).Clear();
                }
            }
        }

        private void lstCalisanlar_DoubleClick(object sender, EventArgs e)
        {
            //formdaki listbox üzerindeki herhangi bir satır çif tıklandığında bu metot
            //çalışacak ve seçilen sıradaki calisan ile ilgili bilgileri messagebox ile gösterelim

            //Eğer listboxdan seçil eleman indeksi -1 olarak dönerse hiç bir işlem 
            //yapmadan metodu sonlandır.

            if (lstCalisanlar.SelectedIndex < 0)
            {
                return;
            }

            string seciliElemanTipi;

            Calisanlar calisan = lstCalisanlar.SelectedItem as Calisanlar;

            if (calisan == null)
            {
                MessageBox.Show("Herhangi bir çalışan seçmemişsiniz...");
            }
            else
            {
                seciliElemanTipi = calisan.GetType().Name;
                decimal maas = calisan.Maas;
                decimal maasArtis = calisan.Artis;
                string mesaj = string.Format("{0} tipinden bir eleman seçmişsiniz." + 
                  " Maaşı {1} TL ve yıllık artış oranı {2} dir ", seciliElemanTipi, maas, maasArtis);

                MessageBox.Show(mesaj);
            }
        }

        private void contextMenuStrip1_Opening(object sender, CancelEventArgs e)
        {
            Calisanlar calisan = lstCalisanlar.SelectedItem as Calisanlar;

            if (calisan == null)
            {
                e.Cancel = true;
            }

            if (calisan is Egitmenler)
            {
                contextMenuStrip1.Items[1].Enabled = false;
            }
            else
            {
                contextMenuStrip1.Items[1].Enabled = true;
            }

            if (calisan is Muhasebeciler)
            {
                contextMenuStrip1.Items[0].Enabled = false;
            }
            else
            {
                contextMenuStrip1.Items[0].Enabled = true;
            }
        }

        private void neAnlatacaksınToolStripMenuItem_Click(object sender, EventArgs e)
        {
            Egitmenler calisan = lstCalisanlar.SelectedItem as Egitmenler;

            MessageBox.Show(calisan.BugunHangiKonuyuAnlatcaksin());
        }

        private void paraSayımHızıToolStripMenuItem_Click(object sender, EventArgs e)
        {
            Muhasebeciler calisan = lstCalisanlar.SelectedItem as Muhasebeciler;

            MessageBox.Show(calisan.SaniyedeKacKagitSayabilirsin.ToString());
        }

        private void lstCalisanlar_MouseClick(object sender, MouseEventArgs e)
        {
            //Listbox üzeirnde seçili olan elemanın üzerine sağ tıklandığında context menü 
            //açalım ve yaptığın işin özelliklerini messagebox ile gösterelim.

            if (e.Button == MouseButtons.Right)
            {
                contextMenuStrip1.Show();
            }
        }
    }
}


////////////////////////////////////////////////////////////////////////////
//Calisanlar sınıfı
////////////////////////////////////////////////////////////////////////////



    class Calisanlar
    {
        public string Ad 
        {
            get;
            set;
        }

        public string Soyad
        {
            get;
            set;
        }

        public decimal Maas
        {
            get;
            set;
        }

        protected decimal artis;

        public decimal Artis
        {
            get { return artis; }
            //set { artis = value; }
        }

        public override string ToString()
        {
            return this.Ad + " " + this.Soyad;
        }

    }


////////////////////////////////////////////////////////////////////////////
//Egitmenler sınıfı
////////////////////////////////////////////////////////////////////////////


    class Egitmenler : Calisanlar
    {
        public Egitmenler()
        {
            this.artis = 0.1M;
        }

        //Egitmeler sınıfına public olarak bir metot ekleyelim

        public string BugunHangiKonuyuAnlatcaksin()
        {
            return "OOP anlatmayi planliyorum!!!";
        }
    }



////////////////////////////////////////////////////////////////////////////
//Muhasebeciler sınıfı
////////////////////////////////////////////////////////////////////////////


    class Muhasebeciler : Calisanlar
    {
        public Muhasebeciler()
        {
            this.artis = 0.05M;

            saniyedeKaçKagit = new Random().Next(2, 10);
        }

        // Mehasebeciler sınfına bir alan (field) ekleyelim

        int saniyedeKaçKagit;
       
        //Muhasebeciler sınıfına public bir özellik ekleyelim.

        public int SaniyedeKacKagitSayabilirsin
        {
            get { return saniyedeKaçKagit; }
        }
    }


Hiç yorum yok :

Yorum Gönder