BMÜ-112 Algoritma ve Programlama-II Inheritance (Kalıtım) Yrd. Doç. Dr. İlhan AYDIN

Ebat: px
Şu sayfadan göstermeyi başlat:

Download "BMÜ-112 Algoritma ve Programlama-II Inheritance (Kalıtım) Yrd. Doç. Dr. İlhan AYDIN"

Transkript

1 BMÜ-112 Algoritma ve Programlama-II Inheritance (Kalıtım) Yrd. Doç. Dr. İlhan AYDIN

2 Kalıtım Mantığı Bazı sınıflar, kendi özeliklerini taşıyan özel tiplere ayrılabilir. Örnek: Bisiklet: dağ bisikleti, yarış bisikleti Dağ bisikleti ve yarış bisikleti; bisiklet sınıfının alt-sınıflarıdır ( sub-classes ). Bisiklet sınıfı; dağ bisikleti ve yarış bisikleti sınıflarının üstsınıfıdır ( super-class ). Her alt-sınıf kendi üst-sınıfının özelliklerini ve işlevlerini taşır (kalıtım - inheritance ). Dağ bisikleti ve yarış bisikleti, bisiklet sınıfına ait özellikleri taşır: vites, tekerlek, pedal, vb. Dağ bisikleti ve yarış bisikleti, bisiklet sınıfına ait işlevleri gösterir: hızlanma, fren yapma, vites değiştirme, vb.

3 Kalıtım Mantığı -2 Bir alt-sınıf, üst-sınıfından taşıdığı özelliklere ve işlevlere ek olarak; kendine ait özellikleri ve işlevleri içerebilir (tanımlayabilir). Örnek: Dağ bisikleti, tırmanmayı kolaylaştıran ek viteslere sahip olabilir. Bir alt-sınıf aynı zamanda, üst-sınıfından taşıdığı işlevleri değiştirebilir (üzerine yazma method overriding ). Örnek: Dağ bisikleti, bisiklet sınıfının vites değiştir işlevini, ek vitesleri kullanmayı sağlayacak şekilde değiştirebilir. Kalıtım sadece tek seviyeli olmak zorunda değildir, birden çok seviyede tanımlanabilir. Bir alt-sınıf her zaman, üstündeki tüm sınıfların özelliklerini ve işlevlerini taşır. Kalıtım ağacında ( inheritance tree ) aşağılara doğru inildikçe sınıfın öznelliği artar.

4 Kalıtım Mantığı -3 Sınıflar arasındaki kalıtım, uygulamada aşağıdaki avantajları sağlar: Alt-sınıflar, üst-sınıflarının özelliklerini ve işlevlerini taşıdıklarından; programlama sırasında üst-sınıfların kodu defalarca tekrar kullanılabilir ( reuse ). Java da (C++ da desteklenen) çoklu kalıtım (multiple inheritance) desteklenmez. Bir subclass ın ancak bir tane direct super class ı olabilir. Çoklu kalıtım yerine çoklu arayüz (multiple interface) kullanımı mevcuttur. Üzerine yazma/çeşitleme (overriding) sayesinde türeyen sınıflarda miras alınan metodlar ihtiyaçlara göre değiştirilebilir.

5 Kalıtım Mantığı -4 Bir sınıfın diğerindeki özellikleri miras olarak alması için kullanılan anahtar sözcük extends dir. Anlam olarak "Bu sınıf şu sınıfı genişletir yani ondaki özellik ve metodları alır ve yenilerini ekler demektir. Miras alınan sınıf - Superclass Miras alan sınıf Subclass Herbir subclass, superclass olma adayıdır. Bir sınıftan türeyen sınıfın yapılandırıcısı türediği sınıfın yapılandırıcısını 'super() şeklinde çağırabilir.

6 Java da Kalıtım: Örnek - 1

7 Java da Kalıtım: Örnek 2.1

8 Java da Kalıtım: Örnek 2.2

9 Üzerine Yazma ( Method Overriding ) Bir alt sınıfta, üst sınıfa ait bir yöntemi; aynı isim, imza ve dönüş tipi ile tanımlarsak, üst sınıftaki yöntemin üzerine yazmış oluruz. Alt sınıftan nesne oluşturulduğunda yöntem çağrılırsa, üst sınıfa ait yöntem yerine, alt sınıfta tanımlanmış yöntem koşturulur.

10 Neden Üzerine Yazma? - 1 Genel sınıfta, kendinden türetilen tüm sınıflarda ortak olan işlevselliği tanımlamayı sağlar. Bir üst sınıftan alt sınıflara uzanan hiyerarşiyi tanımlamanın amacı, daha az detaydan daha çok detaya doğru işlevselliği oluşturmaktır. Bu hiyerarşide üst sınıfın görevi, alt-sınıfların doğrudan kullanabilecekleri (veya üzerine yazabilecekleri) genel özellikleri ve yöntemleri tanımlamaktır.

11 Neden Üzerine Yazma? - 2 Üst sınıf aynı zamanda, alt sınıfları için tutarlı bir arayüz oluşturur (ortak tip) Bu sınıfları kullanan programlar, alt sınıflardan oluşturulan nesnelerin yöntemlerini, üst sınıfın yöntemlerini kullanır gibi kullanabilirler. Hangi seviyedeki sınıfın yönteminin kullanılacağına koşturma zamanında karar verilebilir ( polymorphism ). Bu özellik, if veya switch kullanımına gerek bırakmaz. Yeni bir çalışan alt sınıfı eklendiğinde mevcut kodun değiştirilmesi gerekmez

12 Sınıflar Arasında Kalıtım İlişkisi Genel sınıf ile onun özel durumlarına karşılık gelen arasındaki ilişki Ebeveyn-çocuk ilişkisi ( inheritance ) ( UML) Okun yönü genel sınıfı gösterir Özel sınıflar genel sınıftan kalıtsal olarak özellikleri ve operasyonları alırlar. Özel sınıflar yeni özellikler ve operasyonlar tanımlayabilir veya kalıtsal yoldan aldıkları operasyonları yeniden tanımlayabilirler ( overriding ).

13 Kalıtım Örnek - I Yapılandırıcılar EKRAN ÇIKTISI Hayvan SINIFI YAPICISI DortAyakli SINIFI YAPICISI Otcul SINIFI YAPICISI

14 Kalıtım Örnek-II Ucgen sınıfından bir nesne 3 parametre alan yapıcı metodu ile oluşturulduğunda ilk 2 parametre ana sınıftaki yapılandırıcıya aktarılmış, böylece Sekil sınıfından türetilen nesnelerin ortak özelliği olan Taban ve Yuksekliği türeyen sınıfın içinde tekrar bildirme zorunluluğu ortadan aldırılmıştır.

