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

Benzer belgeler
7. HAFTA. Erişim Belirleyiciler

Erişim konusunda iki taraf vardır:

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

SINIFLARIN TEKRAR KULLANILMASI

Nesne Yönelimli Programlama

Nesne Yönelimli Programlama

Java ve Yazılım Tasarımı ; Bölüm- 4 PAKET ERİŞİMLERİ

Arayüz (Interface) Altuğ B. Altıntaş 2003 Java ve Yazılım Tasarımı - Bölüm 7 1

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

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

NESNE YÖNELİMLİ PROGRAMLAMA HAFTA # 6

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

BİL-141 Bilgisayar Programlama I (Java)

Nesne tabanlı programlama nesneleri kullanan programlamayı içerir. Bir nesne farklı olarak tanımlanabilen gerçek dünyadaki bir varlıktır.

NESNE YÖNELİMLİ PROGRAMLAMA HAFTA # 9

Java Dersi. Altuğ Bilgin Altıntaş

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

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

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

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

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

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.

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:

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

Ders 8 Konu Özeti ve Problemler

JAVA PROGRAMLAMA DİLİ ÖZELLİKLERİ

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

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

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

Bire-bir Sahiplik İlişkisi ile İlgili Sorular:

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

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;

SINIFLARIN TEKRAR KULLANILMASI

SINIFLARIN TEKRAR KULLANILMASI

Yukardaki örneğe dayanarak, aşağıdakiler tanımlar Object Oriented açısından doğrudur:

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

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

Sunum İçeriği. Programlamaya Giriş

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

BIL1202 ALGORİTMA VE PROGRAMLAMAYA GİRİŞ

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

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

// hataları işaret eden referans

ECLIPSE PROGRAMININ ÇALIŞTIRILMASI

NESNEYE DAYALI PROGRAMLAMA 9. HAFTA UYGULAMA DERSİ

Nesne Yönelimli Programlama

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

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

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

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

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. ()

BMH-303 Nesneye Yönelik Programlama

JAVA DA GİRİŞ/ÇIKIŞ İŞLEMLERİ. Altuğ B. Altıntaş 2003 Java ve Yazılım Tasarımı - Bölüm 9 1

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

Görsel Programlama. Temel Veri Tipleri, Değişkenler, Operatörler, Akış Kontrolü, Sınıflar, Metotlar, Paketler ve JavaDoc

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.

Java 2 Standart Edition SDK Kurulum ve Java ya Giriş

YZM 2105 Nesneye Yönelik Programlama

JAVA PROGRAMLAMAYA GİRİŞ

Java Programlama Güz Dönemi CLASS YAPISI

Java da Program Denetimi ve Operatörler. Altuğ B. Altıntaş 2003 Java ve Yazılım Tasarımı - Bölüm 2 1

MOBIL UYGULAMA GELIŞTIRME

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

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

Burak Kıymaz JAVA FX

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

YMT219 VERİ YAPILARI ÖDEV-1

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

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

HSancak Nesne Tabanlı Programlama I Ders Notları

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

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

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

Programlama Dillerinde Kullanılan Veri Tipleri

NESNE YÖNELİMLİ PROGRAMLAMA HAFTA # 7

Chain of Responsibility Tasarım Şablonu KurumsalJava.com

BMM3101 PROGRAMLAMA DİLLERİ

public static int Toplam int x, int y

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

Algoritma ve Programlamaya Giriş II JAVA İLE PROGRAMLAMA. Muhammet BAYKARA

BMÜ-101 ALGORİTMA VE PROGRAMLAMAYA GİRİŞ LABORATUARI

BİL132 Bilgisayar Programlama II

RSA ANAHTAR DAĞITIMI VE RSA İLE DİJİTAL İMZA OLUŞTURMA

Java Nitelemleri. Bölüm 1

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

Temel Veri Türü İşlemleri

Java dili, aşağıdakiler de dahil olmak üzere çok çeşitli denetleyici türlerine sahiptir.

Klavyeden Basit Giriş/Çıkış İşlemleri

YZM 2105 Nesneye Yönelik Programlama

Spring Framework Eğitimi

