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



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

BİL-141 Bilgisayar Programlama I (Java)

Nesne Yönelimli Programlama

Kalıtım (Inheritance)

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

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

YZM 2105 Nesneye Yönelik Programlama

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.

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

Nesne Yönelimli Programlama

Sunum İçeriği. Programlamaya Giriş

YZM 2105 Nesneye Yönelik Programlama

Ders 8 Konu Özeti ve Problemler

YZM 2105 Nesneye Yönelik Programlama

Önemli noktalar. Paradigma Nesnelere Giriş Mesajlar / Ara bağlantılar Bilgi Gizleme (Information Hiding ) Sınıflar(Classes) Kalıtım/Inheritance

Arayüz (Interface) Altuğ B. Altıntaş 2003 Java ve Yazılım Tasarımı - Bölüm 7 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)

Üst Düzey Programlama

Java Dersi. Altuğ Bilgin Altıntaş

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

NESNE TABANLI PROGRAMLAMA

abstract Sınıflar 1 Sınıf sınıf1 new class Ama aşağıdaki şekilde referans alınabilir;

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

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

HSancak Nesne Tabanlı Programlama I Ders Notları

Nesneye Dayalı Programlama

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

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

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

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

Üst Düzey Programlama

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

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

WEB PROGRAMLAMA II. Öğr. Gör. M. Mutlu YAPICI. Ankara Üniversitesi Elmadağ Meslek Yüksekokulu

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

BM208- Nesneye Dayalı Analiz ve Tasarım. Sunum 7

Programlama Dillerinde Kullanılan Veri Tipleri

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

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

Görsel Programlama DERS 01. Görsel Programlama - Ders01/ 1

Erişim konusunda iki taraf vardır:

Operatörlerin Aşırı Yüklenmesi

JAVA PROGRAMLAMA DİLİ ÖZELLİKLERİ

public static int Toplam int x, int y

NESNEYE YÖNELİK PROGRAMLAMA. Yrd.Doç.Dr. Zeynep ORMAN

Mühendislik Fakültesi Elektrik-Elektronik Mühendisliği C Programlama 7. Bölüm Metot Tanımlama ve Kullanma

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

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

MOBİL UYGULAMA GELİŞTİRME

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

C++ Dersi: Nesne Tabanlı Programlama

Üst Düzey Programlama

Nesne Yönelimli Programlamaya Giriş - 2. Cem Ahmet MERCAN 16/04/2009

Üst Düzey Programlama

SINIF YAPISI ve NESNE YÖNELİMLİ PROGRAMLAMA NESNE YÖNELİMLİ PROGRAMLAMA

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

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

NESNE TABANLI PROGRAMLAMA Temel Kavramlar

Start : Bu method init methodundan hemen sonra çalışır ve applet dosyası yürütülmeye başladığında çalışmaya başlar.

5.HAFTA. Sınıf ve Nesne Kavramı, Metot Oluşturma, Kurucu Metot, this Deyimi

MOBIL UYGULAMA GELIŞTIRME

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

Görsel Programlama DERS 08. Görsel Programlama - Ders08/ 1

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

Java Programlamada Paket Yapısı Ve Import

BİL-142 Bilgisayar Programlama II

Ders 8: Metotlar. barisgokce.com

DENİZ HARP OKULU BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜM BAŞKANLIĞI DERS TANITIM BİLGİLERİ

Q-Biz İş Zekası 5.1. Versiyon Yenilikleri

JavaFX Temelleri (1)

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

Üst Düzey Programlama

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

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:

Lecture 11: Generics

İş Parçacıkları (Threads)

NESNE YÖNELİMLİ PROGRAMLAMA HAFTA # 7

Bölüm 11. Soyut veri tipleri ve kapsülleme kavramları ISBN

Cahit GÜNGÖR Hacettepe Üniversitesi Bilişim Enstitüsü. Sorumluluk Zinciri. Kod Üretme (Code Generation)

Java da İstemci Tarafı Uygulamalar

MAT213 BİLGİSAYAR PROGRAMLAMA I DERSİ Ders 1: Programlamaya Giriş

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

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.

MAT214 BİLGİSAYAR PROGRAMLAMA II DERSİ Ders 12: Grafik Kullanıcı Arayüzü (Graphical User Interface-GUI)

7. HAFTA. Erişim Belirleyiciler

CBÜ Teknoloji Fakültesi, Yazılım Mühendisliği. Nesneye Yönelik Programlama

Nesneye Dayalı Programlama

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

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;

Java ile Nesneye Yönelik Programlama (Object Oriented Programming)

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

Decorator Tasarım Şablonu

2. Bölüm Çok Şekillilik (Polymorphism) Java ile Nesne Merkezli ve Fonksiyonel Programlama Akın Kaldıroğlu

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

Haz. Yrd.Doç.Dr. Yunus Emre Selçuk

BTEP243 Ders 3. class Yazım Kuralı:

Nesne Yönelimli Programlama ve Kalıtım