15 Kalıtım Örnek-III Yandaki main yordaminin ciktisi nedir? Programin Ciktisi: I'm a Parent I'm a Child I'm a Child

16 Arayüz Sınıflar, Soyut Sınıflar, Dahili Sınıflar

17 Arayüz (Interface) Kavramı Java'da arayüz (interface), bir sınıfta olması gereken metod ve özellikleri tanımlayan yapıdır. Kendisi normal bir sınıf değildir, sadece neyin yapılacağını göstermekte, ancak nasıl yapılacağını göstermemektedir. Java da çoklu kalıtım dahili sınıflar ve arayüzlerle yapılmaktadır. Arayüzler değişkenler ve gövdesiz (soyut) metodlardan oluşur. Arayüzlerin kullanılmasındaki amaç farklı sınıfların, yapış şekilleri farklı dahi olsa aynı işlevleri yerine getirmelerini (polimorfizm) sağlamaktır.

18 Arayüz Oluşturma Arayüz tanımlanırken Class ifadesi yerine Interface ifadesi kullanılır. İçerdiği metodlar gövdesizdir. Bu ifade, bir maddenin yoğunluğu, hacmi ve kütlesi olur demenin Java daki yoludur. Maddenin hacmi nasıl hesaplanır, kütlesi nasıl verilir, hiçbir şekilde belirtmemektedir. Sadece ne olması gerektiğini söylemektedir.

19 Arayüz Uygulaması Bir sınıfın arayüzdeki bütün metodları içerdiğini, gerçekleştirdiğini belirtmesine uygulama (implementation) denir ve 'implements anahtar kelimesiyle ifade edilir. Burada "Küp/Küre diye bir nesnemiz var ve o bir maddedir, bir maddede olabilecek bütün nitelikler onda da bulunur. demiş olduk ve bunların nasıl hesaplandığını gösterdik.

20 Soyut Sınıf Kavramı Programlama sırasında genel davranışları gösteren sınıflar soyut sınıf ( abstract class ) olarak kodlanabilir. Soyutlama ( abstraction ) Soyut sınıflardan nesne oluşturulmaz. Soyut sınıflar, ilgili alt-sınıfları tanımlamak ve onlara ilişkin detayları doldurmak amacıyla kullanılırlar (tekrar kullanıma esas olarak).

21 Soyut Sınıflar Bazı metodlarını tanımlamış, bazılarının uygulamasını kendisinden türeyen sınıflara bırakmış olan sınıflara soyut sınıf (abstract class) denir. Tüm alt sınıfları tarafından paylaşılacak metodların tanımlarını içeren sınıflardır. Bunun yanında içeriği belirlenmemiş sadece etiketi belli bir yada daha fazla soyut metod içerirler. Soyut sınıftan nesne oluşturulamaz. Mutlaka extends anahtar sözcüğü ile yeni sınıflara miras bırakarak kullanılmalıdır.

22 Soyut Sınıf Oluşturma Sınıfın ve metodun soyut olduğunu belirtmek için abstract anahtar sözcüğü kullanılır. Soyut metodlar şu örneklerde belirtildiği gibi gövdeleri olmayacak şekilde tanımlanır: public abstract voids1(); public abstract ints2(int a); Eğer bir sınıf enaz bir soyut metod içeriyorsa soyut sınıf olarak tanımlanması gereklidir. abstract class N{ public abstract voids1(); }

23 Soyut Sınıf Oluşturma Eğer bir alt sınıf soyut bir üst sınıftan türetilmiş ve üst sınıfın tüm soyut metodlarını kendi bünyesinde tanımlamamışsa o da bir soyut sınıf olmak zoundadır. abstract class N{ public abstract voids1(); } class N1 extends N{ public voids1(){ System.out.println( s1 ) } } abstract class N2 extends N{ public voids2(){ System.out.println( s2 ) } }

24 Soyut Sınıflar Soyut sınıfların temel amacı büyük yazılım projelerinin organize bir şekilde geliştirilmelerini sağlamaktır. İlk önce bir soyut sınıf oluşturulur ve yazması planlanan metodlar bu sınıfa soyut şekilde konur. Sonra soyut sınıfların alt sınıfları tanımlanır. Bütün soyut metodların alt sınıflardaki ifadeleri tamamlandığında yazılım tamamlanmış olur.

25 Örnek-1 Bir küp içinde bir küre içinde kütle, hacim ve yoğunluğun çarpımına eşittir. Ancak önceki örnekte yaptığımız iki nesnede de bu ortak özelliği kullanamıyor ve kütle hesaplamasını kendisi yapılıyor. Matter ara yüzünü implement eden ne kadar sınıf varsa bu işlem o kadar tekrarlanacak demektir. Bu 'ortak işlemi bir kere yapıp, hep onun kullanılmasını sağlamak mümkündür.

26 Örnek1-devam Soyut Body sınıfı, hem küpün hem de kürenin ortak özelliklerini içermektedir. Yoğunluk özelliği ikisinde de ortaktır. Bu şekilde kalıtım yoluyla küp ve küreye geçebilir. getvolume() metodu hacim hesaplamak için her nesne farklı bir method kullandığı için soyut bırakılmıştır. getmass() hesaplaması sınıftan sınıfa değişmediği için tanımlanmıştır Burada getmass() metodu henüz yazılmamış getvolume() metodunu kullanarak bir işlem yapabilmektedir. Bu sadece NYP teknikleriyle mümkün olan bir programlama işlemidir.

27 Örnek1-devam İki sınıf ta getmass() diye bir metod yazmak zorunda kalmadan, hiç bir ek kodlama yapmadan kütle hesabı yapabilmektedir.

28 Örnek2

29 Arayüzle Çoklu Kalıtım Sağlamak Bir alt sınıfın sadece bir direk üst sınıfı olabilir. Ancak aynı anda bir sınıfı extend edip bir veya daha fazla arayüzü implement edebilir. extends anahtar sözcüğünün aksine, implements anahtar sözcüğüyle bir sınıfın aldığı hiç bir şey yoktur. Sadece bazı metodları implement etmeyi taahhüt etmektedir.

30 Arayüzle Çoklu Kalıtım Sağlamak Cube sınıfı hem Body sınıfını extend edebilir hem de Matter arayüzünü implement edebilir. public class Cube extends Body implements Matter{ //... } Üstsınıf'ın bir arayüzü implement etmesi durumunda altsınıf ta etmiş sayılır. public class Body implements Matter{ //... } dersek public class Cube extends Body{ //... } dememiz yeterlidir. Cube sınıfı Matter i implement etmeyi de miras yoluyla almış demektir.

31 Arayüzlerin Kullanım Özellikleri Arayüzler bütün metodları soyut olan bir soyut sınıf gibi düşünülebilirler. Ancak sınıflardan ayrılan başka özellikleri vardır. Ayrıca söylensin veya söylenmesin bütün metod ve özellikler public sayılır ve başlarına protected veya private gibi anahtar sözcükler alamazlar. Arayüzler de bütün özellikler public, final ve static tir. O yüzden arayüzler de tanımlanan özellikler bir veya daha fazla sınıfta kullanılan sabitler için kullanılır.

32 Arayüzlerin Kullanım Özellikleri Circle sınıfında tanımlanmadığı halde PI değişkeni, sadece Math Constants arayüzünü implement ettiği için erişilebilir durumdadır. Bu arayüzü implement eden başka bir sınıfta aynı şekilde PI ye erişebilir. Bu anlamda PI bir sabittir. Ama PI sadece implement edilen class'lar tarafından görülmekte olduğundan global değildir. Zaten Java da global değişken ve sabit ihtiyacı duyulan yerlerde interface kullanılır.

33 Soyut Sınıf ve Arayüzler Özet Soyut sınıflar ve arayüzler, kendilerinden türetilen alt sınıflara ortak alanları ve üyeleri sunarlar. Tanımlanış amaçları her nekadar benzer olsa da yapıları ve kullanım şekilleri açısından farklılıkları vardır. Arayüzler sadece özelliklerin ve metodların tanımlamalarını içerirken, Soyut sınıflarda alanlar ve üyelerin tanımlamaların yanısıra işlevlerine de yer verilebilir.

34 Soyut Sınıflar package not04c; public abstract class VergiKaynagi { private double oran; } public VergiKaynagi(double oran) { this.oran = oran; } public double getoran() { return oran; } public abstract double getaylikvergi(); public abstract double getyillikvergi(); public abstract double getsabitvergi();

35 Soyut Sınıflar-2 package not04c; public class KiraKontrati extends VergiKaynagi { private double aylikkira; } public KiraKontrati(double oran, double aylikkira) { super(oran); this.aylikkira = aylikkira; } public double getaylikvergi() { return aylikkira * getoran(); } public double getyillikvergi() { return getaylikvergi() * 12; } public double getsabitvergi() { return 0; } Abstract olan tum siniflari implement etmen gerekir, aksi taktirde extend eden sinif da abstract olmak zorundadir.

36 DAHILI SINIFLAR

37 Neden Dahili Sinif Diğer programlama dillerinde olan çoklu kalıtım (multiple inheritance) özelliği Java programlama dilinde yoktur. Java programlama dilinde çoklu kalıtım desteğinden faydalanmak için arayüz (interface) ve dahili sınıflar (inner classes) kullanılır

38 Dahili Sınıflar Sınıf içerisinde tanımlanmış sınıflardır. Birbiriyle bağlantılı olan yapıları bir bütün halinde tanımlamamıza yardımcı olurlar. Okunabilirlik ve yazılabilirlik kurallarına aykırı olduklarından pek tercih edilmemektedirler. Dahili sınıfları 3 grupta inceleyebiliriz: Üye dahili sınıflar (member classes) Yerel sınıflar (local classes) İsimsiz sınıflar (anonymous classes)

39 Üye Dahili Sınıflar Nesneler farklı nesnelerin bir araya gelmesiyle oluşabilmektedir. (Örn. araba) Bir araya gelerek bir bütün oluşturan bu nesnelerin hepsini dahili sınıflar olarak ana sınıf içerisinde tanımlayabiliriz.

40 Örnek Toplama sınıfına ait bir nesne oluşturmak için, önce Hesaplama sınıfına ait bir nesne oluşturmamız gerekir. Hesaplama.Toplama ht = new Hesaplama().new Toplama() ;

41 Üye Dahili Sınıflar Dâhili üye sınıflara, public, friendly, protected veya private erişim belirleyicileri atanabilir. Dikkat edilmesi gereken diğer bir husus ise bir dâhili üye sınıf private erişim belirleyicisine sahip olsa dahi, çevreleyici sınıf içerisindeki tüm yordamlar tarafından erişilebilir olmasıdır. Dâhili üye sınıflar, içerisinde bulundukları çevreleyici sınıfların tüm alanlarına (statik veya değil private dâhil) yordamlarına (statik veya değil-private dâhil) erişebilirler.

42 Üye Dahili Sınıflar Içiçe üye dahili sınıflar yaratılabilir. Dâhili üye sınıflar, soyut (abstract) sınıf olarak tanımlanabilir. Bu soyut dâhili üye sınıflardan türeyen sınıflar, soyut dâhili üye sınıfların içerisindeki gövdesiz (soyut) yordamları iptal etmeleri gerekmektedir Üye dahili sınıflar kendisini çevreleyen sınıflarla aynı adı taşıyamazlarç

43 Yerel Dahili Sınıflar Yerel sınıflar, yalnızca içinde tanımlandıkları, metodun veya bloğun içerisinde geçerlidir. Dahili üye sınıfların çevreleyici sınıfları yerine, yerel sınıfların çevreleyici yordamları veya blokları vardır. Yerel sınıflar tanımlandıkları bu metodların veya blokların dışarısından erişilemezler.

44 Yerel Dahili Sınıflar Yerel sınıflar başka sınıflardan türetilebilir veya arayüzlere (interface) erişebilir. Yerel sınıfların yapılandırıcıları olabilir. Yerel sınıflar, içinde bulundukları yordamın sadece final olan değişkenlerine ulaşabilirler. Yerel sınıflar, statik veya statik olmayan yordamların içerisinde tanımlanabilirler.

45 Yerel Dahili Sınıflar Yerel sınıflar, private, protected ve public erişim belirleyicisine sahip olamazlar sadece friendly erişim belirleyicisine sahip olabilirler. Yerel sınıflar, statik olarak tanımlanamaz. Yerel sınıf kendisini çevreleyen sınıfla aynı ismi taşıyamaz

46 İsimsiz Dahili Sınıflar İsimsiz ifade edilebilen sınıflardır. Özellikle olay dinleyicilerin (event listeners) devreye sokulduğu uygulamalarda sıkça kullanılırlar. Diğer dâhili sınıf çeşitlerinde olduğu gibi, isimsiz sınıflar direk extends ve implements anahtar kelimelerini kullanarak, diğer sınıflardan türetilemez ve arayüzlere erişemez. İsimsiz sınıfların herhangi bir ismi olmadığı için, yapılandırıcısı da (constructor) olamaz.

47 İsimsiz sınıfları, yerel sınıfların kısaltılmışı gibi düşünebilirsiniz. Yerel sınıflarda return new BenimToplayicim() yerine, isimsiz sınıflarda hangi sınıf tipinde değer döndürüleceği en başta belirtilir Isimsiz ve yerel dahili siniflarin ayni is icin uygulanmasi ISIMSIZ SAHILI SINIF: YEREL DAHILI SINIF:

48 Örnek Yerel sınıflarda return new BenimToplayicim() yerine, isimsiz sınıflarda hangi sınıf tipinde değer döndürüleceği en başta return new Toplayici() ile belirtildi.

Kalıtım ( Inheritance ) BBS-515 Nesneye Yönelik Programlama

Kalıtım ( Inheritance ) BBS-515 Nesneye Yönelik Programlama Kalıtım ( Inheritance ) BBS-515 Nesneye Yönelik Programlama Ders #4 (11 Kasım 2009) Geçen ders: Java da işleçler ( operators ) Java da kontrol-akış ( control-flow ) ve döngü ( loop ) deyimleri Java konsol

Detaylı

Java da Soyutlama ( Abstraction ) ve Çok-biçimlilik ( Polymorphism )

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ı

NESNE YÖNELİMLİ PROGRAMLAMA HAFTA # 9

NESNE YÖNELİMLİ PROGRAMLAMA HAFTA # 9 NESNE YÖNELİMLİ PROGRAMLAMA HAFTA # 9 ARAYÜZLER VE DAHILI SINIFLAR Diğer programlama dillerinde olan çoklu kalıtım (multiple inheritance) özelliği Java programlama dilinde yoktur. Java programlama dilinde

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) 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 Yönelimli Programlama

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ı

NESNE YÖNELİMLİ PROGRAMLAMA HAFTA # 7

NESNE YÖNELİMLİ PROGRAMLAMA HAFTA # 7 NESNE YÖNELİMLİ PROGRAMLAMA HAFTA # 7 Yukarı Çevirim (Upcasting) Çok Biçimlilik (Polimorfizm) Sözlük anlamı "bir çok şekil " Bir metodun aynı isimle farklı parametrelerle çağırılmasıdır. Çok Biçimlilik

Detaylı

Görsel Programlama DERS 02. Görsel Programlama - Ders02/ 1

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ı

İçerik. Kapsülleme ( Encapsulation ) Java da Kalıtım: Örnek 2.1. Kalıtım ( Inheritance ) Tekrar Ziyaret. Java da Kalıtım: Örnek 2.2.

İçerik. Kapsülleme ( Encapsulation ) Java da Kalıtım: Örnek 2.1. Kalıtım ( Inheritance ) Tekrar Ziyaret. Java da Kalıtım: Örnek 2.2. İçerik Geçen ders: Kalıtım ( inheritance ) Kapsülleme ( Encapsulation ) BBS-515 Nesneye Yönelik Programlama Ders #5 (18 Kasım 2009) Bu ders: Kalıtım ( inheritance ) tekrar ziyaret Java da super kullanımı

Detaylı

BİL-141 Bilgisayar Programlama I (Java)

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ı

Kapsülleme ( Encapsulation ) BBS-515 Nesneye Yönelik Programlama

Kapsülleme ( Encapsulation ) BBS-515 Nesneye Yönelik Programlama Kapsülleme ( Encapsulation ) BBS-515 Nesneye Yönelik Programlama Ders #5 (18 Kasım 2009) İçerik Geçen ders: Kalıtım ( inheritance ) Bu ders: Kalıtım ( inheritance ) tekrar ziyaret Java da super kullanımı

Detaylı

7. HAFTA. Erişim Belirleyiciler

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ı

Uzaktan Eğitim Uygulama ve Araştırma Merkezi

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ı

Kalıtım (Inheritance)

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ı

Erişim konusunda iki taraf vardır:

Erişim konusunda iki taraf vardır: Erişim Erişim konusunda iki taraf vardır: Kütüphaneyi kullanan kişiler (client) Kütüphaneyi yazan kişiler Paket (package) Paketler kütüphaneyi oluşturan elemanlardır. PaketKullanim.java Varsayılan Paket

Detaylı

ANA SINIF TÜRETİLEN BİRİNCİ SINIF TÜRETİLEN İKİNCİ SINIF

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ı

NESNE YÖNELİMLİ PROGRAMLAMA HAFTA # 4. Yrd.Doç.Dr.Hacer Karacan

NESNE YÖNELİMLİ PROGRAMLAMA HAFTA # 4. Yrd.Doç.Dr.Hacer Karacan NESNE YÖNELİMLİ PROGRAMLAMA HAFTA # 4 Yrd.Doç.Dr.Hacer Karacan İçerik Nesne Oluşturma Nesnenin Yaşam Süreci Dahili Sınıflar Nesne Oluşturma Java dahil pek çok programlama dilinde nesne oluşturmak için

Detaylı

Paket Erişimleri. Altuğ B. Altıntaş 2003 Java ve Yazılım Tasarımı - Bölüm 4 1

Paket Erişimleri. Altuğ B. Altıntaş 2003 Java ve Yazılım Tasarımı - Bölüm 4 1 Paket Erişimleri Altuğ B. Altıntaş 2003 Java ve Yazılım Tasarımı - Bölüm 4 1 Erişim Erişim konusunda iki taraf vardır: Kütüphaneyi kullanan kişiler (client) Kütüphaneyi yazan kişiler Altuğ B. Altıntaş

Detaylı

YZM 2105 Nesneye Yönelik Programlama

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ı

HSancak Nesne Tabanlı Programlama I Ders Notları

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ı

Arayüz soyut metotların oluşturduğu bir koleksyondur. Bir sınıf arayüzü çalıştırırken arayüzün sahip olduğu soyut metotları da miras alır.

Arayüz soyut metotların oluşturduğu bir koleksyondur. Bir sınıf arayüzü çalıştırırken arayüzün sahip olduğu soyut metotları da miras alır. Bölüm 20 20 Arayüzler Arayüz bir sınıf değildir. Arayüz yazmak sınf yazmaya çok benzer ancak ikisi birbirinden farklı konseptlerdir. Sınıf bir nesnenin özelliklerini ve davranışlarını belirtirken; bir

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. 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ı

Sınıf üyeleri: değişkenler (fields) and metotlar (methods) Değişkenler: nesne içerisindeki değişkenlerdir Temel veri tipi veya sınıf tipi

Sınıf üyeleri: değişkenler (fields) and metotlar (methods) Değişkenler: nesne içerisindeki değişkenlerdir Temel veri tipi veya sınıf tipi Görsel Programlama Kalıtım, Temel/Alt Sınıf, Temel/Alt Sınıf Tip Dönüşümleri, Temel Sınıf Yapıcıları, super Anahtar Kelimesi, Sınıf Üyesi Görünürlüğü, Statik Üyeler ve Final Üyeler Sınıflar Programcı tarafından

Detaylı

Java Dersi. Altuğ Bilgin Altıntaş

Java Dersi. Altuğ Bilgin Altıntaş Java Dersi Altuğ Bilgin Altıntaş Bu Dönem Hakkında Corba Servlet RMI Temel Kısım EJB JSP XML 2 JDBC JNI Çalışma Evreleri 6 Çalışma Evreleri 7 Java dosyasının hali 7 İlk Java uygulaması 7 Ciddi bir uygulama

Detaylı

PAKET ERİŞİMLERİ SINIFLARIN YENİDEN KULLANIMI. BMU-112 Algoritma ve Programlama-II Yrd. Doç.Dr. İlhan AYDIN

PAKET ERİŞİMLERİ SINIFLARIN YENİDEN KULLANIMI. BMU-112 Algoritma ve Programlama-II Yrd. Doç.Dr. İlhan AYDIN PAKET ERİŞİMLERİ SINIFLARIN YENİDEN KULLANIMI BMU-112 Algoritma ve Programlama-II Yrd. Doç.Dr. İlhan AYDIN PAKET (PACKAGE) Paketler kütüphaneleri oluşturan elemanlardır. import java.io.bufferedreader;

Detaylı

Nesne Yönelimli Programlama

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ı

Sunum İçeriği. Programlamaya Giriş 22.03.2011

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ı

5. Bölüm Alt Sınıflar (Nested Classes) Java ile Nesne Merkezli ve Fonksiyonel Programlama Akın Kaldıroğlu

5. Bölüm Alt Sınıflar (Nested Classes) Java ile Nesne Merkezli ve Fonksiyonel Programlama Akın Kaldıroğlu Java ile Nesne Merkezli ve Fonksiyonel Programlama 5. Bölüm Alt Sınıflar (Nested Classes) Akın Kaldıroğlu Ocak 2017 Küçük Ama Önemli Bir Konu Ø Bu dosya ve beraberindeki tüm, dosya, kod, vb. eğitim malzemelerinin

Detaylı

C++ Dersi: Nesne Tabanlı Programlama

C++ Dersi: Nesne Tabanlı Programlama C++ Dersi: Nesne Tabanlı Programlama Bölüm 13: Miras İçerik Miras Kavramı Miras Yönteminin Uygulanması Erişim Etiketleri: public, private, protected Miras ve Yapıcı Fonksiyonlar Üst Sınıf Tanımlamasında

Detaylı

Lab7 DOĞU AKDENİZ ÜNİVERSİTESİ BİLGİSAYAR VE TEKNOLOJİ YÜKSEKOKULU BİLGİSAYAR PROGRAMCILIĞI. BTEP212 Java. Uygulama1: package javaapplication58;

Lab7 DOĞU AKDENİZ ÜNİVERSİTESİ BİLGİSAYAR VE TEKNOLOJİ YÜKSEKOKULU BİLGİSAYAR PROGRAMCILIĞI. BTEP212 Java. Uygulama1: package javaapplication58; BTEP212 Java DOĞU AKDENİZ ÜNİVERSİTESİ BİLGİSAYAR VE TEKNOLOJİ YÜKSEKOKULU BİLGİSAYAR PROGRAMCILIĞI Lab7 bazen bir metodun içinde o metodun ait olduğu sınıftan yaratılacak nesneyi veya o nesnenin bir alt

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 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ı

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 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ı

Facade (Cephe) Tasarım Şablonu KurumsalJava.com

Facade (Cephe) Tasarım Şablonu KurumsalJava.com Facade (Cephe) Tasarım Şablonu KurumsalJava.com Özcan Acar Bilgisayar Mühendisi http://www.ozcanacar.com Profesyonel yazılım sistemleri birçok komponentin birleşiminden oluşur. Yazılım esnasında bir çok

Detaylı

Sınıf üyeleri: değişkenler (fields) and metotlar (methods) Değişkenler: nesne içerisindeki değişkenlerdir Temel veri tipi veya sınıf tipi

Sınıf üyeleri: değişkenler (fields) and metotlar (methods) Değişkenler: nesne içerisindeki değişkenlerdir Temel veri tipi veya sınıf tipi Görsel Programlama Metot Yeniden Tanımlama, Metot Aşırı Yükleme, Dinamik Metot Yükleme, Soyut Sınıflar, Soyut Metotlar, Arayüzler, Çoklu Kalıtım, Anonim Sınıflar ve java.lang.object Sınıflar Programcı

Detaylı

Nesne Yönelimli Programlama

Nesne Yönelimli Programlama Nesne Yönelimli Programlama Not: Bu dersin sunumları, Java Bilgisayar Programlamaya Giriş, A. Yazıcı, E. Doğdu, M. Özbayoğlu, M. Erten, O. Ergin kitabı kullanılarak hazırlanmıştır. Konular Giriş Alt Sınıflar

Detaylı

Uzaktan Eğitim Uygulama ve Araştırma Merkezi

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ı

/*Aşağıda ki kodları doğru şekilde anlar ve kullanırsanız java da sınıfları biraz da olsa anlamış olursunuz.*/

/*Aşağıda ki kodları doğru şekilde anlar ve kullanırsanız java da sınıfları biraz da olsa anlamış olursunuz.*/ Ana Main Kodları /*Aşağıda ki kodları doğru şekilde anlar ve kullanırsanız java da sınıfları biraz da olsa anlamış olursunuz.*/ package javaapplication1; public class JavaApplication1 public static void

Detaylı

Ders 8 Konu Özeti ve Problemler

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ı

BİL-142 Bilgisayar Programlama II

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ı

Sınıfların Tekrardan Kullanılması. Altuğ B. Altıntaş 2003 Java ve Yazılım Tasarımı - Bölüm 5 1

Sınıfların Tekrardan Kullanılması. Altuğ B. Altıntaş 2003 Java ve Yazılım Tasarımı - Bölüm 5 1 Sınıfların Tekrardan Kullanılması Altuğ B. Altıntaş 2003 Java ve Yazılım Tasarımı - Bölüm 5 1 İki Yöntem Komposizyon (Composition) Kalıtım (Inheritance) Altuğ B. Altıntaş 2003 Java ve Yazılım Tasarımı

Detaylı

İki Yöntem. Komposizyon (Composition) Kalıtım (Inheritance)

İki Yöntem. Komposizyon (Composition) Kalıtım (Inheritance) İki Yöntem Komposizyon (Composition) Kalıtım (Inheritance) Komposizyon(Composition) class Meyva { } //... class Elma { } private Meyva m = new Meyva(); //... Komposizyon - UML Örnek Motor.java AileArabasi.java

Detaylı

NESNE YÖNELİMLİ PROGRAMLAMA HAFTA # 6

NESNE YÖNELİMLİ PROGRAMLAMA HAFTA # 6 NESNE YÖNELİMLİ PROGRAMLAMA HAFTA # 6 SINIFLARIN TEKRAR KULLANILMASI Belli bir amaç için yazılmış ve doğruluğu kanıtlanmış olan sınıfları, yeni uygulamaların içerisinde kullanmak avantajlıdır: iş süresini

Detaylı

Programlama Dillerinde Kullanılan Veri Tipleri

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ı

Decorator Tasarım Şablonu

Decorator Tasarım Şablonu Decorator Tasarım Şablonu KurumsalJava.com Özcan Acar Bilgisayar Mühendisi http://www.ozcanacar.com http://www.javadergisi.com Mevcut bir sınıf hiyerarşisini ya da sınıfın yapısını değiştirmeden, oluşturulan

Detaylı

Yazılım Kodlama ve İ simlendirme Standartları v1.0

Yazılım Kodlama ve İ simlendirme Standartları v1.0 Yazılım Kodlama ve İ simlendirme Standartları v1.0 İçerik Yazılım Kodlama ve İsimlendirme Standartları... 2 1. Amaç... Hata! Yer işareti tanımlanmamış. 2. Kapsam... Hata! Yer işareti tanımlanmamış. 3.

Detaylı

MOBIL UYGULAMA GELIŞTIRME

MOBIL UYGULAMA GELIŞTIRME MOBIL UYGULAMA GELIŞTIRME PELIN YILDIRIM FATMA BOZYIĞIT YZM 3214 Celal Bayar Üniversitesi Hasan Ferdi Turgutlu Teknoloji Fakültesi Bu Derste Java Programlama (Crash Course) Class, Nesne, Metodlar, Overloading,

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 Öğ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ı

NESNE TABANLI PROGRAMLAMA

NESNE TABANLI PROGRAMLAMA NESNE TABANLI PROGRAMLAMA Öğr. Gör. Utku SOBUTAY İÇERİK 2 Nesne Tabanlı Programlama Sınıf, Nesne Kavramları Kapsulleme, Kalıtım ve Çok Biçimlilik Kavramları Nesne Tabanlı Programlama NESNE TABANLI PROGRAMLAMA

Detaylı

1. Aşağıdaki program parçacığını çalıştırdığınızda result ve param değişkenlerinin aldığı en son değerleri ve programın çıktısını yazınız.

1. Aşağıdaki program parçacığını çalıştırdığınızda result ve param değişkenlerinin aldığı en son değerleri ve programın çıktısını yazınız. 1. Aşağıdaki program parçacığını çalıştırdığınızda result ve param değişkenlerinin aldığı en son değerleri ve programın çıktısını yazınız. [10 puan] int param = 30; int result = 300; if (param > 45) result

Detaylı

Bölüm 12. Nesne yönelimli programlama desteği

Bölüm 12. Nesne yönelimli programlama desteği Bölüm 12 Nesne yönelimli programlama desteği 12. Bölüm konuları Giriş Nesne yönelimli programlama Nesne yönelimli diller için tasarım konuları C++ dilinde nesne yönelimli programlama desteği Nesne yönelimli

Detaylı

3. Bölüm Soyut Sınıflar (Abstract Classes) Java ile Nesne Merkezli ve Fonksiyonel Programlama Akın Kaldıroğlu

3. Bölüm Soyut Sınıflar (Abstract Classes) Java ile Nesne Merkezli ve Fonksiyonel Programlama Akın Kaldıroğlu Java ile Nesne Merkezli ve Fonksiyonel Programlama 3. Bölüm Soyut Sınıflar (Abstract Classes) Akın Kaldıroğlu Kasım 2015 Küçük Ama Önemli Bir Konu Ø Bu dosya ve beraberindeki tüm, dosya, kod, vb. eğitim

Detaylı

C++ Dersi: Nesne Tabanlı Programlama

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ı

İsimler ve Kapsam. 24 Şubat 2011. Programlama Dilleri - Pamukkale Üniversitesi 1

İ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ı

NESNEYE YÖNELİK PROGRAMLAMA

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ı

İÇİNDEKİLER VII İÇİNDEKİLER

İÇİNDEKİLER VII İÇİNDEKİLER İÇİNDEKİLER VII İÇİNDEKİLER 1 JAVA 8 NEDİR? 1 Java Nasıl Çalışır? 3 HOTSPOT Teknolojisi Nedir? 5 Çöp Toplayıcı (GarbageCollector) Nedir? 5 Jar Nedir? 6 Java Geliştirme Ortamı 7 Açıklama Satırıları 8 Nesnel

Detaylı

BTEP243 Ders 3. class Yazım Kuralı:

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ı

Ö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 Ö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ı

ELN1001 BİLGİSAYAR PROGRAMLAMA I

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ı

Nesneye Dayalı Programlama

Nesneye Dayalı Programlama SAKARYA ÜNİVERSİTESİ Nesneye Dayalı Programlama Hafta 6 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ı

İsimler ve Kapsam. Hafta 4 Ders 2 BLG339 PROGRAMLAMA DİLLERİ KAVRAMI

İ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ı

Görsel Programlama-I (Visual Programming) 2.Hafta

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ı

YZM 2105 Nesneye Yönelik Programlama

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ı

JAVA PROGRAMLAMA DİLİ ÖZELLİKLERİ

JAVA PROGRAMLAMA DİLİ ÖZELLİKLERİ JAVA PROGRAMLAMA DİLİ ÖZELLİKLERİ Java programlama dili, Java SUN bilgisayar şirketi tarafından 1991 yılında geliştiril Program bloklar halinde yazılır ve bloklar { } ile oluşturulur. Komutlar aynı satıra

Detaylı

Nesneye Yönelik Programlama (OOP) 7.Hafta

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ı

NESNEYE YÖNELİK PROGRAMLAMA. Yrd.Doç.Dr. Zeynep ORMAN ormanz@istanbul.edu.tr

