200 likes | 403 Views
OOP. Erişim Denetimi, Fonksiyon. Sınıf - Nesne. Sınıf , gerçek hayattaki bir nesneyi istenen bir şekilde modelleyebilmek için gerekli bütün kod ve veriyi içeren yazılım birimidir. Nesne sınıfın bir örneğidir. Somut bir niceliktir.
E N D
OOP Erişim Denetimi, Fonksiyon
Sınıf - Nesne Sınıf, gerçek hayattaki bir nesneyi istenen bir şekilde modelleyebilmek için gerekli bütün kod ve veriyi içeren yazılım birimidir. Nesne sınıfın bir örneğidir. Somut bir niceliktir.
Sınıf içindeki üye değişkenlere ve yöntemlere erişimin denetlenmesi üç farklı C# anahtar kelimesiyle sağlanır. private:sınıf dışından görünmeyen değişkenlerin ve yöntemlerin tutulduğu bölümü işaretler public: sınıf dışından görünen ve erişilebilen değişkenlerin ve yöntemlerin bulunduğu bölümü tanımlamak için kullanılır protected: Türetilmiş sınıflardan erişilebilen değişkenlerin ve yöntemlerin bulunduğu bölümdür. Dışarıdan görülmez ama türetilmiş sınıflardan erişilir.
Sınıf tanımında varsayılan erişim denetimi private’dır. Sınıf tanımına başlarken, hiç bir erişim denetimi anahtar kelimesi yazılmazsa, private olarak alınır.
ÖRNEK usingSystem; usingSystem.Collections.Generic; usingSystem.Linq; usingSystem.Text; namespace ConsoleApplication1 { publicclass Nokta { //fonksiyon dışında erişilemeyen değişkenler privatedouble x; privatedouble y; // orijinden uzaklığı bulanfonksiyon tanımı publicdoubleorijindenUzaklik() { Console.WriteLine("x number:"); int x = Convert.ToInt16(Console.ReadLine()); Console.WriteLine("y number:"); int y = Convert.ToInt16(Console.ReadLine()); return Math.Pow(x * x + y * y, 0.5); } } }
Main(program.cs) usingSystem; usingSystem.Collections.Generic; usingSystem.Linq; usingSystem.Text; namespace ConsoleApplication1 { class Program { staticvoidMain(string[] args) { Nokta islem = new Nokta(); Console.WriteLine( islem.orijindenUzaklik()); Console.ReadLine(); } } }
Fonksiyonlar Nesne Tabanlı Mimaride sınıflar için tanımlanmış özellikler: Kapsülleme-Saklama(Encapsulation) Polimorfizm-Çok biçimlilik(Polymorphism) Kalıtım(Inheritance) Bu özellikleri incelemeden önce sınıfların içerisinde tanımlanan fonksiyonları inceleyelim.
Fonksiyonlar Fonksiyonlar belirli bir işi gerçekleştirmek amacı ile yazılmış değişkenler ve ifadeler kümesidir. Belirli tipte parametreler alarak belirli tipte sonuçlar döndürürler. Programın diğer bölümlerinden tekrar tekrar çağırılabilirler. yazım şekli : dönen_tip FonksiyonAdı(Aldığı Parametreler)
Fonksiyon Fonksiyonlar bir sınıf içerisinde bulunmalıdır. Bir sınıfın içerisinde bulunmayan, kendi başına bir fonksiyon yazılamaz. yazım şekli: publicclassnewClass { publicvoidnewFunction() { ………….. } }
Fonksiyon void kelimesi, fonksiyonun herhangi bir değer döndürmeyeceğini belirtir. () parantezleri Main'in bir fonksiyon olduğunu belirtir. Parantez içinde fonksiyona gönderilecek parametreler belirtilebilir. • Main(string[] args) fonksiyonu içine string[] tipinde değerler gönderilebileceğini anlatan parametre kullanılmıştır. Çoğunlukla fonksiyonlar parametre listesi isterler. Bu parametrelere göre işlem yapar ve sonuç döndürürler.
Fonksiyon privatefloat toplam(int a,int b,intc) • toplam ismindeki fonksiyon a, b ve c isminde üç parametre istemektedir. • Fonksiyonun döndürdüğü sonuç değeri float tipindedir. • Ana programda fonksiyon çağrıldığında a, b ve c değişkenlerine, değer yüklenir.
Fonksiyon privatefloat toplam( int a, int b, int c) { floatt; t = a + b + c ; returnt; } a, b ve c değişkenleri sadece toplam fonksiyonu içinde geçerlidir. Fonksiyon içinde tanımlanan t değişkeni de sadece bu fonksiyon içinde oluşturulmuştur ve çıkışta silinir. Scop içerisinde tanımlı yerel değişkenler
Fonksiyon Fonksiyon return anahtar kelimesiyle bir değer döndürür. Eğer dönen tip void olursa, return deyimi genelde kullanılmaz. returnanahtar kelimesinin döndürdüğü değişken veya değerin tipi fonksiyonun tanımında verilen tiple aynı olmalıdır.
Fonksiyon privatefloat toplam( int a, int b, int c) { floatt; t = a + b + c ; returnt; }
Fonksiyon Fonksiyonun çağrılmasında, fonksiyon tanımı dikkate alınır. Sadece veri tipleri yazılmaz ve değerler sabitler yada değişkenler olabilir. Genellikle, fonksiyondan gelen değer bir değişkene atanır. deger = toplam( i, j, k ) ; veya deger= toplam( 5, x, 2.7 ) ;
Fonksiyon NOT: Main() fonksiyonu içinde toplam fonksiyonu çağrıldığında main()’in veri alanında bulunan değerler toplam() fonksiyonunun veri alanına kopyalanır.
ÖRNEK Bir sayının faktöryelini alan fonksiyonu ve bulunduğu sınıfı yazınız. • Fonksiyon 0'dan küçük değerler için 0 • 1 ve 0 için 1 • 2'den büyük sayılar için hesaplanan faktöriyel değerini döndürecek. Ana programda 1'den başlayıp klavyeden girilen değere kadar olan sayıların faktöryeli ekrana yazdırılacak.
class usingSystem; usingSystem.Collections.Generic; usingSystem.Linq; usingSystem.Text; namespace ConsoleApplication2 { classfonk { publicintFaktor(int x) { intsonuc = 1; if (x < 0) return 0; if (x == 0 || x == 1) return 1; for (int j = 2; j <= x; j++) sonuc =sonuc*j; returnsonuc; } } }
Main program usingSystem; usingSystem.Collections.Generic; usingSystem.Linq; usingSystem.Text; namespace ConsoleApplication2 { class Program { staticvoidMain(string[] args) { Console.WriteLine("sayi="); int y = Convert.ToInt16(Console.ReadLine()); fonk a = newfonk(); for (int i = 1; i <= y; i++) { Console.WriteLine(a.Faktor(i)); } Console.ReadLine(); } } }
SORU Değerlerini kullanıcının belirlediği iki parametre alan, bu değerlerin farkının faktöryelini döndüren fonksiyonu yazınız. Fonksiyonun ismi: intfaktoryel_fark(int a, int b)