DENİZ HARP OKULU BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜM BAŞKANLIĞI DERS TANITIM BİLGİLERİ

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

Transkript:

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 kullanılabilirliğidir (code reuseability). Yazılan bir sınıf ile faydalı bir program birimi oluşturulmuş olur. Bu sınıf tekrar tekrar kullanılabilir. Bu sınıfı temel alarak, yeni kod parçaları ekleyerek yeni yeni sınıflar oluşturulabilir. Görsel Programlama - Ders02/ 2

Kodun Tekrar Kullanımı ve Kalıtım(Inheritance) Bir sınıfın başka bir sınıf içerisinde bir örneği oluşturulup bir değişken olarak kullanılabilir. Bu kullanıma kompozisyon (composition) denilir. Diğer bir kod tekrar kullanım yöntemi kalıtım(inheritance) dır. Bir sınıf temelinde başka bir sınıf oluşturulur. Yeni oluşturulan sınıf kalıtılmış olduğu ana sınıfın tüm özelliklerini (alanlarını ve metotlarını) miras alır ve kendisine yeni özellikler katabilir. Görsel Programlama - Ders02/ 3

Kalıtımın Java da uygulanması: Kodun Tekrar Kullanımı ve Kalıtım(Inheritance) Görsel Programlama - Ders02/ 4

Kodun Tekrar Kullanımı ve Kalıtım(Inheritance) Motorsiklet nesnesini modellemek istersek: Görsel Programlama - Ders02/ 5

Kodun Tekrar Kullanımı ve Kalıtım(Inheritance) Dikkat edilirse iki sınıfında ortak özellikleri vardır: Görsel Programlama - Ders02/ 6

Kodun Tekrar Kullanımı ve Kalıtım(Inheritance) Kalıtımın (inheritance) amacı soyutlama (abstraction) sağlamaktır; yani her sınıfın içinde mümkün olduğunca o sınıfa özel alan ve metotların tanımlanmasıdır. Motorlu Araç motorsiklet araba uçak... wagon coupe Görsel Programlama - Ders02/ 7

Kodun Tekrar Kullanımı ve Kalıtım(Inheritance) Sınıf hiyerarşisindeki sınıfların Java kodları: Görsel Programlama - Ders02/ 8

Kodun Tekrar Kullanımı ve Kalıtım(Inheritance) Görsel Programlama - Ders02/ 9

Kodun Tekrar Kullanımı ve Kalıtım(Inheritance) araba2 ve motorsiklet2 MotorluArac sınıfının alt sınıflarıdır(sub class). Üst sınıflarından tüm değişkenleri(marka,model,yolcusayisi,tekersayisi,...) miras yoluyla alırlar ve kullanabilirler. ÜST SINIFLARDA private erişim denetleyicileri ile tanımlanan alanlar ve metotlar alt sınıflarca miras olarak alınmalarına rağmen alt sınıfın metotları tarafından görülemez ve kullanılamazlar; erişilemezler. Görsel Programlama - Ders02/ 10

Kodun Tekrar Kullanımı ve Kalıtım(Inheritance) Kalıtım ile oluşturulmuş sınıftan yeni sınıflar kalıtım yoluyla oluşturulabilirler. Bazen bir sınıftan kalıtım yolu ile yeni sınıfların türetilmesini istemeyiz. Bu durumda sınıfımızı son sınıf (final class) olarak tanımlarız ve artık bu sınıftan yeni sınıfların kalıtım yolu ile türetilmesini engellemiş oluruz. Görsel Programlama - Ders02/ 11

Kodun Tekrar Kullanımı ve Kalıtım(Inheritance) wagon sınıfı final olduğu için bu sınıftan kalıtım yoluyla yeni sınıf oluşturulamaz. Görsel Programlama - Ders02/ 12

Geçersiz Kılma (Overriding) Alt sınıflar üst sınıfın tüm alan ve metotlarını kalıtım ile alır, fakat istenilirse bu metotların davranışlarını (yaptıkları işleri) değiştirebilir. Bu işleme metotların geçersiz kılınması(overriding) denilir. Görsel Programlama - Ders02/ 13

Geçersiz Kılma (Overriding) Bu işlemi gerçekleştirmek için şunlar yapılır: 4. Alt sınıf içinde üst sınıfın geçersiz kılınacak metot aynı isim ve parametreler ile yeniden yazılır. 5. Yazılan metot içeriği değiştirilerek yeni yapması istenilen iş kodlanır. Görsel Programlama - Ders02/ 14

Geçersiz Kılma (Overriding) Bu işlemi gerçekleştirmek için şunlar yapılır: Görsel Programlama - Ders02/ 15

Geçersiz Kılma (Overriding) Görsel Programlama - Ders02/ 16

Geçersiz Kılma (Overriding) Sınıfda yazmış olduğumuz bir metodun geçersiz kılınmasını (overriding) engellemek istersek, bu metodu son metot (final method) olarak tanımlarız. Örn: final public void yaz() Bu şekilde tanımlanan metot geçersiz kılınmaya çalışılırsa hata verecektir. Görsel Programlama - Ders02/ 17

