instagram twitter linkedin github youtube

30.7.19

Java Paketleri

Java kütüphanesinde çok sayıda metot ve değişken tanımları vardır. Metotların ve değişkenlerin her biri  bir sınıf içindedir. Metotları ve değişkenleri içeren sınıfların sayıları da çok fazladır. Erişimi kolaylaştırmak için sınıflar gruplara ayrılmışlardır. Birbirleriyle ya da aynı konuyla ilişkili olan sınıflar bir grup içinde toplanır. Bu grupların her birine bir paket (package) diyoruz. Başka bir deyişle, bir paket birbirleriyle ilişkili sınıfları içeren bir ambardır (dizin). Örneğin giriş/çıkış ile ilgili olan bütün sınıflar java.io paketi içindedir. Bir pakette aynı adı taşıyan iki sınıf olamaz. Ama farklı paketler içinde aynı adı taşıyan sınıflar olabilir. Paket adları sınıfların karışmasını önler.

İleride programlarımızın sayısı arttıkça, sınıf adlarının birbirleriyle karışmasını önlemek için birbirleriyle ilgili sınıfları aynı pakete koymayı öğreneceksiniz.

Bütün Java paketlerini

http://www.oracle.com/technetwork/java/javase/documentation/api-jsp-136079.html

web adresinden görebilirsiniz. Burada çok kullanacağımız birkaç tanesini kısaca açıklamakla yetineceğiz.

java.lang  Paketi
Java sınıf paketleri arasında en önemlilerinden birisidir. import deyimi yazmaya gerek kalmaksızın, her java programına kendiliğinden (automatic) girer. Java dilinin özünü oluşturan sınıfları içerir.

java.io  Paketi
Giriş-çıkış işlemlerini yapan sınıfları içerir.

Bir program koşarken, sistemin dış çevre birimlerinden veri alması ya da onlara veri göndermesi gerekebilir. Kullanıcının bilgisayarla etkileşim içinde olabilmesi için, onunla iletişim kurabilmelidir. Bunun tek yolu, bilgisayara girdi (input) göndermek ve ondan çıktı (output) almaktır. Hemen her dil bu iş için çeşitli yöntemlere sahiptir. Giriş/çıkış birimleri dediğimiz birimler bu işe yarar. Örneğin, klavye, dosya, uzaktaki bilgisayar, ağ gibi araçlar bilgisayara girdi yapabilirler. Ekran, yazıcı, dosya, ses-aygıtları, ağ gibi araçlarla bilgisayardan çıktı alınabilir. Her gün sayısı ve niteliği değişen bu giriş-çıkış aygıtlarını kullanmakta Java çok hünerlidir. Onları ilerideki derslerde yeri geldikçe ele alacağız. Ama ilk derslerde çok kullanacağımız bazı  kavramları tanımamız gerekiyor.

Bu paketin içerdiği iki önemli sınıf

InputStream

OutputStream

sınıflarıdır. Stream (akım) sözcüğü sisteme giren ya da sistemdan çıkan karakter dizileridir. Bütün veriler birer karakter dizisi olarak sisteme girer veya sistemden çıkarlar. InputStream sınıfı girişleri, OutputStream sınıfı çıkışları düzenler. 

Her türlü giriş-çıkış işlemlerinin yapılabilmesi için, her iki sınıfın alt sınıfları ve onların çok sayıda metotları tanımlıdır. Bazılarını bu ders boyunca kullanacağız.


OutputStream Sınıfının alt sınıfları



InputStream Sınıfının alt sınıfları



System Sınıfı

java.lang
Class System
java.lang.Object
  extended by java.lang.System


standard output,

standard error,

standard input

akımlarını yönetir. Başka bir deyişle, standart giriş-çıkış işlemlerini yapan ve hata iletilerini veren bir sınıftır. Genel olarak, sistemin dışarıyla olan ilişkilerini yönetir. Çevre değişkenlerine erişir, veri ve dosya girdi-çıktısından sorumludur. Bunları yapabilmesi için, java.io paketi içindeki InputStream ve OutputStream sınıflarını kullanır (implement).

G/Ç  Akım yolları (I/O streams)

Bir java uygulaması başladığında, Sytem sınıfı kendiliğinden şu üç giriş/çıkış akım-yolunu açar:

in

out

error

