C# Class Kullanımı

Sınıfları genele küçük basit uygulamalarda kullanmayız ama daha büyük ölçekli projelerde sınıflara başvurulmaktadır. Sınıflar peki nedir diye anlatırsak; sınıf kod tekrarını ve kod yükünü önler. Aynı zamanda erişim belirleyici metotlar ile birlikte kullanıldığında bir takım gizlilikler sağlayan bir alandır. Örneklersek;

Araba diye bir sınıfımız olsun. Bu araba sınıfının ne türde bir araba olduğuna ilişkin nesnelerimiz olabilir. Örnek olarak

Sınıf : Araba

Nesne: Otomobil, SUV, Otobüs, Kamyon vb gibi.. Yani araba sınıfının altında oluşturulan nesnelerimiz olabilir.

Nesnelerinde özellikleri olur. Bu nesnelerin hepsinin bir modeli var, hepsinin bir yakıt türü var, hepsinin vites türü var. Yani araba benim sınıfım, arabanın altında araba türü benim nesnem, bunların diğer özellikleri de hepsi için geçerli olan durumda benim özelliğim.

Peki bu örneği biraz daha spesifik düşünelim. Sınıfımız Fiat olsun. Nesnemiz Hatchback, Sedan, Station Wagon olsun.

Sınıf : Fiat

Nesne: Sedan, Hatchback, Station Wagon

Her nesnem için aşağıdaki özelliklerim mevcut:

Model, Yakıt Türü, Vites Tipi, Renk gibi özelliklerim de mevcut olabilir. Böyle bir yapıda çatıyı oluşturan kısım Fiat sınıf olarak belirlenmiştir.

Kodlamada bir örnek yapalım.

Yeni bir proje oluşturup üç tane form ekliyorum. Projemin adı Fiat_Class_Ornek olsun. Formların adı Sedan, Hatchback ve SW olsun. Ayrıca projeme bir adette Class ekliyorum, bunun adı da Fiat olsun. Her formuma 6 adet label ekleyeceğim. Bu labellerimi özellikleri göstermek için kullanacağım. Dolayısı ile her sınıfım için 6 adet özellik tanımlayacağım. Bunlar; Model, YakitTuru, VitesTipi, Renk, MotorTip ve Fiyat olsun. Buna göre labellara da isim verdim.

Öncelikle classımı yazacağım;

Oluşturduğum Fiat.cs dosyası içerisindeki kodlarım; Fiat adında bir class tanımladım. Bu class altında yer alan özelliklere erişim sağlanabilmesi için her bir özelliği public olarak tanımlıyorum.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace FiatClassOrnek
{
    class Fiat
    {
        //Özelliklerime diğer formlardan erişim sağlanabilmesi için her bir özelliğimi public olarak tanımlıyorum.

        public string model;
        public string YakitTipi;
        public string VitesTipi;
        public string Renk;
        public string MotorTipi;
        public decimal fiyat;
       
    }
}

Şimdi 3 adet form oluşturmuştum Her bir formda birer nesne oluşturacağım. Yani Fiat classından nesne türetiyorum. Bunun için yazacağım komut şöyle;

Fiat EgeaSedan = new Fiat();

EgeaSedan adında bir nesne tanımladım şimi bu nesnem içinde Fiat sınıfında tanımladığım özelliklere erişebilirim.

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

namespace FiatClassOrnek
{
    public partial class Sedan : Form
    {
        public Sedan()
        {
            InitializeComponent();
        }

