Showing posts with label constructors. Show all posts
Showing posts with label constructors. Show all posts

Monday, September 24, 2012

Constructors ve statik metot örneği (c#)


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

namespace Evler
{
    public class Ev
    {

        /*constructor*/
        /* başta kendiliğinden kuruluyor */
        public Ev()
        {

        }

        /* nesnenin tüm özellikleri sınıf kurulurken atanıyor*/
        public Ev(int katno, int odasayisi, double alan, string semt)
        {
            this.katno = katno;
            this.odasayisi = odasayisi;
            this.alan = alan;
            this.semt = semt;
        }

        /* sadece semti belli olan nesnelerin kurulumunde tercih edilir */
        public Ev(String semt)
        {
            this.semt = semt;
        }

        /* Static ile oluşturulan constructor, sınıf program içersinde ilk kurulduğu anda bir kereye mahsus oluşturulur. */
        /* Static ile constructor oluşturma kurulan sınıf içersinde dosya yazdırılacağı zaman ilk başta dosyanın oluşturulması gibi
         * adımlarda işimizi kolaylaştırır. */
       
        static Ev()
        {
            Console.WriteLine("ilk ev oluşturuldu");
        }

        /*fields */
        private int katno;
        private int odasayisi;
        private double alan;
        private string semt;

        /* Protected erişim belirleyicisi*/
        public int Katno
        {
            get
            {
                return katno;
            }

            set
            {
                katno = value;
            }
        }

        public int Odasayisi
        {
            get
            {
                return odasayisi;
            }

            set
            {
                odasayisi = value;
            }
        }

        public double Alan
        {
            get
            {
                return alan;
            }

            set
            {
                alan = value;
            }
        }

        public string Semt
        {
            get
            {
                return semt;
            }

            set
            {
                semt = value;
            }
        }


        public String EvBilgileriniGetir()
        {
            return string.Format(" katno: {0} \n odasayisi: {1} \n alan: {2} \n semt: {3}", katno, odasayisi, alan, semt);
        }

        /*Const */
        const double katsayi = 3.44;

        /*Static */
        /*Nesne üzerinden erişilmesine gerek olmayan koşullarda kullanılır, direkt sınıf üzerinden erişilir. */
        public static double KatsayiGonder(double alan)
        {
            return alan * katsayi;
        }
    }
}

Yapıcı Metotlar(Constructors) (c#)


Yapıcı Metotlar(Constructors)

Şu ana kadar gördüğümüz örneklerde bir sınıf nesnesinin üye elemanlarından olan özelliklere değerler verirken ya kendimiz
EnBoyBelirle() gibi metotlar tanımladık ya da '.' operatörü ile eğer eleman puplic ise direkt ulaştık. Ancak bu şekilde ilk
değer vermeler genellikle kullanılmaz, nesne yönelimli programlama tekniğinin getirdiği birtakım avantajlardan yararlanılır.

referans tipi oluşturulduğunda elemenlara  varsayılan değer atanıyordu. İşte bu işlemi yapan aslında otomatik çalışan bir
yapıcı metottur. Burdan da anlaşılacağı gibi biz tanımlamasakta her sınıfın bir yapıcı metotodu vardır. Bunlara
default constructor denilmektedir.

yapıcı metotların geri dönüş değerinin olmaması geri dönüş tipinin void olduğu anlamına gelir.


Şimdi örnek bir sınıf üzerinden yapıcı metotların nasıl bildirildiğine bakalım. Yapıcı metotların diğer metotlardan
2 farkı vardır. birincisi, yapıcı metotların geri dönüş değeri yoktur. yani geri dönüş değeri kavramı yoktur bu yüzden
metotun tipi tanımlanmaz. ikincisi yapıcı metotların ismi sınıf ismi ile aynı
olmak zorundadır.




Şimdi Ev adlı bir sınıf için bir yapıcı metot oluşturalım. Ev sınıfı içerisinde katno, odasayisi, alan, semt bilgisini tutan
bir veri yapısı olacaktır.

class Ev
{
   puplic int odasayisi;
   puplic int katno;
   puplic int alan;
   puplic string semt;


   Puplic Ev(int odasi, int kati, int alani, string semti)
   {
       odasayisi = odasi;
       katno = kati
       alan = alani;
       semt = semti;
   }
}