Nesneye Dayalı Programlama

Interface Comparator. Kılgılayan sınıf: Collator. Bildirimi: public interface Comparator

Bölüm 8. Ayrık Küme. Olcay Taner Yıldız. O. T. Yıldız, C && Java ile Veri Yapılarına Giriş, Boğaziçi Üniversitesi Yayınevi, / 16

Dizi ( Array ) ve Dizgi ( String )

C++ Dersi: Nesne Tabanlı Programlama

Nesne Yönelimli Programlama ve Kalıtım

Java da İstemci Tarafı Uygulamalar

MAT213 Bilgisayar Programlama I

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

YZM 2105 Nesneye Yönelik Programlama

Transkript:

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; BufferedReader sınıf isminin java.io paketinde tek olduğunu anlıyoruz. Fakat, başka paketlerin içerisinde BufferedReader sınıf ismi kullanılabilir.

Paketin içerisindeki tek bir sınıfı kullanmak yerine ilgili paketin içerisindeki tüm sınıfları tek seferde kullanmak için: import java.io.* ;

VARSAYILAN PAKET (DEFAULT PACKAGE) public class Test1 { public void kos() { class Test2 { public void kos() { Test1.java Dosya derlendiğinde adları Test1.class ve Test2.class olan 2 adet fiziksel.class dosyası elde edilir. Test1.java dosyanın en üstüne herhangi bir paket ibaresi yerleştirilmediğinden dolayı Java bu sınıfları varsayılan paket (default package) olarak algılayacaktır.

PAKET OLUŞTURMA Paket oluşturmanın temel amaçlarından birisi, aynı amaca yönelik iş yapan sınıfları bir çatı altında toplamaktır; Yazılan sınıflar daha derli toplu olur, aranılan sınıflar daha kolay bulunabilir. package tr.edu.firat.bilmuh.bmu112; public class Lab1 {...

ERİŞİM BELİRLEYİCİLER Java dilinde 4 tür erişim belirleyicisi vardır: friendly, public, protected, private. friendly global alanlara (statik veya değil), yordamlara (statik veya değil) ve sınıflara atanabilir. friendly global alanlar (statik veya değil) içerisinde bulundukları paketin diğer sınıfları tarafından erişilebilirler. Fakat, diğer paketlerin içerisindeki sınıflar tarafından erişilemezler. Yani, diğer paketlerin içerisindeki sınıflara karşı private erişim belirleyici etkisi oluşturmuş olurlar.

Bir global alan veya sınıf friendly yapılmak isteniyorsa önüne hiç bir erişim belirleyicisi konulmaz.

PUBLİC (HERKESE AÇIK) public erişim belirleyicisi sahip olabilen sınıflar, global alanlar ve yordamlar herkes tarafından erişilebilir. Bu erişim belirleyicisine sahip olan global alanlar veya yordamlar herhangi bir yerden doğrudan çağrılabildiklerinden dolayı dış dünya ile arasındaki arabirim rolünü üstlenirler. ()

PRİVATE (ÖZEL) private olan global alanlara veya yordamlara (sınıflar private olamazlar; dahili sınıfar-inner class hariç) aynı paket içerisinden veya farklı paketlerden erişilemez. Ancak ait olduğu sınıfın içinden erişilebilir. private belirleyicisine sahip olan yordamların içerisinde devamlı değişebilecek /geliştirilebilecek olan kodlar yazılmalıdır.

class Kahve { private int siparis_sayisi; private Kahve() { private void kahvehazirla() { System.out.println(siparis_sayisi + " adet kahve hazirlandi"); public class Musteri { public static void main(string args[]) { // Kahve kh = new Kahve() ; // Hata! // kh.kahvehazirla() ; // Hata! // kh.siparis_sayisi = 5 ; // Hata! Kahve kh = Kahve.siparisGarson(5); public static Kahve siparisgarson(int sayi) { Kahve kahve = new Kahve(); //dikkat kahve.siparis_sayisi = sayi ; kahve.kahvehazirla(); return kahve;

PROTECTED (KORUMALI ERİŞİM) Sadece global alanlar ve yordamlar protected erişim belirleyicisine sahip olabilirler. Sınıflar protected erişim belirleyicisine sahip olmazlar (dahili sınıflar-inner class hariç); protected erişim belirleyicisine sahip alanlara sadece aynı paketin içerisindeki sınıflar erişebilir.

KAPSÜLLENME (ENCAPSULATİON) Nesneye yönelik programlama özelliklerinden birisi kapsüllenmedir; Dışarıdaki başka bir uygulamanın bizim nesnemiz ile sadece arabirimler (public) sayesinde iletişim kurması gerektiğini, ancak, arka planda işi yapan esas kısmın gizlenmesi gerektiğini söyler.

Aynı Paket Ayrı Paket Ayrı paket-türetilmiş public erişebilir erişebilir erişebilir protected - - - friendly erişebilir erişemez erişemez private - - -

SINIFLARIN TEKRAR KULLANILMASI Komposizyon class Meyva { //... class Elma { private Meyva m = new Meyva(); //...

public class Motor { private static int motor_gucu = 3600; public void calis() { System.out.println("Motor Calisiyor") ; public void dur() { System.out.println("Motor Durdu") ;

public class AileArabasi { private Motor m = new Motor(); public void hareketet() { m.calis(); System.out.println("Aile Arabasi Calisti"); public void dur() { m.dur(); System.out.println("Aile Arabasi Durdu"); public static void main(string args[]) { AileArabasi aa = new AileArabasi() ; Aa.hareketEt(); Aa.dur();

KALITIM Kalıtım bir sınıftan diğer bir sınıfın türemesidir. Yeni türeyen sınıf, türetilen sınıfın global alanlarına ve yordamlarına (statik veya değil) otomatik olarak sahip olur (private olanlar hariç).

class Kedi { //.. class Kaplan extends Kedi { //..

public class Hayvan { protected String a = "Hayvan.a"; String b = "Hayvan.b"; //friendly private String c = "Hayvan.c"; public String d = "Hayvan.d"; ; public class Kedi extends Hayvan { // Türeyen public Kedi() { System.out.println("Kedi olusturuluyor"); System.out.println(a); // System.out.println(b); //! Hata! erisemez? // System.out.println(c); //! Hata! erisemez? System.out.println(d); public static void main(string args[]) { Kedi k = new Kedi(); Kedi olusturuluyor Hayvan.a Hayvan.d

class Kedi { protected int ayaksayisi = 4 ; public void yakalaav() { System.out.println("Kedi sinifi Av yakaladi"); public static void main(string args[]) { Kedi kd= new Kedi() ; kd.yakalaav() ; class Kaplan extends Kedi { public static void main(string args[] ) { Kaplan kp = new Kaplan(); kp.yakalaav(); System.out.println("Ayak Sayisi = "+kp.ayaksayisi);

GİZLİ KALITIM Oluşturduğumuz her yeni sınıf otomatik ve gizli olarak Object sınıfından türer. Object sınıfı Java programlama dili içerisinde kullanılan tüm sınıfların tepesinde bulunur. public class YeniBirSinif extends Object {

public class YeniBirSinif { public static void main(string[] args) { YeniBirSinif ybs1 = new YeniBirSinif(); YeniBirSinif ybs2 = new YeniBirSinif(); System.out.println("YeniBirSinif.toString()" + ybs1 ) ; System.out.println("YeniBirSinif.toString()" + ybs2 ) ; System.out.println("ybs1.equals(ybs2)"+ybs1.equals(ybs2)) ; //... YeniBirSinif.toString() YeniBirSinif@82f0db YeniBirSinif.toString() YeniBirSinif@92d342 ybs1.equals(ybs2) false

public class Person { private String name; public Person() { name = "No name yet."; public Person(String initialname) { name = initialname; public void setname(string newname) { name = newname; public String getname() { return name; public void writeoutput() { System.out.println("Name: " + name); public boolean samename(person otherperson) { return (this.name.equalsignorecase(otherperson.name));

EXTENDED CLASSES FROM PERSON CLASS Person Student Employee Undergraduate Graduate Faculty Staff MastersDegree PhD NonDegree