        private void Sedan_Load(object sender, EventArgs e)
        {
            //Fiat sınıfından türeterek, EgeaSedan adında bir nesne oluşturdum. Artık Fiat sınıfında tanımladığım her bir özellik bu nesne tarafından erişilebilir durumda. Her bir özellik için uygun veri tipinde atama yapıyorum.
            Fiat EgeaSedan = new Fiat();
            EgeaSedan.model = "1.4 Fire Urban Plus";
            EgeaSedan.YakitTipi = "Benzinli";
            EgeaSedan.VitesTipi = "Manuel";
            EgeaSedan.Renk = "Kurşun Grisi";
            EgeaSedan.MotorTipi = "1.4";
            EgeaSedan.fiyat = 105900;

            //ilgili labellara yazdırma işlemimi yapıyorum.
            lblModel.Text = EgeaSedan.model;
            lblYakitTip.Text = EgeaSedan.YakitTipi;
            lblVitesTip.Text = EgeaSedan.VitesTipi;
            lblRenk.Text = EgeaSedan.Renk;
            lblMotor.Text = EgeaSedan.MotorTipi;
            lblFiyat.Text = EgeaSedan.fiyat.ToString();
        }
    }
}


Bir diğer forma geçelim Hatcback ismini verdiğim form üzerinde; EgeaHatchback adında bir nesne tanımladım şimi bu nesnem içinde Fiat sınıfında tanımladığım özelliklere erişebilirim.

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

namespace FiatClassOrnek
{
    public partial class Hatchback : Form
    {
        public Hatchback()
        {
            InitializeComponent();
        }

        private void Hatchback_Load(object sender, EventArgs e)
        {
            //Fiat sınıfından türeterek, EgeaHatchback adında bir nesne oluşturdum. Artık Fiat sınıfında tanımladığım her bir özellik bu nesne tarafından erişilebilir durumda. Her bir özellik için uygun veri tipinde atama yapıyorum.
            Fiat EgeaHatchback = new Fiat();
            EgeaHatchback.model = "1.3 Fire Easy Paket";
            EgeaHatchback.YakitTipi = "Dizel";
            EgeaHatchback.VitesTipi = "Otomatik";
            EgeaHatchback.Renk = "Beyaz";
            EgeaHatchback.MotorTipi = "1.3";
            EgeaHatchback.fiyat = 135900;

            //ilgili labellara yazdırma işlemimi yapıyorum.

            lblModel.Text = EgeaHatchback.model;
            lblYakitTip.Text = EgeaHatchback.YakitTipi;
            lblVitesTip.Text = EgeaHatchback.VitesTipi;
            lblRenk.Text = EgeaHatchback.Renk;
            lblMotor.Text = EgeaHatchback.MotorTipi;
            lblFiyat.Text = EgeaHatchback.fiyat.ToString();
        }
    }
}


Bir diğer forma geçelim SW ismini verdiğim form üzerinde; EgeaSW adında bir nesne tanımladım şimi bu nesnem içinde Fiat sınıfında tanımladığım özelliklere erişebilirim.

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

namespace FiatClassOrnek
{
    public partial class SW : Form
    {
        public SW()
        {
            InitializeComponent();
        }

        private void SW_Load(object sender, EventArgs e)
        {
            //Fiat sınıfından türeterek, EgeaSW adında bir nesne oluşturdum. Artık Fiat sınıfında tanımladığım her bir özellik bu nesne tarafından erişilebilir durumda. Her bir özellik için uygun veri tipinde atama yapıyorum.
            Fiat EgeaSW = new Fiat();
            EgeaSW.model = "1.6 Lounge Paket";
            EgeaSW.YakitTipi = "Benzinli";
            EgeaSW.VitesTipi = "Otomatik";
            EgeaSW.Renk = "Kurşun Grisi";
            EgeaSW.MotorTipi = "1.6";
            EgeaSW.fiyat = 169900;

            //ilgili labellara yazdırma işlemimi yapıyorum.
            lblModel.Text = EgeaSW.model;
            lblYakitTip.Text = EgeaSW.YakitTipi;
            lblVitesTip.Text = EgeaSW.VitesTipi;
            lblRenk.Text = EgeaSW.Renk;
            lblMotor.Text = EgeaSW.MotorTipi;
            lblFiyat.Text = EgeaSW.fiyat.ToString();
        }
    }
}

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir