NESNE YÖNELİMLİ PROGRAMLAMA HAFTA # 7

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

Download "NESNE YÖNELİMLİ PROGRAMLAMA HAFTA # 7"

Transkript

1 NESNE YÖNELİMLİ PROGRAMLAMA HAFTA # 7

2 Yukarı Çevirim (Upcasting)

3 Çok Biçimlilik (Polimorfizm) Sözlük anlamı "bir çok şekil " Bir metodun aynı isimle farklı parametrelerle çağırılmasıdır.

4 Çok Biçimlilik (Polimorfizm) Bir nesnenin davranış şekillerinin duruma göre değişebilmesidir. Eğer birden çok sınıfın ortak kullanacağı bir metod varsa, bu herbirinin temel alacağı bir ana sınıf içerisinde tanımlanabilir. Davranış şekillerindeki farklılıklar her sınıfın kendi yapısı içinde ifade edilir. Örneğin bir selam() metodu ekrana İngilizler için hello Almanlar için hallo yazdıracak biçimde çeşitlendirilebilir.

5 Çok Biçimlilik (Polimorfizm) class Personel { public void calis(); { System.out.println( Bu is yerinde farkli insanlar calisir ); class Sekreter extends Personel { public void calis() { System.out.println( Sekreter kadrolardan birisidir );

6 Çok Biçimlilik (Polimorfizm) class Ogretmen extends Personel { public void calis() { System.out.println( Ayrica hocalar da vardir ); public class CokBicimlilikDemo { public static void main(string [] args) { Personel kisi = new Personel(); Sekreter s = new Sekreter(); Ogretmen m = new Ogretmen(); isyap(kisi); isyap(s); isyap(m);

7 Çok Biçimlilik (Polimorfizm) public static void isyap(personel kisi) { kisi.calis(); Programda isyap() metodu farklı parametrelerle kullanılabilmektedir. Hangi parametrelerle çağırılırsa ilgili metot çağırılarak işlem yapılmaktadır. Çıktı: Bu is yerinde farkli insanlar calisir Sekreter kadrolardan birisidir Ayrica hocalar da vardir

8

9 Detaylar ana sınıf Asker türeyen sınıflar Er ve Yuzbasi Asker tipinde parametre kabul eden hazirol() yordamına Er ve Yuzbasi tipindeki referansları paslayabildik yukarı çevirim (upcasting)

10 Detaylar Polimorfizm hazirol() yordamının içerisinde gizli Bu yordamın (method) içerisinde Asker tipinde olan a referansı kendisine gelen 2 değişik nesneye bağlanabildi: Er Yuzbasi

11 Detaylar Asker nesnesine bağlı Asker tipindeki referansı, hazirol() yordamına parametre olarak gönderiyoruz hazirol() yordamının içerisinde Asker tipindeki yerel a değişkenimiz, kendi tipinden başka nesnelere de (Er ve Yuzbasi) bağlanabiliyor Asker tipindeki yerel a değişkeni bir çok şekle girmiş bulunmaktadır.

12 Detaylar Aşağıdaki ifadelerin hepsi doğrudur: Asker a = new Asker() ; Asker a = new Er(); Asker a = new Yuzbasi();

13 Geç Bağlama (Late Binding) Er nesnesine bağlı Er tipindeki referansımızı (e) hazirol() yordamına parametre olarak gönderiyoruz. Hangi nesnenin selamver() yordamı çağrılacaktır? Cevap Er nesnesi Çünkü Asker tipindeki yerel değişken (a) Er nesnesine bağlanmıştır. Eğer Er nesnesinin selamver() yordamı olmasaydı o zaman Asker nesnesine ait olan selamver() yordamı çağrılacaktı fakat Er sınıfının içerisinde, ana sınıfa ait olan (Asker sınıfı) selamver() yordamı iptal edildiğinden (override) dolayı Java, Er nesnesinin selamver() yordamını çağırılacaktır.

14 Geç Bağlama (Late Binding) Hangi nesnenin selamver() yordamının çağrılacağı ne zaman belli olur? Derleme anında (compile-time) / çalışma anında (run-time) Cevap çalışma anında (run-time) Neden derleme anında hazirol() yordamına hangi tür nesneye ait referansın gönderileceğinin belli olmaması

15 Geç Bağlama (Late Binding) Son olarak, Yuzbasi nesnesine bağlı Yuzbasi tipindeki referansımızı hazirol() yordamına parametre olarak gönderiyoruz Peki şimdi hangi nesneye ait selamver() yordamı çağrılır? Asker nesnesinin / Yuzbasi nesnesinin Cevap Yuzbasi nesnesine ait olan selamver() yordamı Neden Asker tipindeki yerel değişkenimiz heap alanındaki Yuzbasi nesnesine bağlıdır ve selamver() yordamı Yuzbasi sınıfının içerisinde iptal edilmiştir (override) Eğer selamver() yordamı Yuzbasi sınıfının içerisinde iptal edilmeseydi o zaman Asker sınıfına ait (ana sınıf) selamver() yordamı çağrılacaktı.

16 Geç Bağlama (Late Binding) Eğer bir yordamın hangi nesneye ait olduğu çalışma anında belli oluyorsa bu olaya geç bağlama (late-binding) denir. Bu olayın tam tersi ise erken bağlamadır (early binding) Hangi nesnenin hangi yordamının çağrılacağının derleme anında bilinmesi Bu örneğimizde hangi sınıf tipindeki referansın hazirol() yordamına paslandığını bilmek kolaydır: Önce Asker sınıfına ait bir referans sonra Er sınıfına ait bir referans ve en son olarak da Yuzbasi sınıfına ait bir referans bu yordama parametre olarak gönderiliyor Ancak daha karmaşık örnekler için aynı şeyi söylemek bu kadar kolay olmayabilir.

17 Geç Bağlama (Late Binding)

18 Geç Bağlama (Late Binding) Hangi nesnenin avyakala() yordamının çağrılacağı derleme anında (compiletime) bilinemiyor rasgelesec() yordamınında Math.random() yordamı her seferinde 0 ile 2 arasında rasgele sayılar üretiyor. Bu üretilen sayılar doğrultusunda Hayvan nesnesi Kartal nesnesi veya Timsah nesnesi döndürülebilir Bu sebepten dolayı uygulamamızı her çalıştırdığımızda Hayvan tipindeki dizinin içerisine değişik tipteki nesnelerin, değişik sırada olabilecekleri görülür.

19 Geç Bağlama (Late Binding) Geç (late) / dinamik (dynamic) / çalışma anında (runtime) bağlama dizi içerisindeki elemanlar ancak çalışma anında (runtime) belli oluyor h[j].avyakala() derken, derleme anında (compiletime) hangi nesnenin avyakala() yordamının çağrılacağı Java tarafından bilinemez bu olay ancak çalışma anında (run-time) bilinebilir

20 Final ve Geç Bağlama Final özelliğinin kullanılmasının iki sebebi: 1. tasarım 2. verimlilik Verimlilik geç bağlama (late binding) özelliği ile bağlantılı: Bir yordamı final yaparak şunu demiş oluruz: Bu yordam, türetilmiş olan alt sınıfların içerisindeki diğer yordamlar tarafından iptal edilemesin (no override!) Bir yordam iptal edilemezse geç bağlama (late binding) özelliği ortadan kalkar.

21 Final ve Geç Bağlama goster() yordamının içerisinde Kedi tipindeki k yerel değişkenine bağlı olan nesnenin, yakalaav() yordamı çağrılmaktadır: hangi nesnenin yakalaav() yordamı? Kedi nesnesininki mi Kaplan nesnesininki mi? Java, yakalaav() yordamını çağırmadan önce geç bağlama özelliğini devreye sokarak, doğru nesneye ait uygun yordamı çağırmaya çalışır Bu işlemler sırasında verimlilik düşer

22 Final ve Geç Bağlama yakalaav() yordamı final yapılarak, bu yordamın Kaplan sınıfının içerisinde iptal edilmesi engellendi Geç bağlama özelliği kapatıldı Verimlilik arttı

23 Neden Polimorfizm?

24 Neden Polimorfizm? mesaibasla() yordamında dizi içerisindeki elemanların teker teker hangi tipte oldukları kontrol edilip, tiplerine göre calis() yordamları çağrılmaktadır. Calisan sınıfından türetilecek her yeni sınıf için mesaibasla() yordamının içerisine ayrı bir if-else koşul ifade yazmak gerçekten çok acı verici bir olay olurdu. Polimorfizm bizi bu zahmet veren işlemden kurtarır.

25 Neden Polimorfizm?

26 Neden Polimorfizm?

27 Genişletilebilirlik (Extensibility) Genişletebilirlik mevcut hiyerarşiyi kalıtım yolu ile genişletme Yeni sınıflar

28 Genişletilebilirlik (Extensibility)

29 Genişletilebilirlik (Extensibility) Ekran çıktısı:

30 Soyut Sınıflar ve Yordamlar (Abstract Classes & Methods) Yukarıda görüldüğü üzere Calisan sınıfı hiç bir iş yapmamaktadır. "Madem ki Calisan sınıfı hiç bir iş yapmıyor, ne diye onu oraya yazdık? " Cevap birleştirici bir rol oynadığı için Soyut sınıflar, şu ana kadar bildiğimiz sınıflardan farklıdırlar. Soyut (abstract) sınıflarımızı direk new() ile oluşturamayız. Soyut sınıfların var olmasındaki en büyük sebeplerden biri birleştirici bir rol oynamalarıdır. Soyut bir sınıftan türetilmiş alt sınıflara ait nesneler, çok rahat bir şekilde yine bu soyut sınıf tipindeki referanslara bağlanabilirler (yukarı çevirim). Böylece polimorfizm ve geç bağlamanın kullanılması mümkün olur.

31 Soyut Sınıflar ve Yordamlar (Abstract Classes & Methods)

32 Soyut Sınıflar ve Yordamlar (Abstract Classes & Methods)

33 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. Sınıfın ve metodun soyut olduğunu belirtmek için abstract anahtar sözcüğü kullanılır.

34 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 void s1(); public abstract int s2(int a); Eğer bir sınıf en az bir soyut metod içeriyorsa soyut sınıf olarak tanımlanması gereklidir. abstract class N{ public abstract void s1();

35 Soyut Sınıf Oluşturma Eğer bir altsınıf soyut bir üst sınıftan türetilmiş ve üstsınıfın tüm soyut metodlarını kendi bünyesinde tanımlamamışsa o da bir soyut sınıf olmak zorundadır. abstract class N{ public abstract void s1(); class N1 extends N{ public void s1(){system.out.println( s1) abstract class N2 extends N{ public void s2(){system.out.println( s2)

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

37 Örnek Bir küp için de bir küre için de 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 arayü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.

38 Bu sadece NYP teknikleriyle mümkün olan bir programlama işlemidir. Örnek (devam) abstract public class Body{ public double density=1.0; public Body(double d){ density=d; public double getdensity(){ return density; public double getmass(){ return density*getvolume(); abstract public double getvolume(); 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.

39 Örnek (devam) public class CubeBody extends Body{ public double edge=1.0; public CubeBody(double d,double e){ super(d); edge=e; public double getvolume(){ return edge*edge*edge; public class SphereBody extends Body{ public double radius=1.0; public SphereBody(double d,double r){ super(d); radius=r; public double getvolume(){ return (3.14 * radius * radius * radius )/3; İki sınıf ta getmass() diye bir metod yazmak zorunda kalmadan, hiç bir ek kodlama yapmadan kütle hesabı yapabilmektedir.

40 Niye Soyut Sınıf ve Yordamlara İhtiyaç Duyarız? Cizim sınıfımızın içerisinde bulunan cizgiciz() yordamı soyut (abstract) değildir fakat noktaciz() yordamı soyuttur, neden? cizgiciz() yordamı ekranlara çizgi çizmek için noktaciz() yordamına ihtiyaç duyuyor cizgiciz() yordamının ihtiyaç duyduğu tek şey, ekran üzerinde tek bir noktanın nasıl çizileceğini bilmektir, bu bilgiler cizgiciz() yordamına verildiği sürece sorun yaşanmayacaktır. Ekrana tek bir noktanın nasıl çizileceğini, Cizim sınıfından türemiş alt sınıflar tarafından verilmektedir.

41 Niye Soyut Sınıf ve Yordamlara İhtiyaç Duyarız?

42 Yapılandırıcılar İçerisindeki İlginç Durumlar Bu örneğimizdeki akıl karıştırıcı nokta, soyut bir sınıfa ait yapılandırıcı içerisinden soyut bir yordamın çağrılıyor olmasıdır. Sporcu sınıfının yapılandırıcısına dikkat ederseniz, bu yapılandırıcı içerisinden soyut bir yordam olan calis() yordamı çağrılmıştır. calis() yordamı hangi amaçla soyut yapılmış olabilir? Bu yordamın soyut yapılmasındaki tek amaç, alt sınıfların bu yordamı iptal etmelerini kesinleştirmek olabilir. Bu örneğimizdeki yanlış, soyut bir sınıfa ait yapılandırıcının içerisinden soyut bir yordamın çağrılmasıdır.

43 Yapılandırıcılar İçerisindeki İlginç Durumlar Uygulama çıktısındaki 2. satır çok ilginçtir. Oluşan olayları adım adım açıklarsak; 1. Futbolcu sınıfına ait bir nesne oluşturulmak istendi ama Futbolcu sınıfı Sporcu sınıfından türetildiği için, ilk önce Sporcu sınıfına ait yapılandırıcı cağrılacaktır. 2. Sporcu sınıfına ait yapılandırıcının içerisinde soyut olan calis() yordamı çağrıldı. Soyut olan calis() yordamı Futbolcu sınıfının içerisinde iptal (override) edildiği için, Futbolcu sınıfına ait olan calis() yordamı çağrılacaktır fakat temel(primitive) int tipinde olan antreman_sayisi alanına henüz ilk değeri atanmadığından, Java tarafından varsayılan değer (default value) olan 0 sayısı verilmiştir. Buradaki ilginç olan nokta Futbolcu sınıfının içerisindeki calis() yordamı, Futbolcu sınıfına ait yapılandırıcıdan bile önce çağrılmış olmasıdır (-ki bu istenmeyen bir durumdur).

44 Yapılandırıcılar İçerisindeki İlginç Durumlar 3. Ana sınıf olan Sporcu sınıfına ait yapılandırıcının çalışması sona erdikten sonra türemiş sınıf olan Futbolcu nesnesine ait global alan olan antreman_sayisi alanının ilk değeri verilmiştir. 4. En son olarak Futbolcu sınıfına ait yapılandırıcı içerisindeki kodlar çalıştırılarak işlem sona erer.

POLIMORFIZM. Java ve Yazılım Tasarımı ; Bölüm- 6. Örnek: PolimorfizmOrnekBir.java (yorum ekle)

POLIMORFIZM. Java ve Yazılım Tasarımı ; Bölüm- 6. Örnek: PolimorfizmOrnekBir.java (yorum ekle) POLIMORFIZM Polimorfizm, nesneye yönelik programlamanın önemli kavramlarından biridir ve sözlük anlamı olarak "bir çok şekil" anlamına gelmektedir. Polimorfizm ile kalıtım konusu iç içedir. Kalıtım konusunu

Detaylı

Polimorfizm. Altuğ B. Altıntaş 2003 Java ve Yazılım Tasarımı - Bölüm 6 1

Polimorfizm. Altuğ B. Altıntaş 2003 Java ve Yazılım Tasarımı - Bölüm 6 1 Polimorfizm Altuğ B. Altıntaş 2003 Java ve Yazılım Tasarımı - Bölüm 6 1 Polimorfizm Polimorfizm, nesneye yönelik programlamanın (OOP) önemli özelliklerinden biridir. Eski Yunanca bir sözcük olup "bir çok

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ı

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ı

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ı

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ı

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ı

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ı

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ı

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ı

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ı

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ı

İNÖNÜ ÜNİVERSİTESİ MÜH. FAK. BİLGİSAYAR MÜH. BÖL. ALGORİTMA VE PROGRAMLAMA 2 DERSİ LAB. ÖDEVİ

İNÖNÜ ÜNİVERSİTESİ MÜH. FAK. BİLGİSAYAR MÜH. BÖL. ALGORİTMA VE PROGRAMLAMA 2 DERSİ LAB. ÖDEVİ İNÖNÜ ÜNİVERSİTESİ MÜH. FAK. BİLGİSAYAR MÜH. BÖL. ALGORİTMA VE PROGRAMLAMA 2 DERSİ LAB. ÖDEVİ AD SOYAD : TESLİM TARİHİ : OKUL NO : TESLİM SÜRESİ : 2 hafta Ödev No : 8 1. ve 2. soruların sayfa çıktıları

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ı

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ı

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ı

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ı

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ı

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

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ı

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ı

Sınıflar ve Yapılar Arasındaki Farklılıklar. Değer ve Referans Türde Olan Aktarımlar

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ı

NESNE YÖNELİMLİ PROGRAMLAMA HAFTA # 2

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ı

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ı

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ı

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ı

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ı

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ı

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ı

Nesne Yönelimli Programlama ve Kalıtım

Nesne Yönelimli Programlama ve Kalıtım Nesne Yönelimli Programlama ve Kalıtım Nesne Yönelimli Programlama Modern dillerin bir çoğunda nesneye yönelimli programlama tekniği desteklenmektedir. Bu teknik yazılım geliştirmeyi kısaltan ve sistematik

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ı

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ı

Java Class Yapısında Finalize Metotunun Kullanımı

Java Class Yapısında Finalize Metotunun Kullanımı Java'da finalize() Metodu: Java dili kullanılmayan nesneleri silmek için arka planda çalışan bir sisteme sahiptir. Bu yüzden C++ gibi dillerde dinamik nesne tanımlarında mutlaka yer alması gereken nesneyi

Detaylı

4.Hafta. this Anahtar Sözcüğü

4.Hafta. this Anahtar Sözcüğü this Anahtar Sözcüğü this anahtar sözcüğü, içinde bulunulan nesneye ait bir referans döndürür; bunun sayesinde nesnelere ait global alanlara erişme fırsatı bulunur. Şöyle ki: Örnek: TarihHesaplama.java

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ı

NESNEYE DAYALI PROGRAMLAMA 9. HAFTA UYGULAMA DERSİ

NESNEYE DAYALI PROGRAMLAMA 9. HAFTA UYGULAMA DERSİ NESNEYE DAYALI PROGRAMLAMA 9. HAFTA UYGULAMA DERSİ KALITIM Kalıtım Biribiri ile bağlantılı bir grup öğenin ortak özelliklerini tanımlayan genel bir sınıf tanımlanabilir Bu sınıf daha sonra diğer özel sınıflara

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ı

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ı

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ı

Operator Aşırı Yükleme (Operator OverLoading)

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ı

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

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ı

Dizi türündeki referanslar, dizi nesnelerine bağlanmaktadır. Dizi referansları tanımlamak bu dizinin hemen kullanılacağı anlamına gelmez...

Dizi türündeki referanslar, dizi nesnelerine bağlanmaktadır. Dizi referansları tanımlamak bu dizinin hemen kullanılacağı anlamına gelmez... Javada Diziler Java da diziler nesnedir; içerisinde belirli sayıda eleman bulunur. Eğer bu sayı sıfır ise, dizi boş demektir. Dizinin içerisindeki elemanlara eksi olmayan bir tam sayı ile ifade edilen

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 YÖNELİMLİ PROGRAMLAMA HAFTA # 3

NESNE YÖNELİMLİ PROGRAMLAMA HAFTA # 3 NESNE YÖNELİMLİ PROGRAMLAMA HAFTA # 3 NESNELERİN BAŞLANGIÇ DURUMU VE TEMİZLİK Bir nesnenin başlangıç durumuna getirilme işlemi bir sanatçının sahneye çıkmadan önce yaptığı son hazırlıklar gibi düşünülebilir.

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ı

Java String İşlemleri

Java String İşlemleri Java String İşlemleri Karakterler (Characters) "char" kelimesi bir karakter tanımlamak için kullanılır. Karakter tek tırnak içine alınmalıdır. Bir char'ın aralığı 0 ile 65536 arasındadır. Char türü işaretsiz

Detaylı

3.Hafta. . Kontrol Deyimleri/İfadeler

3.Hafta. . Kontrol Deyimleri/İfadeler . Kontrol Deyimleri/İfadeler Kontrol deyimleri bir uygulamanın yürütülmesi sırasında program akışını yönlendiren yapılar/kalıplardır. Kontrol deyimi olmaksızın bir uygulama yazılması neredeyse olanaksıdır

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ı

Nesneye Dayalı Programlama

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

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ı

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

Başlangıç Durumuna Getirme ve Temizlik. Altuğ B. Altıntaş 2003 Java ve Yazılım Tasarımı - Bölüm 3 1

Başlangıç Durumuna Getirme ve Temizlik. Altuğ B. Altıntaş 2003 Java ve Yazılım Tasarımı - Bölüm 3 1 Başlangıç Durumuna Getirme ve Temizlik Altuğ B. Altıntaş 2003 Java ve Yazılım Tasarımı - Bölüm 3 1 Hataların sebepleri... Nesnelerin yanlış biçimde başlangıç durumlarına getirilmesi Uygulamayı yazan kişi

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ı

BMÜ-111 Algoritma ve Programlama. Bölüm 5. Tek Boyutlu Diziler

BMÜ-111 Algoritma ve Programlama. Bölüm 5. Tek Boyutlu Diziler BMÜ-111 Algoritma ve Programlama Bölüm 5 Tek Boyutlu Diziler Yrd. Doç. Dr. İlhan AYDIN 1 Problem 100 adet sayı okumak istediğimizi düşünelim. Bu sayıların ortalaması hesaplanacak ve sayıların kaç tanesinin

Detaylı

NESNE TABANLI PROGRAMLAMA Final Sınavı Cevapları

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ı

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ı

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ı

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ı

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ı

Java 2 Standart Edition SDK Kurulum ve Java ya Giriş

Java 2 Standart Edition SDK Kurulum ve Java ya Giriş Kurulum için ilk önce Sun Microsystems in sitesinden uygun J2SE sürümünü indirin. Ben J2SE v1. 4. 2_16 Windows Installer paketini kullandım J2SE SDK Kurulumu aşağıdaki gibi başlayacaktır. 1 Kurulum tamamlandıktan

Detaylı

1 PROGRAMLAMAYA GİRİŞ

1 PROGRAMLAMAYA GİRİŞ İÇİNDEKİLER IX İÇİNDEKİLER 1 PROGRAMLAMAYA GİRİŞ 1 Problem Çözme 1 Algoritma 1 Algoritmada Olması Gereken Özellikler 2 Programlama Dilleri 6 Programlama Dillerinin Tarihçesi 6 Fortran (Formula Translator)

Detaylı

GÜZ DÖNEMİ AKT105 BİLGİSAYAR PROGRAMLAMA DERSİ 4. UYGULAMA

GÜZ DÖNEMİ AKT105 BİLGİSAYAR PROGRAMLAMA DERSİ 4. UYGULAMA -3 GÜZ DÖNEMİ AKT5 BİLGİSAYAR PROGRAMLAMA DERSİ 4. UYGULAMA ÖRNEK : f() ve g() parçalı fonksiyonları aşağıdaki gibi tanımlanmıştır. değerini kullanıcıdan isteyen ve hesaplamalar sonucunda elde edilecek

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ı

Java Programlamada Paket Yapısı Ve Import

Java Programlamada Paket Yapısı Ve Import Java programlamada paket yapısı ve import Java Programlamada Paket yapısı ve Java programları paketlerden oluşmaktadır. Paketlerin içinde sınıflar ve arayüzler bulunur. İstenirse var olan paketlerden başka

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ı

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ı

Java C.Thomas Wu 2004b kitabından Türkçeleştirilerek ve örneklendirilerek hazırlanmıştır.

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ı

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ı

MAT213 Bilgisayar Programlama I

MAT213 Bilgisayar Programlama I if Komutu Bir mantıksal (boolean) ifadenin sonucuna göre bazı komutların çalıştırılıp, bazı komutların da çalıştırılmamasını sağlar. Komut(lar) (Doğru) Doğru Yanlış Boolean Komut(lar) (Yanlış) if (boolean

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ı

BMS-302 İleri Web Programlama. İş Parçacığı (Thread) ve Soket (Socket) Programlama

BMS-302 İleri Web Programlama. İş Parçacığı (Thread) ve Soket (Socket) Programlama BMS-302 İleri Web Programlama İş Parçacığı (Thread) ve Soket (Socket) Programlama İş Parçacıkları (Threads) Ana programa paralel çalışan işler oluşturmak için kullanılır Makine birden fazla çekirdeğe sahipse

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ı

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

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ı

J A V A D A P R O G R A M D E N E T İ M İ V E O P E R A T Ö R L E R

J A V A D A P R O G R A M D E N E T İ M İ V E O P E R A T Ö R L E R J A V A D A P R O G R A M D E N E T İ M İ V E O P E R A T Ö R L E R Atamalar int a ; a=4 ; // doğru bir atama 4=a ; // yanlış bir atama! Temel Tiplerde Atama Atama işlemi, temel (primitive) tipler için

Detaylı

Yrd. Doç. Dr. Caner ÖZCAN

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ı

NESNEYE YÖNELİK PROGRAMLAMA

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ı

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

BMÜ-112 Algoritma ve Programlama-II Inheritance (Kalıtım) Yrd. Doç. Dr. İlhan AYDIN BMÜ-112 Algoritma ve Programlama-II Inheritance (Kalıtım) Yrd. Doç. Dr. İlhan AYDIN Kalıtım Mantığı Bazı sınıflar, kendi özeliklerini taşıyan özel tiplere ayrılabilir. Örnek: Bisiklet: dağ bisikleti, yarış

Detaylı

Başlangıç Durumuna Getirme ve Temizlik

Başlangıç Durumuna Getirme ve Temizlik Başlangıç Durumuna Getirme ve Temizlik Hataların sebepleri... Nesnelerin yanlış biçimde başlangıç durumlarına getirilmesi Uygulamayı yazan kişi bilmediği kütüphaneye ait nesneleri yanlış şekilde başlangıç

Detaylı

Lambda İfadeleri (Lambda Expressions)

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ı

Hata Ayıklamanın Ötesi... (Assertion) Altuğ B. Altıntaş 2003 Java ve Yazılım Tasarımı - Bölüm 14 1

Hata Ayıklamanın Ötesi... (Assertion) Altuğ B. Altıntaş 2003 Java ve Yazılım Tasarımı - Bölüm 14 1 Hata Ayıklamanın Ötesi... (Assertion) Altuğ B. Altıntaş 2003 Java ve Yazılım Tasarımı - Bölüm 14 1 Assertion Assertion kelimesinin Türkçe karşılığı iddia, birşeylerin doğruluğunu ispat etmek anlamlarına

Detaylı

DÖNGÜLER BMÜ-111 ALGORİTMA VE PROGRAMLAMA-I YRD. DOÇ. DR. İLHAN AYDIN

DÖNGÜLER BMÜ-111 ALGORİTMA VE PROGRAMLAMA-I YRD. DOÇ. DR. İLHAN AYDIN DÖNGÜLER BMÜ-111 ALGORİTMA VE PROGRAMLAMA-I YRD. DOÇ. DR. İLHAN AYDIN GİRİŞ Ekrana «Merhaba Java» şeklinde bir mesajı 100 defa yazmak istediğinizi düşünelim. Aşağıdaki komut satırını 100 kez yazmak sıkıcı

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ı

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ı

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ı

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ı

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ı

BMÜ-111 ALGORİTMA VE PROGRAMLAMA AKIŞ KONTROLÜ YRD. DOÇ. DR. İLHAN AYDIN

BMÜ-111 ALGORİTMA VE PROGRAMLAMA AKIŞ KONTROLÜ YRD. DOÇ. DR. İLHAN AYDIN BMÜ-111 ALGORİTMA VE PROGRAMLAMA AKIŞ KONTROLÜ YRD. DOÇ. DR. İLHAN AYDIN TEMEL AMAÇLAR Bir dairenin yarıçapını kullanıcıdan alarak dairenin alanını hesaplamak istediğimizi düşünelim. Eğer girilen değer

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

Metotlar. d e f metot_adı [ ( [ arg [= d e f a u l t ] ]... [, arg [, &expr ] ] ) ] deyim ( l e r ) end

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ı

İNÖNÜ ÜNİVERSİTESİ MÜH. FAK. BİLGİSAYAR MÜH. BÖL. ALGORİTMA VE PROGRAMLAMA 2 DERSİ LAB. ÖDEVİ

İNÖNÜ ÜNİVERSİTESİ MÜH. FAK. BİLGİSAYAR MÜH. BÖL. ALGORİTMA VE PROGRAMLAMA 2 DERSİ LAB. ÖDEVİ İNÖNÜ ÜNİVERSİTESİ MÜH. FAK. BİLGİSAYAR MÜH. BÖL. ALGORİTMA VE PROGRAMLAMA 2 DERSİ LAB. ÖDEVİ AD SOYAD : TESLİM TARİHİ : OKUL NO : TESLİM SÜRESİ : 1 hafta Ödev No : 2 (İlk 2 soru el yazısı ile çıktı alınarak

Detaylı

Çok Şekillilik (Polymorphism)

Çok Şekillilik (Polymorphism) Çok Şekillilik () Binnur Kurt kurt@ce.itu.edu.tr Bilgisayar Mühendisliği Bölümü İstanbul Teknik Üniversitesi Sınıf Yapısı Kalıtım Çok Şekillilik Nesneye dayalı programlamanın üç temel kavramı : 1. Sınıflar,

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ı

Yrd. Doç. Dr. Caner ÖZCAN

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ı

Java da İşleçler, Ders #3 (4 Kasım 2009)

Java da İşleçler, Ders #3 (4 Kasım 2009) Java da İşleçler, Kontrol Akış ve Döngü Deyimleri BS-515 Nesneye Yönelik Programlama Ders #3 (4 Kasım 2009) İçerikç Geçen ders: Nesne ve Sınıf Kavramları Nesne ve Sınıf ın Java da gerçekleştirilmesi Bu

Detaylı

Dizi ( Array ) ve Dizgi ( String )

Dizi ( Array ) ve Dizgi ( String ) Java da Dizi ( Array ) ve Dizgi ( String ) Tanımlama BBS-515 Nesneye Yönelik Programlama Ders #6 (25 Kasım 2009) İçerikç Geçen ders: Kalıtım ( inheritance ) -- tekrar ziyaret Java da super kullanımı Java

Detaylı

Ana sınıf içerisinde tanımlanmış bir yordam, ana sınıftan türeyen bir alt sınıfın içerisinde iptal edilebilir. ()

Ana sınıf içerisinde tanımlanmış bir yordam, ana sınıftan türeyen bir alt sınıfın içerisinde iptal edilebilir. () 10. HAFTA 5.4. İptal Etmek (Overriding) Ana sınıf içerisinde tanımlanmış bir yordam, ana sınıftan türeyen bir alt sınıfın içerisinde iptal edilebilir. () Örnek-5.10: KitapEvi.java () class Kitap { public

Detaylı

İçerik. Java da İşleçler, İşleçler. Aritmetik İşleçler - 1. Aritmetik İşleçler - 2. Geçen ders: Bu ders: BS-515 Nesneye Yönelik Programlama

İçerik. Java da İşleçler, İşleçler. Aritmetik İşleçler - 1. Aritmetik İşleçler - 2. Geçen ders: Bu ders: BS-515 Nesneye Yönelik Programlama İçerik Java da İşleçler, Kontrol Akış ve Döngü Deyimleri Geçen ders: Nesne ve Sınıf Kavramları Nesne ve Sınıf ın Java da gerçekleştirilmesi Bu ders: Java da işleçler ( operators ) Java da kontrol-akış

Detaylı