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ş 2003 Java ve Yazılım Tasarımı - Bölüm 4 2 Paket (package) • Paketler kütüphaneyi oluşturan elemanlardır. • PaketKullanim.java © Altuğ B. Altıntaş 2003 Java ve Yazılım Tasarımı - Bölüm 4 3 Varsayılan Paket (Default Package) • Test1.java • Test3.java © Altuğ B. Altıntaş 2003 Java ve Yazılım Tasarımı - Bölüm 4 4 © Altuğ B. Altıntaş 2003 Java ve Yazılım Tasarımı - Bölüm 4 5 Paket Oluşturma • Alan Adı Sistemi (Domain Name System) • tr/edu/kou/util/Test1.java © Altuğ B. Altıntaş 2003 Java ve Yazılım Tasarımı - Bölüm 4 6 © Altuğ B. Altıntaş 2003 Java ve Yazılım Tasarımı - Bölüm 4 7 © Altuğ B. Altıntaş 2003 Java ve Yazılım Tasarımı - Bölüm 4 8 CLASSPATH Ayarları C:\kodlar\bolum4\tr\edu\kou\math\ import tr.edu.kou.math.*; CLASSPATH="C:\kodlar\bolum4\;." © Altuğ B. Altıntaş 2003 Java ve Yazılım Tasarımı - Bölüm 4 9 © Altuğ B. Altıntaş 2003 Java ve Yazılım Tasarımı - Bölüm 4 10 Örnek • tr/edu/kou/math/DortIslem.java • Aşağıdaki örnek işletim sisteminin herhangi bir yerine yerleştirilebilir. • Hesaplama.java © Altuğ B. Altıntaş 2003 Java ve Yazılım Tasarımı - Bölüm 4 11 Önemli nokta • Varsayılan paketlerin birbirini görmesi için: © Altuğ B. Altıntaş 2003 Java ve Yazılım Tasarımı - Bölüm 4 12 Çakışma • tr/edu/kou/util/ArrayList.java • Cakisma.java • Çakışmayı önlemek için • Cakisma2.java © Altuğ B. Altıntaş 2003 Java ve Yazılım Tasarımı - Bölüm 4 13 Paket içerisindeki uygulamaları çalıştırmak • tr/edu/kou/math/Hesaplama.java • Çalıştırma İşlemleri – java Hesaplama – java tr.edu.kou.math.Hesaplama © Altuğ B. Altıntaş 2003 Java ve Yazılım Tasarımı - Bölüm 4 14 JAR Dosyaları (The JavaTM Archive File) • • • • Güvenlik Sıkıştırma İndirme (download) zamanını azaltması Paket mühürleme(versiyon 1.2) – Versiyon uyumluluğu açısından • Paket versiyonlanma (versiyon1.2) – Versiyon bilgilerinin gösterimi • Taşınabilirlik © Altuğ B. Altıntaş 2003 Java ve Yazılım Tasarımı - Bölüm 4 15 Açıklama Komut JAR dosyası oluşturmak için jar -cf jar-dosya-ismi içeriyeatılacak-dosya(lar) jar -tf jar-dosya-ismi JAR dosyasının içeriğini bakmak için JAR dosyasının içeliğini toptan dışarı çıkartmak için jar -xf jar-dosya-ismi Belli bir dosyayı JAR dosyasından dışarı çıkartmak için jar -xf jar-dosya-ismi arşivlenmiş dosya(lar) JAR olarak paketlenmiş uygulayı çalıştırmak için jre -cp jar-dosya-ismi MainClass © Altuğ B. Altıntaş 2003 Java ve Yazılım Tasarımı - Bölüm 4 16 jar -cf kou.jar tr/ © Altuğ B. Altıntaş 2003 Java ve Yazılım Tasarımı - Bölüm 4 17 © Altuğ B. Altıntaş 2003 Java ve Yazılım Tasarımı - Bölüm 4 18 CLASSPATH AYARLARI CLASSPATH="C:\kodlar\bolum4\;." Yukarıdaki ifade yerine artık aşağıdaki ifadeyi kullanabiliriz. CLASSPATH="C:\muzik\kou.jar;." © Altuğ B. Altıntaş 2003 Java ve Yazılım Tasarımı - Bölüm 4 19 Erişim Belirleyiciler • • • • friendly public protected private © Altuğ B. Altıntaş 2003 Java ve Yazılım Tasarımı - Bölüm 4 20 Erişim Belirleyiciler • Erişim belirleyiciler tüm global alanlar ve yordamlar için kullanılabilir. • Global Alanlar – Statik veya değil • Yordamlar (methods) – Statik veya değil © Altuğ B. Altıntaş 2003 Java ve Yazılım Tasarımı - Bölüm 4 21 Friendly • Aynı paket içerisinde erişilebilmeyi sağlar. – Sınıflar – Global alanlar – Yordamlar (methods) friendly erişim belirleyicisine sahip olabilirler. © Altuğ B. Altıntaş 2003 Java ve Yazılım Tasarımı - Bölüm 4 22 © Altuğ B. Altıntaş 2003 Java ve Yazılım Tasarımı - Bölüm 4 23 Örnek • tr/edu/kou/gerekli/Robot.java • tr/edu/kou/gerekli/Profesor.java • Başka bir paket • tr/edu/kou/util/Asistan.java © Altuğ B. Altıntaş 2003 Java ve Yazılım Tasarımı - Bölüm 4 24 Varsayılan Paketlerde (Default Package ) Erişim class AltKomsu { public static void main(String[] args) { UstKomsu uk = new UstKomsu(); uk.merhaba(); } } class UstKomsu { void merhaba() { System.out.println("Merhaba"); } } © Altuğ B. Altıntaş 2003 Java ve Yazılım Tasarımı - Bölüm 4 25 public • Heryerden erişilebilmeyi sağlar. – Sınıflar – Global alanlar – Yordamlar (methods) public erişim belirleyicisine sahip olabilirler • tr/edu/kou/util/Makine.java • Makine sınıfını kullanan UstaBasi.java © Altuğ B. Altıntaş 2003 Java ve Yazılım Tasarımı - Bölüm 4 26 private (Özel) • private erişim belirleyicisine sahip olan – Global değişkenler – Yordamlar (methods) dışarıdan erişilemezler. • Sınıflar private olamazlar... © Altuğ B. Altıntaş 2003 Java ve Yazılım Tasarımı - Bölüm 4 27 private -2 • Aynı paket içersindeki iki sınıf • tr/edu/kou/gerekli/Kahve.java • tr/edu/kou/gerekli/Musteri.java © Altuğ B. Altıntaş 2003 Java ve Yazılım Tasarımı - Bölüm 4 28 © Altuğ B. Altıntaş 2003 Java ve Yazılım Tasarımı - Bölüm 4 29 protected • protected erişim belirleyicisine sahip olan – Global alanlar – Yordamlar (methods) • Erişim ancak bu sınıftan türeyen sınıflar ve aynı paket içerisindeki sınıflar tarafından erişilebilir. • Sınıflar protected olamaz. © Altuğ B. Altıntaş 2003 Java ve Yazılım Tasarımı - Bölüm 4 30 Kalıtım (Inheritance) class Kedi extends Hayvan { ...... .... } © Altuğ B. Altıntaş 2003 Java ve Yazılım Tasarımı - Bölüm 4 31 Örnek • tr/edu/kou/util/Hayvan.java • tr/edu/kou/gerekli/Kedi.java © Altuğ B. Altıntaş 2003 Java ve Yazılım Tasarımı - Bölüm 4 32 © Altuğ B. Altıntaş 2003 Java ve Yazılım Tasarımı - Bölüm 4 33 Sorular ... © Altuğ B. Altıntaş 2003 Java ve Yazılım Tasarımı - Bölüm 4 34