ÜNİTE. NESNE TABANLI PROGRAMLAMA I Okt. Mustafa AKBUĞA İÇİNDEKİLER HEDEFLER SINIFLAR
|
|
- Kelebek Karakaş
- 7 yıl önce
- İzleme sayısı:
Transkript
1 SINIFLAR İÇİNDEKİLER Sınıflar Sınıf Tanımlama Ve Kullanma Sınıflara Metot Eklemek Yapıcı Metotlar Kopyalayıcı Metotlar Yıkıcı Metotlar Statik Sınıflar NESNE TABANLI PROGRAMLAMA I Okt. Mustafa AKBUĞA HEDEFLER Bu üniteyi çalıştıktan sonra; Sınıf tanımlayıp programlar içerisine ekleyebilecek, Sınıflar içerisine yeni metotları yapılandırabilecek, Statik sınıflar için değişken ve metotlar kullanabileceksiniz. ÜNİTE 10
2 GİRİŞ Nesne Tabanlı programlama tekniği (Object Orianted programming) birbirinin özellik ve metotlarını kullanabilen, gerektiğinde diğerinin kodlarını alıp yeni kodlar eklenebilen sınıflardan oluşur. Sınıf kavramı belli bir veya birden çok ortak özellikleri olan varlıkları tanımlamaya yarayan soyut bir kavramdır. Nesne ise bir sınıfa ait belirgin bir öge, bir varlıktır. Virtual C# programlama dili %100 nesne tabanlı bir dildir. Bu programlama dilinde yazılım yaparken, çözülmesi istenen problemler genelde çeşitli parçalara ayırılır. Her bir parça problemin küçük bir çözümü olacak şekilde özel olarak kodlanır. Sonuçta bütün bu parçaların bir araya getirilmesi sonucu yazılım tamamlanır. Eğer bir yazılım bu şekilde yazılmışsa, nesne tabanlı programlama yapılmıştır denebilir. Sınıflar nesne yönelimli programlamanın en önemli ögesidir. Bu kavramı iyi anlamak, her türlü teknikte, sınıfların avantajlarından yararlanmanıza ve kendinize özel yeni nesneler oluşturmanıza olanak sağlar. Bu bölümde sınıfların tanımlanma yöntemleri, sınıflar içerisinde kullanılan yapıcı, kopyalayıcı, yıkıcı metotlar ile statik üye elemanlar anlatılacaktır. SINIFLAR Nesne Tabanlı Programlama Tekniği yle geliştirilen programların her bir çözüm parçasına nesne, nesnelerin c# kod karşılıklarına da sınıf denmektedir. Sınıfların üye elemanları ise değişkenler (özellik) ve metotlardır. Metotlar bir veya daha fazla komutun bir araya getirilmiş hâlidir; parametre alabilirler, geriye değer döndürebilirler. Özellikler ise bellek hücrelerinin programlamadaki karşılıklarıdır. Bu bakımdan özellikler değişkenlere benzerler. Aradaki en temel fark değişkenlerin bir metot içinde tanımlanıp yalnızca tanımlandığı metot içinde etkinlik gösterebilmesine rağmen özelliklerin, tıpkı metotlar gibi bir üye eleman olmasıdır. Bu bakımdan özelliklerin tuttuğu değerlere daha fazla noktadan erişilebilir. Bu yukarıda yapılan tanımların hepsi soyut kavramlardır. Bu nedenle bu kavramları, daha anlaşılır yapmak için bir örnekle açıklayalım; Bilgisayar denilince her birimizin kafasında bir kavram (sınıf) gelir. Muhtemelen ilk aklımıza gelen; cep telefonları, tablet bilgisayarlar ve diz üstü bilgisayar gibi taşınabilir bilgisayarların bulunduğu sınıftır. Ama biraz düşününce bunlara iş bilgisayarlarını (masaüstü bilgisayar, server, süper bilgisayarlar) da ekleyebiliriz. Bütün bunların ortak bir özelliği vardır. Hepsinin elektrikle ya da bataryayla çalışan elektronik devreleri vardır. Bilgisayar demek yerine, taşınabilir bilgisayar dersek sınıfa giren ögeleri biraz daha sınırlamış oluruz. Bu sınıftakilerin iki çekirdekli, dört çekirdekli gibi işlemcilere sahip olduğunu, gittiğimiz her yerde internete girmemizi sağlayan yeteneklerinin bulunduğunu, bataryalarının bitince sürekli şarj edilmesi gerektiğini anlarız. Bilgisayarlar sınıfı, taşınabilir bilgisayar sınıfının bir üst sınıfıdır. Kavramı biraz daha daraltalım ve cep telefonları diyelim. Bu sınıf, taşınabilir bilgisayar sınıfının bir alt sınıfıdır. Ama hâlâ seçenekler çoktur. Cep telefonu markaları, modelleri, renkleri, işlemcileri, bellek özellikleri vb. nitelikleri farklıdır. Belli bir markayı, örneğin Apple marka cep telefonları sınıfını düşünebilirsiniz, bu sınıfa ait olan Atatürk Üniversitesi Açıköğretim Fakültesi 2
3 özelikleri daha iyi tanıyor olacaksınız. Bu sınıfın model, renk, ekran büyüklüğü, şarj ve bağlantı girişleri vb. nitelemelerle istediginiz kadar daraltabiliriz. Fakat bir cep telefonu sınıfı somut bir cep telefonuna (bir cisim olarak) eş değildir. Öte yandan, diyelim ki arkadaşımıza ait Apple marka cep telefonu somut bir varlıktır. Bu Cep telefonu, taşınabilir bilgisayar sınıfına, wifi bağlantıya sahip cep telefonu sınıfına ait bir nesnedir, somut bir varlıktır. Bu cep telefonunun ekran kalitesi, bellek büyüklüğü, işlem hızı gibi nitelikleri, hep ait olduğu sınıf tarafından belirlenir. Sınıf Tanımlama ve Kullanma: Sınıf bildirimleri class anahtar sözcüğü kullanılarak yapılır. Sınıf isminden sonra sınıf içindeki üye eleman ve metotlar tanımlanır. Basit bir sınıf tanımı aşağıdaki şekilde yapılabilir: class sınıf_ismi. } Yukarıdaki bildirimde class anahtar sözcüğü kullanılarak kullanıcı tanımlı, bir sınıf oluşturulmuştur. Class isminden sonra sınıf_ismi yer almaktadır. Sınıf üyeleri ise küme parantezleri ( } ) içisine yerleştirilir. Sınıf gövdesi yukarıdaki gibi boş bırakılabilir. Fakat boş gövdeli bir sınıf hiçbir işe yaramaz. 0nun işe yarar olabilmesi için içine sabit, değişken ve metot bildirimleri (tanımları) yerleştirilmelidir. Bu tanımalara sınıfın ögeleri denir. Bir metot ve iki özelliğe sahip genel bir sınıf bildirimi aşağıdaki şekilde yapılabilir: class sınıf_ismi <erişim belirleyici><veri tipi> özellik1; <erişim belirleyici><veri tipi> özellik1; <erişim belirleyici> <geri dönüş tipi> Metot1(parametreler) Metot1 ifadeleri ve deyimleri.. } Atatürk Üniversitesi Açıköğretim Fakültesi 3
4 class anahtar sözcüğünün yanına yazılan isim sınıf ismi olarak alınır. Küme parantezleri ( } ) arasına ise ilgili sınıfa ait özellik ve metot tanımları yerleştirilmiştir. Erişim belirteçleri metot için belirtilmediği durumlarda private olarak kabul edilir. Yani sadece tanımlandığı sınıf içinde kullanılabilen bir metot özelliğine sahip olur. <erişim belirleyici> : Erişim belirteçleri metoda nerelerden erişilebileceğini belirleyen ayarlardır. Virtual C# programlama dilinde tanımlanan erişim belirleyiciler şunlardır: Private (Gizli): Bir değerin private olarak tanımlanması demek, o değişkene sadece kendi class ı içinden ulaşılabileceği anlamına gelmektedir. Program içinde kesinlikle değiştirilmemesi gereken, önemli kodlarda kullanılmaktadır. Public (Genel): Bir değerin public olarak belirtilmesi; o değerin, kod içinde herhangi bir yerden erişilebilir durumda olmasını sağlamaktadır. Public erişim belirleyici tipinde hiçbir kısıtlama yoktur. Protected (Korunumlu): Kod içinde bir değerin protected olarak tanımlanması; o değere, değerin bulunduğu class ve ondan türetilen diğer sınıflar içinden erişilebilileceğini göstermektedir. Protected; bir anlamda, public ve private erişim belirleyicilerinin birleşimi olarak görülebilmektedir. Internal (İçsel): Internal olarak tanımlanan bir değer; aynı program içerisinden erişilebilir;fakat farklı bir program içerisinden erişilemez durumdadır. Program içerisinde herhangi bir kısıtlaması yoktur. Protected Internal (İçsel Korunumlu): Protected internal olarak tanımlanmış değer, tanımlandığı class ın içinden ve ondan türetilen sınıfların içinden erişilebilir durumdadır. Türetilen sınıfın aynı program içinde olmaması sorun teşkil etmez. <veri tipi> özellik1 : Tanımlanan sınıf içinde kullanılabilen özellik1 e (değişkenlere) ait veri tipini gösterir int, float, string, bool..vb. türlerinden biri olabilir. Metot1: Her bir metot tanımlanırken metota mutlaka bir isim verilir. Metot çağrılırken verilen bu isim kullanılarak çağırma işlemi yapılabilir. (Parametre listesi): Parametreler ise Metot1 in çalışırken ihtiyaç duyduğu çağıran fonksiyondan gönderilen bilgileridir. Atatürk Üniversitesi Açıköğretim Fakültesi 4
5 Örnek tanıtım şekli Program_1 de gösterilmiştir. Program_1: using System; class Ders private string Isim; public void IsimAl(string isim) Isim = isim; Console. WriteLine(Isim); } static void Main() Ders Yeni = new Ders(); Yeni. IsimAl("C# Programlama dili"); } } Yukarıdaki örnekte Ders isimli bir sınıf tanımlanmıştır. Bu sınıfın Isim adlı bir üye değişkeni, IsimAl adında bir metodu bulunmaktadır. Program çalıştırıldığında İlk olarak; using System; deyimi çalıştırılır. İkinci olarak; class Ders, deyimi ile Ders adında bir sınıf oluşturmaktadır. Üçüncü olarak; private string Isim; Isım adındaki string türündeki sınıfa ait üye değişkenini alır. Dördüncü olarak; static void Main(), Main metodunu çalıştırır. Dikkat edilirse Sınıf içindeki IsimAl metodu Main metodundan önce olmasına rağmen (sırası gelmesine rağmen) çalıştırılmamıştır. Sınıfa ait metodlar Main metodu içinden çağrılmadıkça çalışmazlar. Main metodu çalıştırıldığında küme parantezi içindeki kodlar sırasıyla çalıştırılır. Main metodunda ilk olarak Ders Yeni = new Ders(); deyimi çalışır ve Ders sınıfı türünden bir Yeni isimli bir nesnenin tanımlamasını yapar. İkinci olarak; Yeni. IsimAl("C# Programlama dili"); deyimi ile Yeni nesnesinden IsimAl metoduna C# Programlama string tipindeki isim değişkeni parametre olarak gönderir ve isim değişkeni Isim adlı üye değişkene değerini aktarak Şekil 10.1 deki gibi ekrana yazdırılır. Şekil Program_1 in ekran görüntüsü Atatürk Üniversitesi Açıköğretim Fakültesi 5
6 Bu program_1 de verilen uygulamada; IsimAl metodu ile Main metodu aynı sınıf içerisinde yer almaktadır. Programlama yaparken sade bir görünüm sağlamak amacıyla Main metoduyla, hazırlanan metotlar genellikle farklı sınıflar içerisine yerleştirilir. Bu şekildeki bir tanımlama örnek Program_2 de gösterilmiştir. Örnek Program_2: Şekil Ders ve Uygulama sınıflarının bildirimini gösteren C# kodu Şekil Program_2 ye ait ekran görüntüsü Şekil 10.2 de kırmızı okla gösterilen örnek program_2 de program_1 den farklı olarak Ders ve Uygulama olmak üzere iki ayrı sınıf tanımlanmıştır. Ders sınıfı içerisinde kullanıcı tanımlı bir metot ve Uygulama sınıfının içinde ise Main metodu yerleştirilmiştir. Main metodunun içinden Ders sınıfının içine gönderilen string değer Nesne Tabanlı Programlama 1 ile değiştirilmiştir. Main metodu içindeki kodlamada değişiklik yapılmamıştır. Ders sınıfı içinde string tipindeki Isim üye değişkenine Nesne Tabanlı Programlama 2 değeri atanmıştır. Ayrıca bu değeri ekrana yazdırma kodu eklenmiştir. Ayrı ayrı sınıflardaki metodlarda, bir sınıftaki üye değişken ya da metodu kullanabilmek için <erişim belirleyici> olarak public anahtar sözcüğü kullanılmalıdır. Atatürk Üniversitesi Açıköğretim Fakültesi 6
7 Ticari programlar geliştirirken; programcılar, tasarımcılar, muhasebeciler gibi birçok farklı meslek mensubu bir araya gelmekte ve yazılan kodlar farklı kişilerce, farklı zamanlarda hazırlanarak birleştirilmektedir. Bu durumda aynı dosya içinde farklı sınıflar yerine, farklı sınıflar ve dosyalar hazırlanıp paketlenebilmektedir. Bu şekildeki bir tanımlama örnek Program_3 de gösterilmiştir. Örnek Program_3: Örnek Pogram_2 hazırlanırken şekil 10.4 teki kod penceresi kullanılmıştı. Şimdi örnek program_3 u yapabilmek için Şekil 10.5 te gösterilen Project>Add class komutu verilerek Şekil 10.6 de gösterilen Name kısmına class2 ismini yazarak Add komutunu vererek Şekil 10.7 deki kod penceresini hazırlayınız. Şekil 10.8 de gösterilen kodları Main metodunun içerisine yazın ve program. cs dosyasına kaydedin. Daha sonra Şekil 10.9 da gösterilen kodları ise Ders sınıfının içindeki IsimAl metoduna yazarak Class2.cs dosyasına kaydedin. Ctrl+F5 kısa yolunu ya da DEBUG>Start Without Debuggin komutunu kullanarak rpgramı çalıştırın. Programın çalışması sonrası Şekil da gösterilen ekran çıktısı görülecektir. Bu örnek program_3 teki kodlar; iki farklı sınıf tanımlanarak yazılmış ve iki farklı dosyaya yazılarak çalıştırılmıştır. Şekil Program sınıfının yazılmasını sağlayan kod penceresi Atatürk Üniversitesi Açıköğretim Fakültesi 7
8 Şekil Project>Add class komutunun verilme şekli Şekil Class2 isimli sınıfın projeye eklenmesi Atatürk Üniversitesi Açıköğretim Fakültesi 8
9 Şekil Class2 sınıfının yazılmasını sağlayan kod penceresi Şekil Örnek Program_3 e ait Main metodunun yazılma şekli Şekil Örnek Program_3 e ait Ders metodunun yazılma şekli Atatürk Üniversitesi Açıköğretim Fakültesi 9
10 Şekil Örnek program_3 ün çalışması sonrası ortaya çıkan ekran çıktısı this Anahtar Sözcüğü: Metotlar içinde başka bir sınıfa ait nesnelerin özellikleri ve metotları kullanılabilir. Nesnenin üyeleri ile metot içindeki tanımlamalar bazen aynı olabilir. Bu durumda metot değişkenleri ile nesnenin üyelerini birbirinden ayırmak için this anahtar sözcüğü kullanılır. this anahtar sözcüğü ilgili nesnenin referansını belirtir. this anahtar sözcüğü, içinde bulunulan nesneye ait bir referans döndürür. this anahtar sözcüğü ile ilgili bir kullanım örnek Program_4 te gösterilmiştir. Örnek Program_4: this anahtar sözcüğü sayesinde nesnelere ait global alanlara erişme fırsatı bulunur. Şekil Örnek Program_4 e ait kod görüntüsü Şekil Örnek Program_4 e ait ekran çıktısı Atatürk Üniversitesi Açıköğretim Fakültesi 10
11 set ve get Anahtar Sözcükleri: Bir nesnenin üye değişkenlerine değer atarken ya da içerisindeki değeri kullanırken belli kontrollerin yapılması gerekiyorsa ya da kod bloklarının çalıştırılması isteniyorsa set ve get ifadeleri kullanılır. set sözcüğü nesnenin özelliklerine değer atandığında çalışır. get sözcüğü ise özellik değeri okunduğunda ya da farklı bir ifadeye aktarılmaya çalışıldığında çalışır. set ve get yönteminin daha iyi anlaşılabilmesi için aynı işlemi yapan iki program örneği; örnek program_5 te metotlar kullanılarak, örnek program_6 da ise set ve get yöntemi kullanılarak yapılmıştır. Örnek Program_5: Şekil Program_2 nin ekran görüntüsü Atatürk Üniversitesi Açıköğretim Fakültesi 11
12 Şekil Program_2 nin ekran çıktısı Örnek Program_6: Şekil Program_2 nin ekran görüntüsü Şekil Program_2 nin ekran çıktısı Atatürk Üniversitesi Açıköğretim Fakültesi 12
13 C# 2.0'da ya da daha üst versiyonlarda bir sahte özelliğin, set ve get blokları ayrı ayrı private veya public anahtar sözcükleriyle belirtilebilir. C# ta tüm sınıflar (class) tanımlansın ya da tanımlanmasın değer tiplerine sıfır, referans tiplerine null değerini atayan varsayılan bir yapılandırıcı vardır. Yapılandırıcısı tanımlandıktan sonra varsayılan yapılandırıcı bir daha kullanılmaz. 2. örnek program_6 da SahteOzellik adlı bir özellik oluşturulmuştur. Bu özellik gerçekten de sahtedir. Özelliğe bir değer atanmaya çalışıldığında set bloğundaki, özellik kullanılmaya çalışıldığında da get bloğundaki komutlar çalıştırılır. Aslında C# kütüphanesindeki özelliklerin çoğu bu yöntemle oluşturulmuştur. Örnek Programlarda görüldüğü gibi, değişkenin değerini değiştirdiğimizde çalışmasını istediğimiz kodları set blokları arasına yazarız. Herhangi bir sahte özelliğin set veya get bloklarından yalnızca birini yazarak o özelliği salt okunur veya salt yazılır hâle getirmek mümkündür. Sınıflara Metot Eklemek Bir defa sınıfın yapısı tasarlandıktan sonra istenildiği kadar yeni metot eklenebilir. Bu metodlar Yapıcı Kopyalayıcı ve Yıkıcı olmak üzere üç çeşide ayrılabilir. Yapıcı Metotlar Yapılandırıcıların görevi, oluşturulan nesneyi ilk kullanıma hazırlamasıdır. Bir nesnenin dinamik olarak yaratıldığı anda otomatik olarak çalıştırılan metotları vardır. Bu metotlar sayesinde bir nesnenin üye elemanlarına ilk değerler verilebilir ya da gerekli ilk düzenlemeler yapılabilir. Bu metotlara yapıcı metotlar (constructors) denir. Yapıcı metot tanımlanmasa dahi her sınıfın varsayılan bir yapıcı metodu (default constructor) mutlaka bulunur. Bir nesne oluşturulduğunda sayısal değerler için 0, referanslar için null, bool türü için false atanır, bu atama bir yapıcı metot ile gerçekleştirilir. Yapılandırıcıların bilinen temel özellikleri şunlardır: Yapıcıların dönüş değeri yoktur, isimleri sınıf ile aynı isimdir. Varsayılan yapıcı metodun parametresi yoktur. Sadece nesnenin üye elemanlarına varsayılan değerlerini atar. Yapıcı metotlar bir değer tutamaz. Ancak normal metotlardan farklı olarak void anahtar sözcüğü de kullanılmaz. Yapıcı metotlar dışarıdan çağrıldığı için genelde public olarak tanımlanır private olursa dışarıdan erişilemez. Eğer kendi yapıcı metodumuzu tanımlarsak varsayılan yapıcı metotlar çalıştırılmaz. Yapıcı metotlar ile ilgili bir kullanım örnek program_7 de gösterilmiştir. Atatürk Üniversitesi Açıköğretim Fakültesi 13
14 Örnek Program_7: Şekil Örnek Program_7 nin ekran görüntüsü Şekil Örnek Program_7 nin ekran çıktısı Şekil 10.7 de Toplam sınıfı içinde bir yapıcı metot tanımlanarak AnaProgram sınıfı içindeki Main metodunda çağrılmıştır. Programın çalışması sonucu Şekil de ekran çıktısı görülecektir. Kopyalayıcı Yapıcı Metotlar: Bir Yapıcı metot, parametre olarak kendi sınıfından bir nesne alıyorsa kopyalayıcı metot adını alır. Kopyalayıcı Yapıcı metotlar ile ilgili bir kullanım örnek program_8 de gösterilmiştir. Atatürk Üniversitesi Açıköğretim Fakültesi 14
15 Örnek Program_8: Şekil Örnek Program_8 in ekran görüntüsü Şekil Örnek Program_8 in ekran çıktısı Yapıcı metotlar dışarıdan çağrıldığı için genelde public olarak tanımlanırlar. Şekil da kırmızı okla gösterilen public Toplam(Toplam T) satırında bir kopyalayıcı yapıcı metot tanımlanarak AnaProgram sınıfı içindeki Main metodunda çağrılmıştır. Programın çalışması sonucu Şekil deki ekran çıktısı görülecektir. Yıkıcı Metotlar: Nesnelere erişim mümkün olmadığı durumlarda bu nesnelerin heap ten silinmesi amacıyla kullanılır. private olursa dışarıdan erişilemez. Bu durumda yıkıcı metotlar (destructors) bellek iade işleminden hemen önce çalışarak bu belleğin temizlenmesine yardımcı olurlar. Yıkıcı metotlar bildirilirken sınıf isminin önüne ~ (tilda) işareti eklenir. Atatürk Üniversitesi Açıköğretim Fakültesi 15
16 Yıkıcı metodlar aşağıda gösterilen özelliklere sahiptir. Herhangi bir dönüş değeri ve parametresi yoktur. Erişim belirteci (public, private) de kullanılmaz. Bir sınıfın sadece bir tane yıkıcı metodu olabilir. Yıkıcı metotlar ile ilgili bir kullanım örnek program_9 da gösterilmiştir. Örnek Program_9: Şekil de kırmızı okla gösterilen ~ Yıkıcı () satırında bir yıkıcı metot tanımlanarak AnaProgram sınıfı içindeki Main metodunda çağrılmıştır. Programın çalışması sonucunda Şekil deki ekran çıktısı görülecektir. Şekil Örnek Program_9 un ekran görüntüsü Şekil Örnek Program_9 un ekran çıktısı Örnek programda y nesnesi faaliyet alanını doldurmasına rağmen hemen yok edilmemiştir. Bir alt satırda bulunan Console. WriteLine() metodu çalışmış ardından gereksiz nesne toplayıcısı işleyerek nesneyi silmiştir. Nesne yok edilirken de yıkıcı metodu çalıştırılmıştır. Gereksiz nesne toplayıcı (Garbage Collector), programcının isteği dışında çalışmaktadır. System. GC sınıfı kullanılarak istenilen Atatürk Üniversitesi Açıköğretim Fakültesi 16
17 anda bu mekanizma çalıştırılabilir. Gereksiz nesne toplayıcının çağrılmasıyla ile ilgili bir kullanım örnek program_10 da gösterilmiştir. Örnek Program_10: C# ta yıkıcı metotlar genelde nesnenin kullandığı bellek alanını iade etmek için deyiğ de daha çok nesne yok edilirken birtakım işlemlerin yapılması ya da değiştirilmesi için kullanılır. Şekil Örnek Program_10 un ekran görüntüsü Static Sınıflar Şekil Örnek Program_10 un ekran çıktısı İçinde sadece statik üye elemanlar barındıran sınıflar statik sınıflar olarak tanımlanır. Bir sınıf statik olarak bildirildiğinde o sınıf türünden bir nesne yaratılamaz. Statik metotlar C# 2,0 den itibaren dile eklenmiştir. Statik sınıflar içerisinde static olmayan metot veya özellik tanımlanamaz. Statik sınıfların yapıcı metotları olmaz. Dolayısıyla yapıcı metot tanımlamaya çalışırsak derleyici hata verir. Statik sınıflar türetmeyi desteklemez. Static classlar ve class üyeleri (değişkenler, metotlar), o sınıfın bir instance ını oluşturmadan erişilebilir olmaları için kullanılabilir. Atatürk Üniversitesi Açıköğretim Fakültesi 17
18 Statik Üye Elemanlar Statik elemanlar bir sınıfın global düzeydeki elemanlarıdır ve uygulamanın her yerinden çağrılabilir. Daha önce de belirtildiği gibi metotlara sınıflar üzerinden erişilir. Bazı durumlarda ise sınıf türünden nesneler oluşturulur ve bu nesneler üzerinden ilgili metoda erişebiliriz. Statik üyeleri kullanmak için herhangi bir nesne tanımlamamıza gerek yoktur. Bir üye elemanın statik olduğunu bildirmek için bildirimden önce statik anahtar sözcüğü eklenir. Bir sınıf nesnesi oluşturulduğunda static üye elemanlar için bellekte ayrı bir yer ayrılmaz. Nesne ile doğrudan iş yapmayan metotlar statik olarak tanımlanabilir. Statik tanımlanan metotlara SınıfAdı.Metot şeklinde erişilir. Statik metotlara nesne üzerinden erişmek mümkün değildir. Statik Değişkenler Herhangi bir nesne ile statik değişkenlere ulaşmamız mümkün değildir. Statik değişkenler sınıf içersinde global özellikler tanımlamak için kullanılırlar. Bu değişkenler tanımlandıklarında varsayılan değere atanırlar. Statik üyelere ancak statik bir metot içerisinden erişilebilir. Statik değişkenlerle ilgili bir kullanım örnek program_11 de gösterilmiştir. Örnek Program_11: Şekil Örnek Program_11 in ekran görüntüsü Şekil Örnek Program_11 in ekran çıktısı Atatürk Üniversitesi Açıköğretim Fakültesi 18
19 Statik Metotlar: Static anahtar sözcüğü erişim belirleyiciden önce ya da sonra yazılabilir. Main() metodu da herhangi bir nesneye ihtiyaç duymadan çalışabilmesi için statick olarak tanımlanmaktadır. Eğer statik olarak tanımlanmasaydı metodun çalışabilmesi için, içinde bulunduğu sınıf türünden bir nesneye ihtiyaç olacaktı. Bu durumda da Main metodu işlevi ile çelişecekti. Çünkü Main metodu programımızın çalışmaya başladığı yerdir. Statik tanımlanmış metotlar içinden diğer statik metotlar çağrılabilir, normal metotlar çağrılamaz. Normal metotlar nesne gerektirdiği için nesne adreslerine ihtiyaç duyarlar (bu adresler gizli şekilde ya da this ile aktarılır). Statik metotlar sınıfın global metotlarıdır ve referansları yoktur. Bu yüzden statik bir metot içinden normal bir metot çağırmak geçersizdir. Örnek Program_12: Örnek program_12 de StatikMetodlar adında bir sınıf oluşturulmuş ve bu sınıfın içinde ise StatikMetod1 ve StatikMetod2 adında iki tane statik metot tanımlanmıştır. Main programı ise Program sınıfı içerisine yazılmıştır. Bu örnek programla statik metot ve sınıfların nasıl kullanıldığı şekil deki kod penceresinde görülmektedir. Programın çalışması sonucu Main metodu içindeki kodlar sırasıyla çalıştırılarak Şekil de gösterilen ekran çıktısı elde edilmiştir. Şekil Program_2 nin ekran görüntüsü Atatürk Üniversitesi Açıköğretim Fakültesi 19
20 Şekil Örnek Program_12 nin ekran çıktısı Atatürk Üniversitesi Açıköğretim Fakültesi 20
21 Özet Nesne tabanlı programlama tekniğiyle geliştirilen parogramların her bir iş yapan parçasına nesne, nesnelerin c# kod karşılıklarına da sınıf denmektedir. Bir ya da daha fazla komutun bir araya getirilmiş hâline metot denir. parametre alabilirler, geriye değer döndürebilir. Özellikler ise bellek hücrelerinin programlamadaki karşılıklarıdır. Sınıfların üye elemanları ise özellikler ve metotlardır. Sınıf bildirimleri class anahtar sözcüğü kullanılarak yapılır. Sınıf isminden sonra sınıf içindeki üye eleman ve metotlar tanımlanır. Sınıf ve metodlara nerelerden erişilebileceğini belirleyen erişim belirleyiciler vardır. Private,Public, Internal, Protected,Protected Internal olmak üzere 5 çeşittir. Bir değerin private olarak tanımlanması demek, o değişkene sadece kendi sınıfıiçinden ulaşılabileceği anlamına gelmektedir. Bir değerin public olarak belirtilmesi; o değerin, kod içinde herhangi bir yerden erişilebilir durumda olmasını sağlamaktadır. Internal olarak tanımlanan bir değer; aynı program içerisinden erişilebilir, fakat farklı bir program içerisinden erişilemez. Kod içinde bir değerin protected olarak tanımlanması; o değere, bulunduğu class ve ondan türetilen diğer sınıflar içinden erişilebilir olduğunu göstermektedir. Protected; bir anlamda, public ve private erişim belirleyicilerinin birleşimi olarak görülebilmektedir. Protected internal olarak tanımlanmış değer, tanımlandığı class ın içinden ve ondan türetilen sınıfların içinden erişilebilir durumdadır. Nesnenin üyeleri ile metot içindeki tanımlamalar bazen aynı olabilir. Bu durumda metot değişkenleri ile nesnenin üyelerini birbirinden ayırmak için this anahtar sözcüğü kullanılır. Bir nesnenin üye değişkenlerine değer atarken ya da içersindeki değeri kullanırken belli kontrollerin yapılması gerekiyorsa ya da kod bloklarının çalıştırılması isteniyorsa set ve get anahtar sözcüğü kullanılır. Sınıflar içerisinde kullanılabilen birçok metot yapısı vardır. Bunlar yapılandırıcı, kopyalayıcı ve yıkıcı metotlardır. Yapılandırıcıların görevi, oluşturulan nesneyi ilk kullanıma hazırlamasıdır. Yapıcı metot, bir nesnenin dinamik olarak yaratıldığı anda otomatik olarak çalıştırılan metotlardır. Bir yapıcı metot parametre olarak kendi sınıfından bir nesne alıyorsa kopyalayıcı metot adını alır. Yıkıcı Metotlar, nesnelere erişimin mümkün olmadığı durumlarda bu nesnelerin heap ten silinmesi amacıyla kullanılır. Statik üye elemanlar barındıran sınıflara, statik sınıflar denir. Atatürk Üniversitesi Açıköğretim Fakültesi 21
22 DEĞERLENDİRME SORULARI Değerlendirme sorularını sistemde ilgili ünite başlığı altında yer alan bölüm sonu testi bölümünde etkileşimli olarak cevaplayabilirsiniz. 1. Bir sınıf tanımında aşağıdakilerden hangisi yer almaz? a) Erişim belirteçleri b) Veri tipi c) Adlandırma ismi d) New anahtar sözcük e) class anahtar sözcük 2.Nesnelerin üyeleri ile bir metot içindeki tanımlamalar bazen aynı olabilir. Bu durumda metot değişkenleri ile nesnelerin üyelerini ayrımak için hangi anahtar sözcük kullanılır? a) out b) get c) return d) void e) this 3. Bir nesnenin üye değişkenine değer atarken aşağıdaki anahtar sözcüklerden hangisi kullanılır? a) get b) class c) void d) this 4. Varsayılan yapıcı metotların temel özellikleri ile ilgili aşağıdakilerden hangisi yanlıştır? a) Yapıcıların dönüş değeri yoktur. b) İsimleri sınıf isimleriyle aynı olmalıdır. c) Yapıcı metotlar bir değer tutmaz. d) Genellikle public olarak tanımlanır. e) Varsayılan yapıcı metotlara mutlaka parametre kullanılmalıdır. Atatürk Üniversitesi Açıköğretim Fakültesi 22
23 5. using System;. sorular static void Hesapla(ref int sayi1) sayi1=4; } static void Main() int sayi=0; Hesapla(ref sayi); }} Yukarıda verilen kodlar içerisindeki ( ) ile gösterilen boşluğa hangi anahtar sözcük gelmelidir? a) new b) class c) out d) ref e) void Atatürk Üniversitesi Açıköğretim Fakültesi 23
24 6. using System; class Toplam public int A; public int B; public...(int a, int b) A = a; B = b; } public int Islem() return A + B; } } class AnaProgram static void Main() Toplam SayılarıTopla = new...(60, 90); Console. WriteLine(SayılarıTopla. Islem()); } } Yukarıda verilen kodlar içerisindeki (...) ile gösterilen boşluklara hangi metot ismi yazılırsa yapıcı metot tanımlanmış olur? a) Ana Program b) Yavru program c) Islem d) Toplam e) SayılarıTopla 7. Yıkıcı metotlar aşağıda özelliklerden hangisine sahip değildir? a) Parametresi yoktur. b) Erişim belirleyiciler kullanılmaz. c) Her sınıfta sadece bir tane bulunmalıdır. d) Geri dönüş değeri yoktur. e) Yıkıcı metotların önüne # işareti konulmalıdır. Atatürk Üniversitesi Açıköğretim Fakültesi 24
25 8. Bir yapıcı metot parametre olarak kendi sınıfından bir nesne alıyorsa hangi yapıya sahip olur? a) Varsayılan yapıcı metot b) Yıkıcı metot c) Static matot d) Kendini çağıran metot e) Kopyalayıcı metot 9. C# ta parametre sayısı ve parametre türleri farklı olmak koşulu ile aynı isimde faklı metotlar oluşturma işlemine ne denir? a) Kendini çağıran b) Ana metot c) Yavru metot d) Fonksiyon e) Aşırı yükleme 10. Erişim belirteçleri metoda nereden erişilebileceğini belirleyen ayarlardır. Metot tanımlanırken erişim belirleyicisi belirtilmediği durumlarda metotlar için hangisi kabul varsayılan olarak seçilir? a) Public b) Protected c) Private d) Internal e) Protected internal Cevap Anahtarı: 1.D,2.E, 3.A,4.E,5.B,6.D, 7.E,8.E,9.E,10.C Atatürk Üniversitesi Açıköğretim Fakültesi 25
26 YARARLANILAN KAYNAKLAR VE BAŞVURULABİLECEK DİĞER KAYNAKLAR ALGAN, Sefer, (2010), Her Yönüyle C#, İstanbul: Pusula Yayıncılık, İstanbul. AKTAŞ, Volkan, (2013), Her Yönüyle C# 5.0, KODLAB, İstanbul. CLARK, Dan, (2013), Your visual blueprint for building.net application, 2nd Edition, Hungry Minds, New York. SCHILDT, Herbert, (2002), The Complete Reference C#, çev. Duygu Arbatlı Yağcı, Alfa Basım Yayım Dağıtım, İstanbul. SHARP, John, (2002), Microsoft Visual C#.NET, çev. Mert Derman, Arkadaş Yayınevi, Ankara. YANIK, Memik, (2004), Microsoft Visual c#.net, 1.Baskı, Seçkin Yayıncılık, Ankara. Atatürk Üniversitesi Açıköğretim Fakültesi 26
ÜNİTE. NESNE TABANLI PROGRAMLAMA I Okt. Mustafa AKBUĞA İÇİNDEKİLER HEDEFLER METOTLAR
METOTLAR İÇİNDEKİLER Metotlar Metot Oluşturma ve Kullanma Metot Parametresi Olarak Diziler Değer ve Referans Parametreleri Metotların Aşırı Yüklenmesi Kendini Çağırabilen Metotlar NESNE TABANLI PROGRAMLAMA
DetaylıSınıflar ve Yapılar Arasındaki Farklılıklar. Değer ve Referans Türde Olan Aktarımlar
Nesneler ve Türler Sınıflar ve Yapılar Arasındaki Farklılıklar Sınıf Üyeleri Değer ve Referans Türde Olan Aktarımlar Yapıcılar ve Statik Yapıcılar Read-Only Statik Sınıflar Object Sınıfı Sınıflar Sınıflar
DetaylıBu parçalar arasındaki ilişkiyi kullanıp büyük çaplı programlar geliştirme tekniğine de nesne yönelimli programlama denir.
Sınıflar (Classes) Çözülmesi istenene problemi çeşitli parçalara ayırıp her bir parça arasındaki ilişkiyi gerçeğine uygun bir şekilde belirleme tekniğine nesne yönelimi denir. Bu parçalar arasındaki ilişkiyi
DetaylıNESNEYE YÖNELİK PROGRAMLAMA
NESNEYE YÖNELİK PROGRAMLAMA Metotlar Şu ana kadar yaptığımız örneklerde hep önceden hazırlanmış ReadLine(), WriteLine() vb. gibi metotları kullandık. Artık kendi metotlarımızı yapmanın zamanı geldi. Bilmem
DetaylıUzaktan Eğitim Uygulama ve Araştırma Merkezi
JAVA PROGRAMLAMA Öğr. Gör. Utku SOBUTAY İÇERİK 2 Java da Kapsülleme (Erişim Denetleyiciler) Java da Sınıf Oluşturmak Java da Nesne Oluşturmak Java da Constructor Kavramı Java da This Kavramı Java da Constructor
DetaylıBTEP243 Ders 3. class Yazım Kuralı:
BTEP243 Ders 3 Sınıflar ve Nesneler Nesne tabanlı programlamada, programlamanın temeli sınıflardır (class). Nesnelerin yaratılmasında taslak (blueprint) görevi görür. Sınıflar; o Nesnelerin özelliklerinin
DetaylıYZM 2105 Nesneye Yönelik Programlama
YZM 2105 Nesneye Yönelik Programlama Yrd. Doç. Dr. Deniz KILINÇ Celal Bayar Üniversitesi Hasan Ferdi Turgutlu Teknoloji Fakültesi Yazılım Mühendisliği 1 BÖLÜM - 5 Nesneye Yönelik Programlamaya Giriş Bu
DetaylıHSancak Nesne Tabanlı Programlama I Ders Notları
METOTLAR Nesneye yönelik programlama dillerinde genellikle fonksiyonlar metot olarak isimlendirilirler. Metot ve fonksiyon olarak ifade edilecek kavramlar aynı anlamda kullanılacaktır. Her çalışan C# programı
DetaylıC# Metotlar ve Metot Tanımlama
C# Metotlar ve Metot Tanımlama Metot Kavramı : Metotlar bir program içerisinde aynı işi gerçekleştiren satırları belirli düzende sadece bir kez oluşturarak gerektiğinde tekrar tekrar kullanabilmemizi sağlayan
DetaylıNesne Yönelimli Programlama
1 Nesne Yönelimli Programlama Hazırlayan: M.Ali Akcayol Gazi Üniversitesi Bilgisayar Mühendisliği Bölümü Not: Bu dersin sunumları, Java Programlama Dili ve Yazılım Tasarımı, Altuğ B. Altıntaş, Papatya
DetaylıHSancak Nesne Tabanlı Programlama I Ders Notları
DİZİLER Bellekte ard arda yer alan aynı türden nesneler kümesine dizi (array) denilir. Bir dizi içerisindeki bütün elemanlara aynı isimle ulaşılır. Yani dizideki bütün elemanların isimleri ortaktır. Elemanlar
DetaylıSunum İçeriği. Programlamaya Giriş 22.03.2011
Programlamaya Giriş Nesne Tabanlı Programlamaya Giriş ve FONKSİYONLAR Sunum İçeriği Nesne Tabanlı Programlama Kavramı Fonksiyon tanımlama ve kullanma Formal Parametre nedir? Gerçel Parametre nedir? Fonksiyon
DetaylıÖnemli noktalar. Paradigma Nesnelere Giriş Mesajlar / Ara bağlantılar Bilgi Gizleme (Information Hiding ) Sınıflar(Classes) Kalıtım/Inheritance
Önemli noktalar Paradigma Nesnelere Giriş Mesajlar / Ara bağlantılar Bilgi Gizleme (Information Hiding ) Sınıflar(Classes) Kalıtım/Inheritance public class Test { // çalışır İnsan insan = new Çiçekçi();
DetaylıOperator Aşırı Yükleme (Operator OverLoading)
Operator Aşırı Yükleme (Operator OverLoading) Operator Aşırı Yükleme Operatör metotları bir nesnenin ifadeler içinde operatörlerle kullanıldığı zaman davranışını belirler. Temel veri türleri için operatörler
DetaylıUzaktan Eğitim Uygulama ve Araştırma Merkezi
JAVA PROGRAMLAMA Öğr. Gör. Utku SOBUTAY İÇERİK 2 Java da Fonksiyon Tanımlamak Java da Döngüler Java da Şart İfadeleri Uygulamalar Java da Fonksiyon Tanımlamak JAVA DA FONKSİYON TANIMLAMAK 4 Fonksiyonlar;
DetaylıHSancak Nesne Tabanlı Programlama I Ders Notları
Konsol Uygulaması Oluşturma Konsol uygulaması oluşturmak için program açıldıktan sonra Create: Project ya da New Project seçeneği tıklanabilir. New Project penceresini açmak için farklı yollar da vardır.
DetaylıNESNE TABANLI PROGRAMLAMA-1 DERS UYGULAMALARI (22 EYLÜL - 14 KASIM
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.
Detaylıpublic static int Toplam int x, int y
static Kavramı 1 İçinde bulunduğu sınıftan nesne oluşturulmadan veya hiç bir nesneye referans olmadan kullanılabilen üyeler static olarak nitelendirilir. Metotlar ve alanlar static olarak tanımlanabilir.
DetaylıANA SINIF TÜRETİLEN BİRİNCİ SINIF TÜRETİLEN İKİNCİ SINIF
JAVA PROGRAMLAMA Öğr. Gör. Utku SOBUTAY İÇERİK 2 Java da Kalıtım Kavramı Java da Çok Biçimlilik Kavramı Fonksiyonların Çok Biçimliliği Yapıcı Fonksiyonun Çok Biçimliliği Java da Kalıtım Kavramı 4 Kalıtım;
DetaylıBİL-142 Bilgisayar Programlama II
BİL-142 Bilgisayar Programlama II (C/C++) Hazırlayan: M.Ali Akcayol Gazi Üniversitesi Bilgisayar Mühendisliği Bölümü Konular Giriş Sınıflar, Nesneler, Fonksiyon ve Veri Üyeleri Sınıf ve Fonksiyon Üyeleri
Detaylı5.HAFTA. Sınıf ve Nesne Kavramı, Metot Oluşturma, Kurucu Metot, this Deyimi
5.HAFTA Sınıf ve Nesne Kavramı, Metot Oluşturma, Kurucu Metot, this Deyimi Sınıf Kavramı: Sınıf (class) soyut bir veri tipidir. Nesne (object) onun somutlaşan bir cismidir. Java da sınıf (class) kavramını
DetaylıÜNİTE İÇİNDEKİLER. NESNE TABANLI PROGRAMLAMA I Okt. Mustafa AKBUĞA HEDEFLER OPERATÖRLER
HEDEFLER İÇİNDEKİLER OPERATÖRLER Operatörler Aritmetik Operatörler Mantıksal Operatörler Bitsel Operatörler Karşılaştırma Operatörleri Atama Operatörleri Özel Amaçlı Operatörler Operatörlerde İşlem Öncelikleri
DetaylıC de Detaylı Üs Alma Programı. C# Dilinde Metot Tanımlama ve Yazdırma
C de Detaylı Üs Alma Programı Bu uygulama yazısında C de pow() fonksiyonunu kullanmadan üs hesabı yapan programı yazmaya çalıştım. Başta tanımladığım float tipinde 2 fonksiyon sayesinde + lı ve li üs değerleriyle
DetaylıPointer Kavramı. Veri Yapıları
Pointer Kavramı Veri Yapıları Pointer Kavramı- Pointer Nedir? Göstericiler, işaretçiler ya da pointer adı da verilmektedir. Gösterici (pointer); içerisinde bellek adresi tutan değişkenlerdir. Şu ana kadar
DetaylıELN1001 BİLGİSAYAR PROGRAMLAMA I
ELN1001 BİLGİSAYAR PROGRAMLAMA I DEPOLAMA SINIFLARI DEĞİŞKEN MENZİLLERİ YİNELEMELİ FONKSİYONLAR Depolama Sınıfları Tanıtıcılar için şu ana kadar görülmüş olan özellikler: Ad Tip Boyut Değer Bunlara ilave
DetaylıYrd. Doç. Dr. Caner ÖZCAN
Yrd. Doç. Dr. Caner ÖZCAN Fonksiyonu Referans ile Çağırma (Call by Reference) Bir fonksiyona gönderilen parametrenin normalde değeri değişmez. Fonksiyon içinde yapılan işlemlerin hiçbiri argüman değişkeni
DetaylıNesne tabanlı programlama nesneleri kullanan programlamayı içerir. Bir nesne farklı olarak tanımlanabilen gerçek dünyadaki bir varlıktır.
Nesne tabanlı programlama nesneleri kullanan programlamayı içerir. Bir nesne farklı olarak tanımlanabilen gerçek dünyadaki bir varlıktır. Örneğin; bir öğrenci, sıra, çember, bir buton birer nesnedir. Bir
DetaylıGöstericiler (Pointers)
C PROGRAMLAMA Göstericiler (Pointers) C programlama dilinin en güçlü özelliklerinden biridir. Göstericiler, işaretçiler yada pointer adı da verilmektedir. Gösterici (pointer); içerisinde bellek adresi
DetaylıYrd. Doç. Dr. Caner ÖZCAN
Yrd. Doç. Dr. Caner ÖZCAN Diziler ile Pointer Arası İlişki Bir dizi adı sabit bir pointer gibi düşünülebilir. Diziler ile pointer lar yakından ilişkilidir. Pointer lar değişkenleri gösterdikleri gibi,
DetaylıDers 8: Metotlar. barisgokce.com
Ders 8: Metotlar Hazırlayan : Öğr. Grv.. Barış GÖKÇE Đletişim im : www.barisgokce barisgokce.com Metotlar C# içerisinde bir veya birden fazla kod bulunduran kod bloklarıdır. Bir nesnenin veya sınıfın programı
DetaylıBİL-141 Bilgisayar Programlama I (Java)
1 BİL-141 Bilgisayar Programlama I (Java) Hazırlayan: M.Ali Akcayol Gazi Üniversitesi Bilgisayar Mühendisliği Bölümü Not: Bu dersin sunumları, Java Bilgisayar Programlamaya Giriş, A. Yazıcı, E. Doğdu,
DetaylıYZM 2105 Nesneye Yönelik Programlama
YZM 2105 Nesneye Yönelik Programlama Yrd. Doç. Dr. Deniz KILINÇ Celal Bayar Üniversitesi Hasan Ferdi Turgutlu Teknoloji Fakültesi Yazılım Mühendisliği 1 BÖLÜM - 6 Kalıtım (Inheritance) - I Bu bölümde;
DetaylıMühendislik Fakültesi Elektrik-Elektronik Mühendisliği C Programlama 7. Bölüm Metot Tanımlama ve Kullanma
Mühendislik Fakültesi Elektrik-Elektronik Mühendisliği C Programlama 7. Bölüm Metot Tanımlama ve Kullanma C Programlama Dr. Serkan DİŞLİTAŞ 7.1. Metot Kavramı Programlama dillerinde bütün kod satırlarının
DetaylıYZM 2105 Nesneye Yönelik Programlama
YZM 2105 Nesneye Yönelik Programlama Yrd. Doç. Dr. Deniz KILINÇ Celal Bayar Üniversitesi Hasan Ferdi Turgutlu Teknoloji Fakültesi Yazılım Mühendisliği 1 BÖLÜM - 4 Nesneye Yönelik Programlamaya Giriş Bu
DetaylıC++ Dersi: Nesne Tabanlı Programlama
C++ Dersi: Nesne Tabanlı Programlama Bölüm 10: Yapıcı ve Yıkıcı Fonksiyonlar Yapıcı Fonksiyonlar İçerik Yapıcı Fonksiyon Tanımı Üyelere İlk Atama Yapıcı Fonksiyonu Yükleme Yapıcı Fonksiyon Çağırımı Kopya
DetaylıProgramlama Dilleri 1. Ders 12: Belirleyiciler ve Niteleyiciler
Programlama Dilleri 1 Ders 12: Belirleyiciler ve Niteleyiciler Genel Bakış Giriş Yer Belirleyicilerle Bildirim İşlemi auto Belirleyicisi register Belirleyicisi static Belirleyicisi Statik ve Global Değişkenlerin
DetaylıBLM 112- Programlama Dilleri II. Hafta 5 İşaretçiler (Pointers)
1 BLM 112- Programlama Dilleri II Hafta 5 İşaretçiler (Pointers) Dr. Öğr. Üyesi Caner Özcan Hiç hata yapmayan insan, hiçbir şey yapmayan insandır. Ve hayatta en büyük hata, kendini hatasız sanmaktır. ~Y.
DetaylıC#(Sharp) Programlama Dili
Değişkenler C#(Sharp) Programlama Dili Program yazarken her zaman sabit verilerle çalışmayız, çoğu zaman programımızda bir verinin kullanıcının davranışına göre değişmesi gerekir. Kullanıcıdan bir metin
DetaylıNESNEYE YÖNELİK PROGRAMLAMA
NESNEYE YÖNELİK PROGRAMLAMA SANAL FONKSİYONLAR VE ÇOK BİÇİMLİLİK Özlem AYDIN Trakya Üniversitesi Bilgisayar Mühendisliği Bölümü GİRİŞ C++, hem derleyici-zamanlı hem de çalışmazamanlı çok biçimliliği destekler.
DetaylıNesneye Dayalı Programlama
SAKARYA ÜNİVERSİTESİ Nesneye Dayalı Programlama Hafta 4 Prof. Dr. Ümit KOCABIÇAK Öğr. Gör. Özgür ÇİFTÇİ Bu ders içeriğinin basım, yayım ve satış hakları Sakarya Üniversitesi ne aittir. "Uzaktan Öğretim"
DetaylıÜNİTE. NESNE TABANLI PROGRAMLAMA I Okt. Mustafa AKBUĞA İÇİNDEKİLER HEDEFLER KARAR KONTROL DEYİMLERİ
HEDEFLER İÇİNDEKİLER KARAR KONTROL DEYİMLERİ Karar Kontrol Deyimleri if ifadesi if - else ifadesi if - elseif - else ifadesi Switch- Case ifadesi NESNE TABANLI PROGRAMLAMA I Okt. Mustafa AKBUĞA Bu üniteyi
DetaylıÖğr. Gör. Serkan AKSU http://www.serkanaksu.net. http://www.serkanaksu.net/ 1
Öğr. Gör. Serkan AKSU http://www.serkanaksu.net http://www.serkanaksu.net/ 1 JavaScript JavaScript Nedir? Nestcape firması tarafından C dilinden esinlenerek yazılmış, Netscape Navigator 2.0 ile birlikte
Detaylıabstract Sınıflar 1 Sınıf sınıf1 new class Ama aşağıdaki şekilde referans alınabilir;
abstract Sınıflar 1 Özet sınıflar ya da özet metotlar abstract anahtar sözcüğü kullanılarak tanımlanırlar. Bir temel sınıf içinde bildirilen abstract metotların içeriği boştur. Kendisinden yeni bir instance
DetaylıFonksiyonlar. C++ ve NESNEYE DAYALI PROGRAMLAMA 51. /* Fonksiyon: kup Bir tamsayının küpünü hesaplar */ long int kup(int x) {
Fonksiyonlar Kendi içinde bağımsız olarak çalışabilen ve belli bir işlevi yerine getiren program modülleridir. C programları bu modüllerden (fonksiyonlar) oluşurlar. Fonksiyonların yazılmasındaki temel
DetaylıPROGRAMLAMAYA GİRİŞ FONKSİYONLAR
PROGRAMLAMAYA GİRİŞ FONKSİYONLAR Fonksiyonlar C programlama dili fonksiyon olarak adlandırılan alt programların birleştirilmesi kavramına dayanır. Bir C programı bir ya da daha çok fonksiyonun bir araya
Detaylıİsimler ve Kapsam. Hafta 4 Ders 2 BLG339 PROGRAMLAMA DİLLERİ KAVRAMI
BLG339 PROGRAMLAMA DİLLERİ KAVRAMI Hafta 4 Ders 2 Yrd. Doç. Dr. Melike Şah Direkoğlu Alındığı kaynak: Addison-Wesley s Programming Language Concepts slaytları ve Prof. Dr. Tuğrul Yılmaz ın ders notlarından
DetaylıÜNİTE İÇİNDEKİLER HEDEFLER MATEMATİKSEL METOTLAR. NESNE TABANLI PROGRAMLAMA I Okt. Mustafa AKBUĞA. (Math Sınıfı ve Metotları)
MATEMATİKSEL METOTLAR (Math Sınıfı ve Metotları) İÇİNDEKİLER Matemetiksel Metotlar Üstel Metotlar Logaritmik Metotlar Trigonometrik Metotlar Ters Trigonometrik Metotlar Hiperbolik Metotlar Yuvarlatma Metotları
DetaylıÜNİTE. NESNE TABANLI PROGRAMLAMA I Okt. Mustafa AKBUĞA İÇİNDEKİLER HEDEFLER DEĞİŞKENLER VE VERİ TİPLERİ
HEDEFLER İÇİNDEKİLER DEĞİŞKENLER VE VERİ TİPLERİ Değişkenler ve Veri Tipleri Değişkenler Sabitler Değişkenlerde Faaliyet Alanı Veri Tipleri Tür Dönüşümleri NESNE TABANLI PROGRAMLAMA I Okt. Mustafa AKBUĞA
DetaylıNesneye Yönelik Programlama (OOP) 7.Hafta
Nesneye Yönelik Programlama (OOP) 7.Hafta Örnek : Yapılar vs Sınıflar Yapılar ve sınıflar büyük oranda benzerlik gösterirler. Yapıların sakladığı veriler her zaman public yani erişime açıktır. Sınıflarda
DetaylıKalıtım (Inheritance)
Kalıtım (Inheritance) Kocaeli Üniversitesi Kalıtım (Inheritance) Kodların çok kez kullanımı (Software reusability) Mevcut Sınıflardan Yeni Sınıflar Oluşturma Mevcut sınıfın değişken ve fonksiyonları kullanılabilir.
DetaylıC++ Dersi: Nesne Tabanlı Programlama
C++ Dersi: Nesne Tabanlı Programlama Bölüm 14: Çoklu İşlev İçerik Çoklu İşlevin Gerçekleştirilmesi Saf Sanal Fonksiyonlar ve Soyut Sınıflar Sanal Yıkıcı Fonksiyonlar Statik ve Dinamik Bağlama 2 Çoklu İşlev
DetaylıYZM 2105 Nesneye Yönelik Programlama
YZM 2105 Nesneye Yönelik Programlama Yrd. Doç. Dr. Deniz KILINÇ Celal Bayar Üniversitesi Hasan Ferdi Turgutlu Teknoloji Fakültesi Yazılım Mühendisliği 1 BÖLÜM - 7 Abstract (Soyut Sınıflar) Bu bölümde;
DetaylıFONKSİYONLAR. Gerçek hayattaki problemlerin çözümü için geliştirilen programlar çok büyük boyutlardadır.
C PROGRAMLAMA FONKSİYONLAR Gerçek hayattaki problemlerin çözümü için geliştirilen programlar çok büyük boyutlardadır. Daha büyük programlar yazmanın en kolay yolu onları küçük parçalar halinde yazıp sonra
DetaylıİNÖNÜ ÜNİVERSİTESİ MÜHENDİSLİK FAKÜLTESİ BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜMÜ 2. SINIF 1. DÖNEM VERİ YAPILARI DERSİ LABORATUAR ÖDEVİ
İNÖNÜ ÜNİVERSİTESİ MÜHENDİSLİK FAKÜLTESİ BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜMÜ 2. SINIF 1. DÖNEM VERİ YAPILARI DERSİ LABORATUAR ÖDEVİ AD SOYAD: TESLİM TARİHİ: OKUL NO: TESLİM SÜRESİ: 2 hafta ÖDEV NO: 5 1- BANKA
DetaylıBMH-303 Nesneye Yönelik Programlama
BMH-303 Nesneye Yönelik Programlama Kurucu metotlar (constructors) ve statik deyimi Dr. Musa ATAŞ Siirt Üniversitesi Bilgisayar Mühendisliği Kurucu Metotlar (Constructors) Kurucu metot çeşitleri Varsayılan
Detaylı7. HAFTA. Erişim Belirleyiciler
7. HAFTA Erişim Belirleyiciler Java dilinde 4 tür erişim belirleyicisi vardır; bunlar friendly, public, protected ve private dir. Bu erişim belirleyiciler global alanlar (statik veya değil) ve yordamlar
DetaylıDiziler İndisli Değişkenler
Diziler İndisli Değişkenler Aynı tür bilgileri (öğrenci isimleri, şehir isimleri, kapı numaraları, fakülteler vbg.) bellekte tutmak için kullanabileceğimiz listelere dizi adı verilir. Dizi kullanmanın
Detaylıİsimler ve Kapsam. 24 Şubat 2011. Programlama Dilleri - Pamukkale Üniversitesi 1
İsimler ve Kapsam Tanım: Bir değişkenin kapsamı (scope) değişkenin görülebilir olduğu komutların alanıdır. Görülebilir olduğu alan, bir komut içinde belirlenen değerle kullanılabildiği alandır. Tanım:
Detaylı4. Bölüm Programlamaya Giriş
4. Bölüm Programlamaya Giriş Algoritma ve Programlamaya Giriş Dr. Serkan DİŞLİTAŞ 4.1. C# ile Program Geliştirme Net Framework, Microsoft firması tarafından açık internet protokolleri ve standartları
DetaylıNESNEYE YÖNELİK PROGRAMLAMA
NESNEYE YÖNELİK PROGRAMLAMA İŞARETÇİ ELEMANLI SINIFLAR REFERANSLAR OPERATÖRLERİN AŞIRI YÜKLENMESİ ATAMA OPERATÖRÜ Özlem AYDIN Trakya Üniversitesi Bilgisayar Mühendisliği Bölümü İşaretçi Elemanlı Sınıflar
DetaylıBölüm 9. Altprogramlar ISBN
Bölüm 9 Altprogramlar ISBN 0-321-49362-1 Giriş Bu bölümde, programlarda sıkça kullanılan işlemlerin bir araya gruplanması ile oluşturulan altprogramlar incelenecektir. Altprogramlar sayesinde bir programda
DetaylıLambda İfadeleri (Lambda Expressions)
Lambda İfadeleri (Lambda Expressions) Lambda İfadeleri, değişkenlere değer atamak için kullanılan sadeleştirilmiş anonim (isimsiz) fonksiyonlardır. Bu fonksiyonlar matematikteki ve bilgisayar bilimlerindeki
Detaylıenum bolumler{elektronik, insaat, bilgisayar, makine, gida};
BÖLÜM 12: Giriş C programlama dilinde programcı kendi veri tipini tanımlayabilir. enum Deyimi (Enumeration Constants) Bu tip, değişkenin alabileceği değerlerin belli (sabit) olduğu durumlarda programı
DetaylıNesne Tabanlı Programlama Dersi Edirne Kız Teknik ve Meslek Lisesi
2011-2012 Nesne Tabanlı Programlama Dersi Edirne Kız Teknik ve Meslek Lisesi Programlama Dili Nedir? 2 Programlama dili, yazılımcının bir algoritmayı ifade etmek amacıyla, bir bilgisayara ne yapmasını
DetaylıProgramlama Dilleri 3
Akış Konrol Mekanizmaları 1 Koşul İfadeleri Programlar içersinde bazı durumlarda programın akışının değişmesi ya da farklı işlemlerin yapılması gerekebilir. Bazen de seçimlerin yapılması ya da belirli
DetaylıYZM 2105 Nesneye Yönelik Programlama
YZM 2105 Nesneye Yönelik Programlama Yrd. Doç. Dr. Deniz KILINÇ Celal Bayar Üniversitesi Hasan Ferdi Turgutlu Teknoloji Fakültesi Yazılım Mühendisliği 1 BÖLÜM - 4 Nesneye Yönelik Programlamaya Giriş Bu
DetaylıDeğişkenler. Geçerli değişken isimleri : baslamazamani, ad_soyad, x5 Geçersiz değişken isimleri : 3x, while
Değişkenler Değişkenler bir bilginin bellekteki konumunu temsil eden sembolik isimlerdir. Bilgisayarda hemen hemen tüm işlemler bellekte yapılır. Program çalıştırıldığında değişken ve bu değişkenin türüne
DetaylıSınav tarihi : Süre : 60 dak. a) strstr b) strchr c) strcat d) strcpy e) strlen. a) b) d) e) 0
Selçuk Üniversitesi, Mühendislik Fakültesi, Harita Mühendisliği Bölümü Bitirme Sınavı Test Soruları Adı soyadı : Öğrenci no : Sınav tarihi : 01.06.2017 Süre : 60 dak. 1. t değişkeni hakkında aşağıdakilerden
DetaylıGörsel Programlama DERS 02. Görsel Programlama - Ders02/ 1
Görsel Programlama DERS 02 Görsel Programlama - Ders02/ 1 Kodun Tekrar Kullanımı ve Kalıtım(Inheritance) Nesneye yönelik programlamanın diğer programlama paradigmalarına karşı bir avantajı kodun yeniden
DetaylıSINIF YAPISI ve NESNE YÖNELİMLİ PROGRAMLAMA NESNE YÖNELİMLİ PROGRAMLAMA
GİRİŞ SINIF YAPISI ve NESNE YÖNELİMLİ PROGRAMLAMA Yazılım teknolojileri son 40 yılda artan bir ivmeyle gelişmeye devam etmektedir. Buna paralel olarak zamanla artan ve çeşitlenen kullanıcı istekleri doğrultusunda
DetaylıYeni bir proje açarken File New - Web Site diyoruz. Gelen ekranda Visual Basic veya C# seçilebilir. Biz ders kapsamında C# programlama dilini seçtik.
ASP.NET DERS 1 Yeni bir proje açarken File New - Web Site diyoruz. Gelen ekranda Visual Basic veya C# seçilebilir. Biz ders kapsamında C# programlama dilini seçtik. Gelen ekranda Visual C# seçildikten
DetaylıSınav tarihi : Süre : 60 dak. a) ABCDE b) BCDE c) ABCD d) kod hatalı e) BCD
Selçuk Üniversitesi, Mühendislik Fakültesi, Harita Mühendisliği Bölümü Yıliçi Sınavı Test Soruları Adı soyadı : Öğrenci no : Sınav tarihi : 13.04.2015 Süre : 60 dak. 1. Hangisi gerçek sayı değişmezi değildir?
Detaylı1 C#.NET GELİŞTİRME ORTAMI 1 Visual Studio 2015 Arayüzü 4 Menu Window 6 Solution Explorer 7 Properties Window 8 Server Explorer 8 Toolbox 9
VII 1 C#.NET GELİŞTİRME ORTAMI 1 Visual Studio 2015 Arayüzü 4 Menu Window 6 Solution Explorer 7 Properties Window 8 Server Explorer 8 Toolbox 9 2 KOD YAZMAYA BAŞLANGIÇ 11.Net Framework 11 Yeni Proje Oluşturmak
DetaylıGörsel Programlama-I (Visual Programming) 2.Hafta
Görsel Programlama-I (Visual Programming) 2.Hafta 2011-2012 Bahar Dönemi CLASS YAPISI 1 Görsel Programlama 2 Nesne tabanlıdır. Programda kullanılan bütün öğeler birer nesnedir. Class - Obje Nesne (Nesne
DetaylıNESNE YÖNELİMLİ PROGRAMLAMA HAFTA # 2
NESNE YÖNELİMLİ PROGRAMLAMA HAFTA # 2 JAVA DA PROGRAM DENETİMİ VE OPERATÖRLER Java programlama dilinde temel tipleri ve nesneleri yönlendirmek ve değiştirmek için operatörler kullanılır. Atamalar sağ taraftaki
DetaylıJava da Soyutlama ( Abstraction ) ve Çok-biçimlilik ( Polymorphism )
Java da Soyutlama ( Abstraction ) ve Çok-biçimlilik ( Polymorphism ) BBS-515 Nesneye Yönelik Programlama Ders #9 (16 Aralık 2009) Geçen ders: Java Applet lerde bileşen yerleştirme türleri ( applet layouts
DetaylıC# Programlama Dili. İlk programımız Tür dönüşümü Yorum ekleme Operatörler
C# Programlama Dili İlk programımız Tür dönüşümü Yorum ekleme Operatörler 1 İlk Programımız Bu program konsol ekranına Merhaba dünya! yazıp kapanır. Programı geçen derste anlatıldığı gibi derleyin, sonra
DetaylıBölüm 11. Soyut veri tipleri ve kapsülleme kavramları ISBN 0-321-49362-1
Bölüm 11 Soyut veri tipleri ve kapsülleme kavramları ISBN 0-321-49362-1 11. Bölüm konuları Soyutlama kavramı Veri soyutlamasına giriş Soyut veri tipleri için tasarım konuları Dil örnekleri Parametreli
DetaylıJava C.Thomas Wu 2004b kitabından Türkçeleştirilerek ve örneklendirilerek hazırlanmıştır.
Ders İçeriği An introduction to Object-oriented programming with Java Third Edition Update Java C.Thomas Wu 2004b kitabından Türkçeleştirilerek ve örneklendirilerek hazırlanmıştır. Nesneye Yönelik Öğr.
DetaylıMetotlar. d e f metot_adı [ ( [ arg [= d e f a u l t ] ]... [, arg [, &expr ] ] ) ] deyim ( l e r ) end
4 Metotlar Hemen her programlama dilinde var olan metot kavramı Ruby için de aynıdır. Bazı kaynaklarda metot terimi yerine fonksiyon terimi kullanılır. Bu kitapta iki terimi eşanlamlı kullanacağız. Ruby
Detaylı1. SINIFLAR Sınıf (Class) Mantığı
1. SINIFLAR Günlük hayatta kullanılan pek çok kelime bir sınıflandırmanın sonucu ortaya çıkmıştır. Örneğin insan, ev, araba vb. kelimeler bir tek nesneyi değil, ortak davranış ve özellikleri olan nesnelerin
DetaylıFonksiyonlar (Altprogram)
Fonksiyonlar (Altprogram) C Programlama Dili fonksiyon olarak adlandırılan alt programların birleştirilmesi kavramına dayanır. Bir C programı bir ya da daha çok fonksiyonun bir araya gelmesi ile oluşur.
DetaylıYrd. Doç. Dr. Caner ÖZCAN
Yrd. Doç. Dr. Caner ÖZCAN Derse Giriş Ders Web Sitesi: www.canerozcan.net Ofis Saatleri: Salı 11:00-13:00 Perşembe 15:30-17:30 ya da email ile randevu alınız: canerozcan@karabuk.edu.tr Kaynak Kitaplar:
DetaylıBİLG Dr. Mustafa T. Babagil 1
BİLG214 20.10.2009 Dr. Mustafa T. Babagil 1 Yapısal bilgi türlerinin tanımlanması. (C++ daki struct yapısı. ) Daha önce öğrenmiş olduğumuz bilgi tipleri char, int ve float v.b. değişkenler ile dizi (array)
DetaylıArayüz (Interface) Altuğ B. Altıntaş 2003 Java ve Yazılım Tasarımı - Bölüm 7 1
Arayüz (Interface) Altuğ B. Altıntaş 2003 Java ve Yazılım Tasarımı - Bölüm 7 1 Arayüz (Interface) Arayüzler, soyut sınıfların bir üst modeli gibi düşünülebilir. Arayüzler tamamen birleştirici bir rol oynamaları
DetaylıNesne Tabanlı Programlama
Nesne Tabanlı Programlama Ders Notu - 3 Dicle Üniversitesi Mühendislik Fakültesi Elektrik Elektronik Mühendisliği Bölümü 1 Sınıflar ve Fonksiyonlar Tekrar kullanılabilir kodlar 1 Nesne Tabanlı Tasarım
DetaylıBLM-112 PROGRAMLAMA DİLLERİ II. Ders-3 İşaretçiler (Pointer) (Kısım-2)
BLM-112 PROGRAMLAMA DİLLERİ II Ders-3 İşaretçiler (Pointer) (Kısım-2) Yrd. Doç. Dr. Ümit ATİLA umitatila@karabuk.edu.tr http://web.karabuk.edu.tr/umitatilla/ Dinamik Bellek Yönetimi Bir program çalıştırıldığında
DetaylıHafta 13 Fonksiyonlar
BLM111 Programlama Dilleri I Hafta 13 Fonksiyonlar Yrd. Doç. Dr. Caner ÖZCAN Fonksiyonlar Fonksiyonlar C de modüller Programlar kullanıcı tanımlı fonksiyonları ve kütüphane fonksiyonlarını birlikte kullanırlar.
DetaylıNESNE TABANLI PROGRAMLAMA Final Sınavı Cevapları
Sayfa1 NESNE TABANLI PROGRAMLAMA 25.01.2011 Final Sınavı Cevapları CEVAPLAR 1. A ve C 3x3 boyutlu kare matrislerdir. Bu matrisler için, iken, işlemini gerçekleştirerek C matrisini oluşturan bir C++ programı
DetaylıNesne Yönelimli Programlama
1 Nesne Yönelimli Programlama Hazırlayan: M.Ali Akcayol Gazi Üniversitesi Bilgisayar Mühendisliği Bölümü Not: Bu dersin sunumları, Java Programlama Dili ve Yazılım Tasarımı, Altuğ B. Altıntaş, Papatya
DetaylıALGORİTMA VE PROGRAMLAMA II
ALGORİTMA VE PROGRAMLAMA II Yrd. Doç. Dr. Deniz KILINÇ deniz.kilinc@cbu.edu.tr YZM 1102 Celal Bayar Üniversitesi Hasan Ferdi Turgutlu Teknoloji Fakültesi Genel Bakış 2 İşaretçiler ve Diziler Fonksiyon
DetaylıJavascript. 1) Notepad++ aşağıdaki kodları yazıp deneme.html olarak kaydedelim. 2) Biraz önceki sayfa sadece html kodların içeriyordu.
Javascript Html sayfalarının içine yazılarak, sayfayı daha etkileşimli hale getirir. click olayları, uyarı mesajları gibi hareketlerle sayfayı daha dinamik hale getirir. Javascript olmadan yazılan html
DetaylıBMT 101 Algoritma ve Programlama I 11. Hafta. Yük. Müh. Köksal Gündoğdu 1
BMT 101 Algoritma ve Programlama I 11. Hafta Yük. Müh. Köksal Gündoğdu 1 C++ Fonksiyonlar Yük. Müh. Köksal Gündoğdu 2 C++ Hazır Fonksiyonlar Yük. Müh. Köksal Gündoğdu 3 C++ Hazır Fonksiyonlar 1. Matematiksel
DetaylıMAT213 BİLGİSAYAR PROGRAMLAMA I DERSİ Ders 1: Programlamaya Giriş
MAT213 BİLGİSAYAR PROGRAMLAMA I DERSİ Ders 1: Programlamaya Giriş Yard. Doç. Dr. Alper Kürşat Uysal Bilgisayar Mühendisliği Bölümü akuysal@anadolu.edu.tr Ders Web Sayfası: http://ceng.anadolu.edu.tr/ders.aspx?dersid=101
DetaylıUzaktan Eğitim Uygulama ve Araştırma Merkezi
JAVA PROGRAMLAMA Öğr. Gör. Utku SOBUTAY İÇERİK 2 Java da Diziler Dizi Tanımlama ve İlk Değer Atama Dizi Elemanlarının Kullanılması Dizi İşlemleri Java da Diziler JAVA DA DİZİLER 4 Dizi; tek bir veri tipinde,
DetaylıUzaktan Eğitim Uygulama ve Araştırma Merkezi
JAVA PROGRAMLAMA Öğr. Gör. Utku SOBUTAY İÇERİK 2 Java Veri Tipleri ve Özelilkleri Değişken Tanımlama Kuralları Değişken Veri Tipi Değiştirme (Type Casting) Örnek Kodlar Java Veri Tipleri ve Özelilkleri
DetaylıBLM-111 PROGRAMLAMA DİLLERİ I. Ders-12 Fonksiyonlar. Yrd. Doç. Dr. Ümit ATİLA
BLM-111 PROGRAMLAMA DİLLERİ I Ders-12 Fonksiyonlar Yrd. Doç. Dr. Ümit ATİLA umitatila@karabuk.edu.tr http://web.karabuk.edu.tr/umitatilla/ Fonksiyonlar Fonksiyonlar C de modüller Programlar kullanıcı tanımlı
DetaylıGörsel Programlama DERS 03. Görsel Programlama - Ders03/ 1
Görsel Programlama DERS 03 Görsel Programlama - Ders03/ 1 Java Dili, Veri Tipleri ve Operatörleri İlkel(primitive) Veri Tipleri İLKEL TİP boolean byte short int long float double char void BOYUTU 1 bit
DetaylıProgramlama Dillerinde Kullanılan Veri Tipleri
Programlama Dillerinde Kullanılan Veri Tipleri Taban/Biçim Basic Paskal C/C++/C#/Java 10 (Decimal ) - - - 16 (Hexadecimal) &hsayı veya &Hsayı $sayı 0xsayı veya 0Xsayı Üstel eüs veya Eüs eüs veya Eüs eüs
DetaylıDers 8 Konu Özeti ve Problemler
Ders 8 Konu Özeti ve Problemler C# ve Nesne Yönelimli Programlamanın 3 Prensibi Kapsülleme (Encapsulation) Nesne yönelimli programlamanın ilk prensibi kapsülleme (encapsulation) olarak adlandırılır. Bu
Detaylı