Geçersiz Kılma (Overriding) Görsel Programlama - Ders02/ 18

Metotların Üzerine Yükleme Aşırı yükleme(overloading) Bir metodun aşırı yüklenmesi; bir metodun farklı parametre sayıları yada tipleri ile aynı isim altında tanımlanması ve kullanılması demektir. Görsel Programlama - Ders02/ 19

Metotların Üzerine Yükleme Aşırı yükleme(overloading) Aynı isimli iki add metodu vardır. İlki verilen nesneyi listenin sonuna ekler; ikincisi verilen nesneyi istenilen indis yerine ekler. add metodu aşırı yüklenmiş bir metottur. Görsel Programlama - Ders02/ 20

Metotların Üzerine Yükleme Aşırı yükleme(overloading) Nokta sınıfının yapıcılarıda aşırı yükleme ile oluşturulmuştur. Yeni bir Nokta sınıfından nesne oluştururken iki şekilde oluşturabiliriz. Yorumlayıcı hangisini kullanmak istediğimizi parametrelere bakarak karar verir. Görsel Programlama - Ders02/ 21

Çok Şekillilik (Polimorphism) Kalıtım yolu ile oluşturulan sınıflar bir sınıf hiyerarşisi oluştururlar ve alt sınıfların hepsinde üst sınıfın arayüzü ortaktır. Her alt sınıf aynı zamanda birer üst sınıftır ve üst sınıf olarak kullanılabilirler. ciz() sil() Sekil Dogru Dikdortgen Daire... ciz() sil() ciz() sil() ciz() sil()... ciz() sil() Örnek bir geometrik şekil sınıf hiyerarşisi Görsel Programlama - Ders02/ 22

Çok Şekillilik (Polimorphism) Burada Dogru bir şekildir, Daire bir şekildir diyebiliriz. Görsel Programlama - Ders02/ 23

Çok Şekillilik (Polimorphism) Görsel Programlama - Ders02/ 24

Çok Şekillilik (Polimorphism) Aşağıda tanımlanan sınıfın metotlarına istenilen Şekil nesnesini(dogru, Dikdortgen, Daire,...) gönderebiliriz. Hangisini çalışacağına Java program çalışırken karar verir ve çalıştırır. Görsel Programlama - Ders02/ 25

Çok Şekillilik (Polimorphism) Uygulama: Bu şekilde gelen soyut sınıflardan hangisinin metodunun çalıştırılacağına karar verme işlemine dinamik bağlama (dynamic binding) denilir. Görsel Programlama - Ders02/ 26

Soyut Sınıflar (Abstract Class) ve Soyut Metotlar (Abstract Methods) Soyut (abstract) kelimesi ile oluşturulurlar. Bu şekilde tanımlanan metotlar sadece tanımlanırlar, içlerine kod yazılmaz. Bu metotların kodları kalıtım ile oluşturulmuş olan alt sınıflarda yazılır. Soyut sınıf kullanılarak nesne oluşturulamaz. Bu sınıflar sadece bir soyutlama sağlayarak alt sınıflar için bir ortak arayüz sağlama amacıyla geliştirilirler. Görsel Programlama - Ders02/ 27

Örnek; Soyut Sınıflar (Abstract Class) ve Soyut Metotlar (Abstract Methods) Sekil2 sekil1= new Sekil2(); X YAPILAMAZ!!! Görsel Programlama - Ders02/ 28

Arayüzler (Interfaces) Arayüzler veri soyutlamanın gelişmiş şeklidir. Özellikleri : 1-Soyut sınıflar gibi metotlar gerçekleştirilmemiştir. 2-Bütün alanlar belirtilmese de public,static ve final dır. 3-Bütün alanlar ve metotlar (public) olmalıdır. 4-Bütün metotlar abstract ve public tir. Görsel Programlama - Ders02/ 29

Arayüzler (Interfaces) Java dilinde çoklu kalıtım (multi inheritance) yoktur. Her sınıf sadece tek bir sınıftan kalıtım yolu ile üretilebilir. Gerçek hayatta farklı nesnelerin ortak özellikleri olabilir yani farklı farklı sınıflarla ortak özellikleri olabilir. Bu durumda arayüzler (interface) kullanılarak çoklu kalıtım sağlanabilir. Arayüzlerin tanımlanmasıda sınıflara benzer fakat arayüzler birden fazla arayüzden kalıtım yolu ile çoğaltılabilirler. Görsel Programlama - Ders02/ 30

Arayüzler (Interfaces) public interface Arayüzismi [extends Ust Arayuzler]{ //Arayuz Govdesi } Görsel Programlama - Ders02/ 31

Arayüzler (Interfaces) Görsel Programlama - Ders02/ 32

Arayüzler (Interfaces) Görsel Programlama - Ders02/ 33

Arayüzler (Interfaces) Görsel Programlama - Ders02/ 34

Görsel Programlama DERS 02 Görsel Programlama - Ders02/ 35