Kullanacağımız Windows işletim sisteminde standart giriş yolu klavye, standart çıkış yolu ekrandır. İstenirse bunlar değiştirilebilir. Örneğin klavyeden giriş yerine bir dosyadan giriş yapılabilir. Benzer olarak, ekran yerine  yazıcıya veya bir dosyaya çıkış yapılabilir.  Ama biz bu ders boyunca standart giriş birimi olarak klavyeyi, standart çıkış birimi olarak ekranı kullanacağız. Giriş in, çıkış out ve hata error  akım-yollarıyla temsil edilir. Bunlar System sınıfında girdi, çıktı ve hata 'yı tutan değişkenlerdir. Bu değişkenlere nesne yönelimli programlama dillerinde, değişken demek yerine, gendeğer (property) denilir. Bazı kaynaklar “özellik” sözcüğünü kullanır. Bu kitapta gendeğer sözcüğünü tercih edeceğiz.

Yukarıdaki üç gendeğerin değerlerinin nasıl oluştuğunun ayrıntısına girmeden, konuyu basitleştirmek için şunu söyleyebiliriz. Bir java uygulaması başlayınca, kullanıcının klavye ile yazdıkları in akım-yoluna atanan değerdir. Sistem bu girdiyi algılar. Sistemin çıktıları out akım-yoluna atanan değerdir. O değer ekrana yazılır ve kullanıcıya iletilmiş olur. Bu işlemler sırasında bir hata oluşursa, o hata error akım-yoluna atanır ve  otomatik olarak ekrana yazılır.

Girdi/Çıktı için Metotlar

Java dilinde girdi/çıktı işlemleri için InputStream ve OutputStream sınıflarının alt sınıflarına ait olan aşağıdaki  metotları (fonksiyon)  çok kullanacağız. O nedenle, onlar hakkında basit temel bilgileri edinmemiz gerekiyor.

Nesne Yönelimli Programlama dillerinde, fonksiyon kavramı matematikteki fonksiyon kavramından biraz daha geneldir. O nedenle, fonksiyon terimi yerine metot terimi kullanılır.

print()

java.io -> OutputStream -> FilterOutputStream -> PrintStream alt sınıfı içinde bir metottur (fonksiyon). Standart çıkışa (ekran) çıktı gönderir. Sözdizimi şöyledir:

System.out.print(parametre);

println()

PrintStream alt sınıfı içinde bir metottur (fonksiyon). print() metodu ile aynı işi yapar, ancak çıktıyı gönderdikten sonra ayrıca satırbaşı yapar (\r\n). Sözdizimi:

System.out.println(parametre);

printf()

PrintStream alt sınıfı içinde bir metottur (fonksiyon). Konsola biçemli (formatlı) çıktı gönderir.

System.out.printf(parametre);

Write()

PrintStream alt sınıfı içinde bir metottur (fonksiyon). Standart çıkışa (ekran) çıktı gönderir. Sözdizimi:

System.out.Write(parametre);

Bu metot parametre olarak Java dilindeki her veri tipini kabul eder.

Read()

InputStream sınıfı içinde bir metottur . Kalıtım özeliği nedeniyle, bütn alt sınıfları bu metoda sahiptir. Byte (karakter) ya da byte arraylaerini farklı giriş birimlerinden okur. İleride bu metodu daha ayrıntılı inceleyeceğiz.

Parametre

public int f(int x; double y)

{

     int a;

     double b;

     …

}

Yukarıdaki f metodunda () parantezi içindeki değişkenlere parametre {} gövdesi içindekilere yerel değişken denilir. Bunun nedeni, fonksiyonun bağlı olduğu değişkenleri öteki yerel değişkenlerden ayırmak içindir. Matematikte f(x,y) fonksiyonu için x, y değişkenleri ne anlam taşıyorsa, bilgisayar fonksiyonları için parametreler aynı anlamı taşır.

java.text
Metinleri işleyen sınıflardan oluşur. Farklı dil ve kültürlere göre tarih, sayı ve iletilerin yazılmasını sağlar.

java.math
Duyarlı matematiksel işlemler yapmak için gerekli  sınıfları içerir. Matematikte kullanılan standart fonksiyonların hepsini bu sınıfta bulabilirsiniz.

java.awt
Kullanıcı arayüzü (UI-user interface) tasarımı ve olay-yönlendirici (event-handler) için gerekli standart öğeleri içerir.

javax
Java dilinin genişlemesini sağlayan sınıfları içerir.

java.applet
Java appletleri yaratmak için gerekli sınıfları içerir.

java.beans
Java bean’leri yaratmak için gerekli sınıfları içerir.

java.sql, javax.sql
JDBC API yardımıyla veri tabanlarına erişimini ve veri işlemeyi sağlayan sınıfları içerirler.

java.rmi
Java bean’leri yaratmak için gerekli sınıfları içerir.

java.net
Ağ (network) uygulamaları yaratmak için gerekli sınıfları içerir.

java.security
Kriptografik güvenlik için gerekli sınıfları içerir.