NESNE TABANLI PROGRAMLAMA-1 DERS UYGULAMALARI (22 EYLÜL - 14 KASIM 2014) //Class (Sınıf) // Sınıf (class) soyut veri tipidir. // Nesne (object) sınıfın somutlaşan bir cismidir. // static : nesnesi oluşturulmaz. // non-static : nesnesi oluşturulabilir. // static sınıf içerisinde sadece static metot bulunur // static olmayan sınıf içerisinde static veya static olmayan metot bulunabilir //Sınıf Üyeleri: // Değişkenler // Özellikler // Metotlar // Olaylar // Delegeler //Erişim İzinleri : Herhangi bir sınıf veya sınıf üyesine erişim türü // public : Genel erişim. Bütün sınıflar erişebilir. // private : Özel erişim. Sadece tanımlandığı sınıf erişebilir. // protected : Korumalı erişim. Tanımlandığı sınıf ve miras alan sınıflar erişebilir. // internal : Aynı isim alanındaki diğer sınıflar erişebilir. // protected internal : Aynı isim alanında olan sınıf veya miras alan sınıflar erişebilir. //metot //Sınıf1.Topla(5,2); Sınıf1.Metot1(); Sınıf2.Metot2(); class Sınıf1 private static int Topla(int a, int b) return a + b; public static int Çıkarma(int a, int b) return a - b; protected static int Çarp(int a, int b) return a * b; public static void Metot1() Console.WriteLine(Topla(3,5)); class Sınıf2 : Sınıf1 public static void Metot2() Console.WriteLine(Çarp(3,5));
//Öğrenci sınıfı oluşturulur //Öğrencinin Adı, Doğum Yılı belirlenir //Doğum Yılının sadece 1990 ile 2000 arasında değer olması sağlanır. // (varsayılan doğum yılı 1990 kabul edilir) //Öğrencinin doğum yılına göre yaşını hesaplayan özellik oluşturulur //Öğrencinin Adını ve Yaşını gösteren ToString metodunu oluşturulur Öğrenci öğr1 = new Öğrenci() Ad = "ali", DogumYil = 1980 ; Öğrenci öğr2 = new Öğrenci() Ad = "veli", DogumYil = 2005 ; Öğrenci öğr3 = new Öğrenci() Ad = "selami", DogumYil = 1995 ; Console.WriteLine(öğr1); Console.WriteLine(öğr2); Console.WriteLine(öğr3); class Öğrenci int _dogumyil = 1990; public string Ad get; set; public int DogumYil get return _dogumyil; set if (value >= 1990 && value <= 2000) _dogumyil = value; public int Yas get return DateTime.Now.Year - this.dogumyil; public override string ToString() return String.Format("0 1", Ad, Yas);
//Özellikler // Değişken gibi değer alabilen, metotlar gibi kod yazılabilen sınıf üyeleridir // İsimlerinden sonra parantez yazılmaz // Sadece bir değer alır // Sadece bir değer geri döndürür // Atama işlemlerinde eşitliğin sağında veya solunda bulunabilirler // Özelliğin iki kısmı vardır. // get (almak) : Özellik değerini elde etmek için kullanılır // set (kurmak) : Özellik değerini değiştirmek için kullanılır X = 5;//set int a = X;//get Console.WriteLine(a); Y = 8; int b = Y; Console.WriteLine(b); //değişken gibi değer alabilen özellik public static int X get; set; //metot gibi kod yazılabilen özellik static int _y=13; public static int Y get return _y; set if (value >= 1 && value <= 50) _y = value; //Metotlar: // Kod bloklarının tekrar kullanılmasını sağlayan sınıf üyeleridir // İsimlerinden sonra parantez yazılır // Birden fazla değer alabilir // Birden fazla değer döndürebilir // Atama işlemlerinde eşitliğin sol tarafında yer almaz // Metot() = 5; //hatalı kullanım // int a=metot(); // Metot içerisinde metot tanımlanamaz //Metot Tanımlama: // Erişim_türü static? veri_türü metot_adı(parametreler)... // Aynı metot isimleri birden fazla tanımlanabilir // Aynı isimdeki metotların parametre veri tipleri veya parametre sayıları farklı olmalıdır
Yaz(); Yaz("veli"); Yaz("selami", 11); Bekle(3); Yaz("oya", 30, 15); Yaz("ipek", 20, 5, 14); Bekle(); public static void Bekle() Console.Read(); static void Bekle(int saniye) System.Threading.Thread.Sleep(saniye * 1000); public static void Yaz() Yaz("ali"); public static void Yaz(string s) Console.WriteLine(s); public static void Yaz(string s, int renk) Renk(renk); Yaz(s); public static void Yaz(string s, int sol, int üst) Git(sol, üst); Yaz(s); public static void Yaz(string s, int sol, int üst, int renk) Renk(renk); Git(sol, üst); Yaz(s); public static void Renk(int renk) Console.ForegroundColor = (ConsoleColor)(renk % 16); public static void Git(int sol, int üst) Console.CursorLeft = sol; Console.CursorTop = üst;
//Metotlardan değer döndürme //İki sayının toplamını hesaplayan metot int x = Topla(4, 5); Console.WriteLine(x); Console.WriteLine(Topla(2, 6)); static void Metot() /*...*/ return; static int Topla(int a, int b) return a + b; //Metotlardan birden fazla değer elde etme //out: metottan değer almak için kullanılır //ref: metoda değer göndermek ve metottan değer almak için kullanılır //İki sayının toplamını ve farkını hesaplayan metot int t = 9, f; İşlem(6, 2, ref t, out f); Console.WriteLine("Toplam:0, Fark:1", t, f); static void İşlem(int a, int b, ref int toplam, out int fark) toplam = a + b + toplam; fark = a - b; //Rastgele üretilen 100 sayının toplamını ve ortalamasını hesaplayan metot Random rnd = new Random(); int[] dizi = new int[100]; for (int i = 0; i < dizi.length; i++) dizi[i] = rnd.next(1000); int toplam; double ortalama; İstatistik(dizi, out toplam, out ortalama); Console.WriteLine("Toplam:0, Ortalama:1", toplam, ortalama); static void İstatistik(int[] dizi, out int toplam, out double ortalama) toplam = 0; foreach (var item in dizi) toplam += item; ortalama = (double)toplam / dizi.length;
//Metotların farklı miktarlarda parametre alabilmesi //topla(1,2) //topla(1,2,3) //topla(1,2,3,4) //iki veya üç sayının toplamını bulan metot. Console.WriteLine(Topla(1, 2)); Console.WriteLine(Topla(1, 2, 3)); static int Topla(params int[] dizi ) int top = 0; foreach (var item in dizi) top += item; return top; //Kelimeleri birleştiren metot. //Kelime aralarında istenen işaret olacak //ali topu tut -> ali,topu,tut Console.WriteLine(Birleştir('-', "ali", "topu", "tut","sakın","bırakma")); static string Birleştir(char ayraç, params string[] kelimeler) string s = ""; foreach (var item in kelimeler) s += item + ayraç.tostring(); s=s.trimend(ayraç); return s; ------------------------------------------ VİZE ----------------------------------