NESNEYE YÖNELİK PROGRAMLAMA. Yrd.Doç.Dr. Zeynep ORMAN ormanz@istanbul.edu.tr NESNEYE YÖNELİK PROGRAMLAMA Yrd.Doç.Dr. Zeynep ORMAN ormanz@istanbul.edu.tr Kullanım Diyagramları (Use Case Diagram) Kullanım senaryoları sadece düz metin (text) olarak değil, istendiğinde metin yerine

Detaylı

Java da, tüm değişkenlerin kullanılmadan önce tanımlanması edilmesi gerekir. Bir değişken tanımlamanın temel gösterimi bu şekildedir:

Java da, tüm değişkenlerin kullanılmadan önce tanımlanması edilmesi gerekir. Bir değişken tanımlamanın temel gösterimi bu şekildedir: BÖLÜM 4 Değişken Tipleri Java da, tüm değişkenlerin kullanılmadan önce tanımlanması edilmesi gerekir. Bir değişken tanımlamanın temel gösterimi bu şekildedir: type identifier [ = value][, identifier [=

Detaylı

Eclipse, Nesneler ve Java 2 Java Nereden Çıktı? 2

Eclipse, Nesneler ve Java 2 Java Nereden Çıktı? 2 1 Eclipse, Nesneler ve Java 2 Java Nereden Çıktı? 2 Eclipse Mimarisi 4 Java Teknolojisine Genel Bir Bakış 6 Taşınabilirlik 6 Java Derleyicisi ve Bytecode 6 Java Sanal Makinası (Java Virtual Machine - JVM)

Detaylı

MALTEPE ÜNİVERSİTESİ MÜHENDİSLİK FAKÜLTESİ YAZILIM MÜHENDİSLİĞİ LİSANS PROGRAMI

MALTEPE ÜNİVERSİTESİ MÜHENDİSLİK FAKÜLTESİ YAZILIM MÜHENDİSLİĞİ LİSANS PROGRAMI MALTEPE ÜNİVERSİTESİ MÜHENDİSLİK FAKÜLTESİ YAZILIM MÜHENDİSLİĞİ LİSANS PROGRAMI 2011 2012 Güz Yarıyılı Java Programlama YZM 363 5 AKTS 4. yıl 7 yarıyıl Lisans Seçmeli 3 s/hafta 3 kredi Teorik: 3 s/hafta

Detaylı

BMÜ-112 ALGORİTMA VE PROGRAMLAMA-II LABORATUARI DENEY-2 FÖYÜ

BMÜ-112 ALGORİTMA VE PROGRAMLAMA-II LABORATUARI DENEY-2 FÖYÜ Amaçlar: 1- Arayüzler (Interfaces) 2- Soyut Sınıflar ve Metotlar(Abstract classes and methods) Uygulama-1: interface:cihaz ac() kapat() goster(string) class: TV class: LCD class: Projector... Cihaz adındaki

Detaylı

C# Metotlar ve Metot Tanımlama

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ı

Malzeme Gereksinim Planlaması (MRP)

Malzeme Gereksinim Planlaması (MRP) Malzeme Gereksinim Planlaması (MRP) Son ürün talebi bağımsız ve oldukça kararlıdır. Fakat aynı anda birden fazla değişik ürün üretilmesi söz konusu olabilir. Bu nedenle ihtiyaç duyulan malzeme miktarları

Detaylı

NESNE TABANLI PROGRAMLAMA-1 DERS UYGULAMALARI (22 EYLÜL - 14 KASIM

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ı

Nesneye Dayalı Programlama

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ı

NESNE TABANLI PROGRAMLAMA Temel Kavramlar

NESNE TABANLI PROGRAMLAMA Temel Kavramlar NESNE TABANLI PROGRAMLAMA Temel Kavramlar Özkan BİNGÖL Gümüşhane Üniversitesi Not: Bu sunumda, Yrd. Doç. Dr. Özlem AYDIN ve Doç. Dr. Yılmaz KILIÇASLAN ın Nesneye Yönelik Programlama dersi sunumlarından,

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 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 ile Nesneye Yönelik Programlama (Object Oriented Programming)

Java ile Nesneye Yönelik Programlama (Object Oriented Programming) Java ile Nesneye Yönelik Programlama (Object Oriented Programming) Giriş Yrd. Doç. Dr. Aybars UĞUR Örnek 1 Bir Yolcu sınıfı, yolcu1 nesnesi oluşturulması ve kullanılması class Yolcu String ad; String soyad;

Detaylı

Üst Düzey Programlama

Üst Düzey Programlama Üst Düzey Programlama Yazılımda Günlükleme (Logging) Üst Düzey Programlama-ders07/ 1 Günlükleme -Logging Tüm büyük çaplı uygulamalarda günlükleme(logging) ihtiyaçları bulunmaktadır. Bir uygulamanın hata

Detaylı

C++ Dersi: Nesne Tabanlı Programlama

C++ Dersi: Nesne Tabanlı Programlama C++ Dersi: Nesne Tabanlı Programlama Bölüm 9: Sınıf İçerik Sınıf Tanımı Nesne Tanımı İkili Kapsam Çözme Operatörü UML ile Sınıfların Gösterimi 2 Sınıf kavramı, nesne-tabanlı programlamanın temelini oluşturur.

Detaylı

Fonksiyonlar. C++ ve NESNEYE DAYALI PROGRAMLAMA 51. /* Fonksiyon: kup Bir tamsayının küpünü hesaplar */ long int kup(int x) {

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ı

TOPLAMADA KISAYOLLAR

TOPLAMADA KISAYOLLAR ARDIŞIK SAYILARIN TOPLANMASI TOPLAMADA KISAYOLLAR 1 Kural: Gruptaki en küçük sayı ile en büyük sayıyı topla, sonucu gruptaki sayıların miktarıyla çarp ve sonucu 2 ye böl. Örneğin 33 den 41 e kadar olan

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 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ı

Görsel Programlama DERS 03. Görsel Programlama - Ders03/ 1

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ı

Göstericiler (Pointers)

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ı

ALGORİTMA İ VE PROGRAMLAMA

ALGORİTMA İ VE PROGRAMLAMA ALGORİTMA İ VE PROGRAMLAMA II Öğr.Gör.Erdal GÜVENOĞLU Hafta 2 Maltepe Üniversitesi Bilgisayar Mühendisliği Bölümü ALGORİTMA ANALİZİ 2 Neden algoritmayı analiz ederiz? Algoritmanın performansını ölçmek

Detaylı

İçerik. Temel Kavramlar. Nesne Nedir? 1. Nesne : Örnek. Nesne Nedir? 2. Geçen hafta: Bu hafta: BBS-515 Nesneye Yönelik Programlama

İçerik. Temel Kavramlar. Nesne Nedir? 1. Nesne : Örnek. Nesne Nedir? 2. Geçen hafta: Bu hafta: BBS-515 Nesneye Yönelik Programlama İçerik Temel Kavramlar BBS-515 Nesneye Yönelik Programlama Geçen hafta: Nesneye yönelik programlama Ne demektir, nasıl ortaya çıkmıştır? Nesneye yönelik dil olarak JAVA ve ilişkili kavramlar Bu hafta:

Detaylı

BMM3101 PROGRAMLAMA DİLLERİ

BMM3101 PROGRAMLAMA DİLLERİ 2017-2018 Güz Yarıyılı Balıkesir Üniversitesi Bilgisayar Mühendisliği Bölümü BMM3101 PROGRAMLAMA DİLLERİ Yrd. Doç. Dr. İbrahim KÜÇÜKKOÇ Web: http://ikucukkoc.baun.edu.tr Email: ikucukkoc@balikesir.edu.tr

Detaylı

KODLAMA SİSTEMLERİNİN TANIMI :

KODLAMA SİSTEMLERİNİN TANIMI : KODLAMA SİSTEMLERİ KODLAMA SİSTEMLERİNİN TANIMI : Kodlama, iki küme elemanları arasında karşılıklı kesin olarak belirtilen kurallar bütünüdür diye tanımlanabilir. Diğer bir deyişle, görünebilen, okunabilen

Detaylı

Java da İstemci Tarafı Uygulamalar

Java da İstemci Tarafı Uygulamalar Java da İstemci Tarafı Uygulamalar ( Applets ) BBS-515 Nesneye Yönelik Programlama Ders #7 (7 Aralık 2009) İçerikç Geçen ders: Java da dizi ( array ) ve dizgi ( String ) tanımlama Örnekler Bu ders: 1.

Detaylı

public static int Toplam int x, int y

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ı

Temel Kavramlar BBS-515 Nesneye Yönelik Programlama

Temel Kavramlar BBS-515 Nesneye Yönelik Programlama Temel Kavramlar BBS-515 Nesneye Yönelik Programlama Ders #2 (2 Kasım 2009) İçerikç Geçen hafta: Nesneye yönelik programlama Ne demektir, nasıl ortaya çıkmıştır? Nesneye yönelik dil olarak JAVA ve ilişkili

Detaylı

YZM 2105 Nesneye Yönelik Programlama

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ı

Operatörlerin Aşırı Yüklenmesi

Operatörlerin Aşırı Yüklenmesi Operatörlerin Aşırı Yüklenmesi Operatörlerin Aşırı Yüklenmesi Tıpkı fonksiyonlara yaptığımız gibi öperatörlere de aşırı yükleme yapabiliriz.yani, operatörlere normal görevlerinin yanında farklı görevler

Detaylı

Sınıf Diyagramları Amaç: Sınıf Diyagramları Nasıl Çizilir?

Sınıf Diyagramları Amaç: Sınıf Diyagramları Nasıl Çizilir? Sınıf Diyagramları Sınıf diyagramı statik bir diyagramdır. Bir uygulamanın statik görünümünü temsil eder. Sınıf diyagramı sadece bir sistemin farklı yönlerini görselleştirmek, açıklamak ve belgelemek için

Detaylı

YZM 2108 Yazılım Mimarisi ve Tasarımı

YZM 2108 Yazılım Mimarisi ve Tasarımı YZM 2108 Yazılım Mimarisi ve Tasarımı Yrd. Doç. Dr. Deniz KILINÇ Celal Bayar Üniversitesi Hasan Ferdi Turgutlu Teknoloji Fakültesi Yazılım Mühendisliği 1 BÖLÜM - 1 OOP Hatırlatma Bu bölümde Nesneye Yönelik

Detaylı

JAVADA METOTLAR. BMÜ-111 Algoritma ve Programlama. Yrd. Doç. Dr. İlhan AYDIN

JAVADA METOTLAR. BMÜ-111 Algoritma ve Programlama. Yrd. Doç. Dr. İlhan AYDIN JAVADA METOTLAR BMÜ-111 Algoritma ve Programlama Yrd. Doç. Dr. İlhan AYDIN 1 Açık problem Amacımız sırasıyla 1 den 10, 10 dan 20 ye ve 35 ten 45 e kadarki sayıların toplamını bulmak olsun. Ne yapmak gerekir?

Detaylı

Yrd. Doç. Dr. Caner ÖZCAN

Yrd. Doç. Dr. Caner ÖZCAN Yrd. Doç. Dr. Caner ÖZCAN GİRİŞ Değişken ve dizilerde tutulan değerler programın çalışması esnasında değerlerini korurlarken programın çalışması sona erdiğinde veri kaybolur. Dosyalar verinin kalıcı olarak

Detaylı

Adapter Tasarım Şablonu

Adapter Tasarım Şablonu Adapter Tasarım Şablonu KurumsalJava.com KurumsalJavaAkademisi.com Özcan Acar Bilgisayar Mühendisi http://www.ozcanacar.com Giriş Adapter tasarım şablonu yardımı ile, sistemde mevcut bulunan bir sınıfın

Detaylı

Karar Destek Sistemi (DSS) Yazılımı ve Arayüzü

Karar Destek Sistemi (DSS) Yazılımı ve Arayüzü Karar Destek Sistemi (DSS) Yazılımı ve Arayüzü Karar destek programı Action Script 3.0 yazılım diliyle hazırlanmıştır. Program arayüzü farklı sayfalardan oluşmaktadır. Bu sayfalar; dahili kaynak girişi,

Detaylı

BMH-303 Nesneye Yönelik Programlama

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ı

Ekle Menüsü İşlevleri ÜNİTE 3. Bu üniteyi çalıştıktan sonra; Ekle Menüsü Çizimler Grafikler Bağlantılar Metin

Ekle Menüsü İşlevleri ÜNİTE 3. Bu üniteyi çalıştıktan sonra; Ekle Menüsü Çizimler Grafikler Bağlantılar Metin Ekle Menüsü İşlevleri ÜNİTE 3 Ekle Menüsü Çizimler Grafikler Bağlantılar Metin Bu üniteyi çalıştıktan sonra; Microsoft Excel hakkında temel işlemler öğrenildikten sonra grafik nasıl oluşturulur, çizim

Detaylı

HSancak Nesne Tabanlı Programlama I Ders Notları

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ı