Clear        


                
                    namespace _03_Encapsulation
{
    // summary class'lar, alanlar, özellikler ve methodlar üzerinde kullanılabilir. Amacı class'ın kullanıldığı yerlerde class, alan, özellik veya method adı yazıldığında
    // bilgi amaçlı yazılan açıklamayı görebilmektir.
    /// <summary>
    /// Müşteri verilerini tutan model sınıfı.
    /// </summary>
    class Musteri // Musteri class'ı veri taşıdığı için bir model sınıftır, gerçek hayattan bir müşteriyi modellemiş olduk.
    {
        public string Adi { get; set; }
        public string Soyadi { get; set; }
        public byte Yasi { get; set; }
        public string CepTelefonu { get; set; }
        public string Adresi { get; set; }



        string _krediKartiNumarasi; // kredi kartı numarasının son 4 hanesini göstereceğiz
        public string KrediKartiNumarasi
        {
            // 1. yöntem:
            //get // kredi kartı numarasının son 4 hanesi dışında olan haneleri gizleyip sonundaki son 4 hane ile beraber dönüyoruz
            //{
            //    return "**** **** **** " + _krediKartiNumarasi.Substring(15);
            //}
            //set // kredi kartı numarasını obje üzerinden atanan değer olarak set ediyoruz
            //{
            //    _krediKartiNumarasi= value;
            //}

            // 2. yöntem:
            get => "**** **** **** " + _krediKartiNumarasi.Substring(15);
            set => _krediKartiNumarasi = value;
        }



        public bool KadinMi { get; set; } // obje üzerinden true veya false olarak set edilecek



        // kullanıcıya obje verilerini gösterirken true ve false anlamsız olacağı için set edilen KadinMi özelliğine göre Kadın veya Erkek string'i dönüyoruz
        //public string Cinsiyeti // readonly (sadece okunur), 1. yöntem
        //{
        //    get
        //    {
        //        if (KadinMi)
        //            return "Kadın";
        //        return "Erkek";
        //    }
        //}

        public string Cinsiyeti => KadinMi ? "Kadın" : "Erkek"; // readonly (sadece okunur), 2. yöntem



        public string UnvanliTamAdi => (KadinMi ? "Bayan " : "Bay ") + Adi + " " + Soyadi;
    }
}