NetBeans ve Eclipse Eşliğinde JAVA 8

Benzer belgeler
BM-209 Nesne Yönelimli Programlama. Yrd. Doç. Dr. İbrahim Alper Doğru Gazi Üniversitesi Teknoloji Fakültesi Bilgisayar Mühendisliği Bölümü

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

BİL BİLGİSAYAR PROGRAMLAMA (JAVA)

İÇERİK 2 Java Kodlaması için Gerekli Programlar JRE, JDK kurulması ve Başlangıç Ayarları Java Kodlamayı Kolaylaştıran IDE ler Java Kod Yapısı İlk Java

Java 2 Standart Edition SDK Kurulum ve Java ya Giriş

JAVA PROGRAMLAMA DİLİ ÖZELLİKLERİ

ECLIPSE PROGRAMININ ÇALIŞTIRILMASI

Java JDK (Java Development Kit) Kurulumu:

Kaynak Kodlardan Derleme. Turquaz Muhasebe. Versiyon 0.2. Hüseyin Ergün. 26 Mart 2005

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

Windows 10 için Java JDK 8 ve NetBeans IDE 8.2 Kurulumu Detaylı Anlatım

HSancak Nesne Tabanlı Programlama I Ders Notları

Java Programlamaya Giriş

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

Üst Düzey Programlama

DATA STRUCTURES. Lab II Metotlar, Diziler ve Hata Ayıklama. Doç. Dr. Aybars UĞUR

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

C için tümleşik geliştirme ortamı (IDE) kurulumları

DATA STRUCTURES. Lab II Metotlar, Diziler ve Hata Ayıklama. Prof. Dr. Aybars UĞUR

Java Programlamada Paket Yapısı Ve Import

Android Ders Notları

NESNEYE YÖNELİK PROGRAMLAMA

Data Structures Lab Güz

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;

Mühendislik Fakültesi Elektrik-Elektronik Mühendisliği C Programlama 1. Bölüm C# Programlamaya Giriş

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

C# Programlama Dili. İlk programımız Tür dönüşümü Yorum ekleme Operatörler

JAVA PROGRAMLAMAYA GİRİŞ

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

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

Erişim konusunda iki taraf vardır:

Programlama Dillerinde Kullanılan Veri Tipleri

2.Eclipse açıldıktan sonra Workspace alanı seçilmesi gerekir. Workspace alanı projelerinizin fiziksel olarak bulunduğu kısımdır.

OMNET Ağ Benzetim Yazılımı (Network Simulation Framework) BİL 372 Bilgisayar Ağları. GYTE - Bilgisayar Mühendisliği Bölümü

Java Temel Özellikleri

JAL IN İNTERNET TEN İNDİRİLMESİ VE KURULMASI

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

Sunum İçeriği. Programlamaya Giriş

Bölüm 24. Java Ağ Uygulamaları 24.1 Java Appletleri. Bir Applet in Yaşam Döngüsü:

BİLGİSAYAR PROGRAMLAMA. Yrd. Doç. Dr. Beytullah EREN

Bİ L 131 Hafta 2. 1) Bilgisayara Java SE Development Kit 7 kurulması

KONU: İşletim Sistemleri I - Ms-Dos İşletim Sistemi SORULAR

FAKS SUNUCU EĞİTİM DÖKÜMANI

Linux ve Windows Üzerinde C ve C++ Kullanımı

INPUTBOX KULLANIMI. Komut Düğmesine uygulanan algoritma örneği

MODÜL 1 DERS 1 BİLGİSAYARLAR DÜNYAYA HAKİM. Hazırlayan: EBOT00

4. Bölüm Programlamaya Giriş

MPLAB IDE ve ISIS ile ASSEMBLY DİLİNDE UYGULAMA GELİŞTİRMEK

Nesne Tabanlı Programlama Dersi Edirne Kız Teknik ve Meslek Lisesi

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

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

Temel Bilgisayar Uygulamaları Web Tasarımı, Programlama Dilleri ve C# a Giriş

Flash ile Etkileşimli Öğretim Materyali Hazırlama Semineri

PHP ile İnternet Programlama

PORT HABERLEŞME SERİ PORT FARUK BOZAN

MOBİL UYGULAMA GELİŞTİRME

Toplama işlemi için bir ikili operatör olan artı işareti aynı zamanda tekli operatör olarak da kullanılabilir.

U y g u l a m a A i l e s i (Abakus 360, T-Panel, T-CRM) Tarayıcı Ayarları. IPera İletişim Teknolojileri

TEMEL BİLGİSAYAR. Ders Notları. Yrd. Doç. Dr. Seyit Okan KARA

C#(Sharp) Programlama Dili

Şimdi başka bir problem üzerinde çalışalım.

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

Akış Kontrol Mekanizmaları


BBS515 Nesneye Yönelik Programlama. Ders 1 Zümra Kavafoğlu

Açılan programın pencere görünümü aşağıdaki gibidir. 2. Araç Çubuğundan kaydet düğmesi ile

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

İMAGE (SİSTEM GÖRÜNTÜSÜ) ALMA VE YÜKLEME NASIL YAPILIR. İmage nedir?

Üst düzey dillerden biri ile yazılmış olan bir programı, makine diline çeviren programa derleyici denir. C++ da böyle bir derleyicidir.

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

JAVA API v2.0 Belge sürümü: 2.0.2

DENEME SINAVI CEVAP ANAHTARI

Program Nedir? Program, bir problemin çözümü için herhangi bir programlama dilinin kuralları ile oluşturulmuş komut kümesidir.

4 Front Page Sayfası Özellikleri

Bu makalede 2003 sunucu, Windows 2003 Server anlamına gelmektedir. Aşağıda yapılan işlemler 2003 R2 sunucu üzerinde denenmiş ve çalıştırılmıştır.

// hataları işaret eden referans

7) Çoklu Formlar. Şekil7.1. Araç kutusundaki Add Form butonuna basarak projeye yeni bir form ekleyiniz.

Linux Kurulumu (Sürüm 1.52) İçindekiler

İSTANBUL ECZACI ODASI BİLGİ İŞLEM BİRİMİ

MPLAB IDE v7.60 PROGRAMI KULLANIMI

VISUAL BASIC DE İŞLETİM SİSTEMİ DENETİM KOMUTLARI VE FONKSİYONLARI

Gerekli bağlantıları yapıp, ACS420 V3.03 programını çalıştırınız. Program açıldığında, LMS14 ün içindeki parametrelerin okunmasını bekleyiniz.

Lecture 11: Generics

Bu düğme tıklandığında karşınıza yandaki gibi bir diyalog kutusu daha gelecektir.

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.

VHOPE ve VHOPE kitaplık dosyalarını kurma

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

Karşılaştırma İşlemleri ve Koşullu İfadeler

VERİ TABANI NEDİR A. TABLO OLUŞTURMA

2000 de Programlarla Çalışmalar

SIMAN KULLANIM KILAVUZU

1. VERİ TABANI ARAÇLARI

ATATÜRK ÜNİVERSİTESİ BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜMÜ BIM 205 GÖRSEL PROGRAMLAMA GÜZ DÖNEMİ ÖDEV-1

B03.10 Algoritmalari Uygulamak : Durum 3 (Yuvalı Kontrol Yapıları) Şimdi başka bir problem üzerinde çalışalım.

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

Java da İstemci Tarafı Uygulamalar

2- Kontrol Sil En Öne Getir En Arkaya Gönder Resim Özellikler: Genel Özellikler...

Bilgisayarda Programlama. Temel Kavramlar

if (ad == "Sabri") Console.WriteLine("Merhaba Sabri. Ne zamandır gözükmüyodun...");

POWER POİNT 2007 DERS NOTLARI

Transkript:

NetBeans ve Eclipse Eşliğinde JAVA 8 -Örnek Bölüm- https://www.seckin.com.tr/kitap/971165446 Java'yı Öğrenmek İsteyenler İçin Birkaç Not Varsayalım ki programcılığa ilginiz var, Java yı merak ediyorsunuz. Bu ilgiyi beslemek, gereğini yerine getirmek için ne yapacaksınız? Bu soruya verilecek muhtemel cevaplar üzerinde biraz konuşacağız. Youtube da bulduğunuz Java konulu yüzlerce saatlik video lardan bazılarını izleyeceksiniz. Blog sitelerinde sayıları binlerle ifade edilen Java konulu makale olduğunu fark edeceksiniz. Belki birkaç kitabın PDF si elinize geçecek. Şartlarınız elveriyorsa Java hakkında bilgi almak üzere bir eğitim merkezine başvuracaksınız.

84 Java Programlama Dili Yeterince azminiz varsa, kolay pes etmeyen bir yapıya sahipseniz, zaman sorununuz yoksa; videolardan, makalelerden, PDF lerden yararlanarak Java hakkında gerek duyduğunuz bilgileri edinir, Java ve nesneye yönelik programcılıkla ilgili kavramlara sahip olursunuz. Devamında işin peşini bırakmazsanız Java programcısı olabilirsiniz. Bu yöntemle Java öğrenmeye çalışmak riskler içeriyor. Yukarıda tarif edilen şekilde Java öğrenmeye çalışırsanız belki sıkılıp yarı yolda pes edersiniz. Bazen okuduklarınızı anlamayacak, bazen de izlediğiniz videonun temposunu beğenmeyeceksiniz. Elinde değişik kişiler tarafından kaleme alınmış yüzlerce makaleden hangisini okuyacağınızı şaşırırsınız. Tam bu karmaşa içinde acaba kitap Java konulu kitap mı alsam diye kendinize soru yöneltiyorsanız, burada resmini gördüğünüz Java kitabı hakkında herhangi bir yorumda bulunmadan önce PDF olarak yayınlandığımız örnek bölümü baştan sona dikkatlice okumanızı öneriyoruz. Örnek bölümde Java'nın standart konularından birisi olan paketler anlatılmaktadır. Java programcılığında paketler, standart konulardan birisi olduğu için her kaynakta karşınıza çıkacaktır. Bu kitabın paketler hakkında bilgi içeren bölümünü okursanız bu kitapla ilgilenme ihtimaliniz belki yükselmeyecektir. Çünkü bölümü okudukça, belki Java da paket olayının öyle üzerinde fazla kafa yorulacak kadar zor bir konu olmadığını düşüneceksiniz. Bu yorumun kaynağı olsa olsa bu kitapta yazdığımız her şeyin ilk okumada anlaşılmasını hedeflemiş olmamız ve bu hedefe uygun bir anlatım tekniğini tercih etmiş olmamızdır. Aslında paket konulu bölüm yerine bu kitabın MySQL veritabanları üzerinde nasıl işlem yapıldığının anlatıldığı bölümünü örnek olsun diye PDF olarak yayınlamış olsaydık muhtemelen benzer yorumu yapardınız. Çünkü bu kitabın MySQL veritabanları üzerinde nasıl işlem yapıldığının anlatıldığı bölümünü okuduğunuzda bu işlemler çok kolaymış, kitaptan okumaya bile gerek yokmuş şeklinde bir yorumda bulunmanız ihtimali düşük değildir. Burada örnek olsun diye yayınladığımız bölüm kitabın 83. sayfasında başlamaktadır. Dolayısıyla bu bölüme gelmeden önce Java programcılığı konusunda yolun başında olanlara yönelik en önemli konularından bazıları anlatıldı. Hatta kitabın ilk 3 bölümünde paketler hakkında yüzeysel de olsa bilgi bile verildi. Bu nedenledir ki Paket Hazırlamak ve Kullanmak adını verdiğimiz bu bölümü kitaptan alıp FDF olarak düzenlerken bazı rötuşlar yaptık, küçük eklemeler yapmaya gerek duyduk. Ellerinde Java kitabı olan arkadaşlar kitaptaki paket konulu bölüm ile, burada PDF olarak yayınlanan bölüm arasında küçük farkların olduğunu, birkaç yerde araya girip ek açıklamalar yaptığımızı göreceklerdir.

Bölüm 4: Paket Hazırlamak ve Kullanmak 85 Bir diğer konu var: Buraya alınan örnek bölümde kullanılan ekran görüntülerinin kitaptan farklı olarak daha büyük halleri kullanıldığı için bu PDF nin sayfa sayısı biraz arttı. Bu bölümün kitaptaki hali 14 sayfadır. Kitabın bu bölümünde anlatılanların kolay anlaşılması için verilen kısa kodları yazmanız ve bölüm metninde yapılan işlemleri sizin de yapmanız önerilir. Çünkü kitabın bu bölümü kaleme alınırken okurun verilen örnek kodları aynen yazacağı (en azından benzerini) varsayımda bulunduk. Eğer bu bölümün roman gibi okunacağını varsaysaydık farklı bir anlatım şekliyle karşınıza çıkardık. Tabi o zaman bölüme ayrılan sayfası artacaktı. PDF de sarı zeminli halde verilen paragraflar kitapta yoktur. 4. BÖLÜM PAKET HAZIRLAMAK ve KULLANMAK Şimdiye kadar yazdığımız kısa kodlarda kullandığımız Java sınıflarının hangi pakette yer aldığını her seferinde işaret ettik. Çünkü Java ile gelen çok sayıda sınıf, paket olarak gruplanıp öyle kullanıma sunulmuştur. Java ile hazır olarak gelip paket halinde kullanıma sunulan sınıflardan öte kendi sınıflarınızı paket olarak organize edip gruplayabilirsiniz. Kısaca anlatmak gerekirse, Java da istenen sayıda class ve interface bir araya getirilip paket olarak gruplanıp organize edilmektedir. Java da paket demek bir bakıma belli bir amaç için hazırlanmış class ve interface lerin tutulduğu klasör demektir. Hazırladığınız bir veya birden fazla sınıfı daha sonra geliştireceğiniz uygulamalarda sıklıkla kullanacaksanız bu sınıfları ayrı bir paket olarak organize etmenizde fayda vardır. Java programcıları arasında paketlere isim verirken kendi domain adlarının tersten yazılmış halini kullanma alışkanlığı vardır. Örneğin NetBeans e gömülü olarak gelen Derby Apache veritabanları üzerinde işlem yapılırken gerek duyulacak sınıfların yerleştirildiği paketin adı org.apache.derby olarak seçilmiştir. Bu sayede paket adı çakışmalarının önüne geçilmektedir. Java programcıları arasında paket adının ilk harfini küçük olarak seçmek gibi bir alışkanlığın olduğunu hatırlatmak isteriz. Bu bölümde paketlerden söz ederken konunun kolay anlaşılması için adlandırmada bu alışkanlığa bağlı kalmadık. Çünkü paket kavramı Java nın en zor anlaşılan kavramlarından birisidir ve bu bölümle ilgili olarak hedefimiz hem paketleri bütün ayrıntıları ile anlatmak hem de yazılan metnin ilk okumada anlaşılmasını sağlayıp paket konusunda gelecek muhtemel bütün sorulara cevap vermektir. Java programlama dilinde paket hazırlama ve kullanmayla ilgili bilgi vermeye kullandığımız bilgisayarda C: sürücüsünde \paketler adında bir klasör hazırlamakla başladık. Bu bölümde paketleri anlatırken gerek duyacağımız klasörleri burada "\paketler" adını verdiğimiz klasörün içinde hazırlayacağız. Ardından bu klasörün içinde aritmetik adında ikinci bir klasör hazırladık. Matematiksel işlemler için hazırlayacağımız sınıfları aritmetik adlı klasöre

86 Java Programlama Dili yerleştireceğiz. Başka bir anlatımla matematiksel işlemler için hazırlayacağımız class ları aritmetik adı altında paketleyeceğiz. Paketleri yerleştirmek amacıyla hazırladığımız klasörlerin hiyerarşik konumunu aşağıda verilen ekran görüntüsünde görebilirsiniz. Java programcıları Java kodu yazarken genellikle NetBeans veya Eclipse adlı IDE leri kullanıyorlar. Bu bölümde bu IDE lerden yararlanmak yerine konunun ayrıntılarını gösterebilmek için kod yazarken Not Defteri'ni kullandık. Not Defteri ile hazırladığımız Java kodunu ise konsolda kendimiz derleyip çalıştırdık. NetBeans ve Eclipse, paketlerle ilgili birçok işlemi geri planda kendi yaptıkları için ayrıntıları görmek zorlaşıyor. Java paketi olarak kullanacağımız klasörü hazırladıktan sonra aşağıdaki gibi kısıtlı özelliklere sahip bir kod dosyası hazırlayıp Islemler.java adıyla aritmetik klasörüne kaydettik. Bu class ın kodlandığı java uzantılı dosyayı aritmetik adını verdiğimiz klasöre kaydettiğimiz için kodun en başında package deyimine yer verdik. Başka bir deyişle sınıfımızı yerleştirdiğimiz paketin (klasörün) adını kodun ilk satırında belirttik. Her ne kadar burada aritmetik adını verip paket olarak değerlendirmek istediğimiz klasör \paketler klasörü içinde yer alsa bile bu klasörü yani \paketler klasörünü paket olarak değerlendirmeyeceğiz. Bu nedenle aşağıda verilen kodda \paketler adını verdiğimiz klasörüyle ilgili bir işaret yoktur.

Bölüm 4: Paket Hazırlamak ve Kullanmak 87 Bu bölümde kullanılan kodların bazılarını ekran görüntüsü olarak verdik. Bunun nedeni hazırladığımız kodları yazdığımız dosyaların adlarına vurgu yapmaktır. Çünkü Java da kod dosyalarına verilen isimler önemlidir. Bu şartlarda aritmetik adını verdiğimiz paket Islemler adında bir sınıfa ve bu sınıf ise toplama() adında bir metoda sahiptir. Bu sınıfın adından önce public anahtar kelimesine yer verdiğimiz için bu sınıfı başka paketlerde yer alan sınıflarda kullanabiliriz. Bu paket için bu şekilde sınıf hazırladıktan sonra kodu derleyip class uzantılı dosya hazırladık. Bu amaçla aşağıdaki gibi bir derleme yaptık. Derleme yapıp Islemler.java dosyasından yola çıkıp Islemler.class adında bir bytecode dosyası hazırladıktan sonra şimdi sırada bu paketteki Islemler sınıfından yararlanmak var. Bu amaçla başka bir klasördeki, dolayısıyla başka bir paketteki main() metoduna sahip Siftah.java adını verdiğimiz kod dosyamızı aşağıdaki gibi düzenledik. Burada Siftah adını verdiğimiz kod dosyasını C:\ sürücüsünde \Projeler\proje1 adlı klasöre kaydettik. Bu koda dikkatlice bakılırsa, Siftah adını verdiğimiz ve main() metoduna sahip olan sınıfın hazırlandığı bu kod dosyasında package anahtar kelimesine yer verilmediğini fark ederseniz. Bu durumda Java derleyicisi bu sınıfın default adı verilen pakette yer aldığını varsayacaktır. "Siftah adını verdiğimiz sınıfta package anahtar kelimesine yer vermeme nedenimiz, konunun kolay izlenebilmesini sağlamaktır. Bu bölümün ileriki sayfalarında bu sınıfı da bir pakete dahil edeceğiz. Mevcut durumu özetlemek gerekirse şunlar söylenebilir: * Java'nın paketleri hakkında bilgi vermeye "C:" sürücüsünün kök klasörü içinde "\paketler" adında bir klasör hazırlayarak başladık. Örnek olması için "aritmetik" adında bir Java paketi hazırlamak istediğimiz için "\paketler" klasörü içinde "aritmetik" adında bir klasör hazırladık. * Devamında Not Defteri'ni kullanarak "Islemler.java" adında bir kod dosyası, dolayısıyla "Islemler" adında bir sınıf hazırladık. Bu sınıfı "aritmetik" adını verdiğimiz klasöre kaydetmek, dolayısıyla "aritmetik" paketine üye yapmak istediğimiz için kod dosyasının en başında package anahtar kelimesine yer verdik.

88 Java Programlama Dili * "Islemler.java" adıyla hazırlayıp "aritmetik" klasörüne kaydettiğimiz kod dosyasını konsolda derleyip class uzantılı dosya hazırladık. * En son olarak "aritmetik" paketine üye yaptığımız sınıfı başka bir uygulamada kullandık. Bu Java programı dahilinde aritmetik adını verdiğimiz paketteki (klasör) Islemler sınıfından yararlanmak istediğimiz için kodun en başında import anahtar kelimesi ile bunu belirttik. Tabi herhangi bir paketteki sınıflardan yararlanmak için import anahtar kelimesi yardımıyla ilgili paketleri kodun başında işaret etmenin bir zorunluluk olmadığını biliyorsunuz. Şimdi sırada Siftah.java adını verdiğimiz ve main() metoduna sahip sınıfın olduğu bu kod dosyasını derlemek var. Herhangi bir hazırlık yapılmadan bu kod dosyası aşağıdaki gibi derlenirse hata mesajı alınır ve "Siftah.class dosyası hazırlanmaz. Çünkü mevcut ayarlara göre derleyici aritmetik adını verdiğimiz paketteki Islemler sınıfını bulamaz. Java derleyicisi bu kodu derlerken Islemler sınıfını önce geçerli klasörde arar. Bulamazsa bu kez CLASSPATH adlı sistem değişkeni ile işaret edilen klasörlere bakar. Bu nedenle kendi hazırladığınız paketleri, geliştirmekte olduğunuz Java uygulaması dahilinde kullanmak istiyorsanız CLASSPATH ayarlaması yapmalısınız. CLASSPATH ayarlaması yapmadan Siftah.java dosyasını derlemek isteyince aşağıdaki gibi bir hata mesajı aldık. CLASSPATH ayarlamasını Windows un Sistem Özellikleri diyalog kutusundaki Ortam Değişkenleri düğmesi tıklandığı zaman ekrana gelen diyalog kutusunda yapabileceğiniz gibi direk konsolda SET komutu ile yapabilirsiniz.

Bölüm 4: Paket Hazırlamak ve Kullanmak 89 Daha önce CLASSPATH adında bir sistem değişkenin tanımlanıp tanımlanmadığını öğrenmek istiyorsanız konsoılda set deyimini aşağıdaki gibi kullanabilirsiniz. Bu sırada CLASSPATH adında bir sistem değişkeni tanımlı olmadığı için aşağıdaki gibi bir sonuç aldık. Java derleyicisini kullandığımız bilgisayardaki paketler klasörünün içinde hazırlanan paketlerden haberdar etmek istediğimiz için SET komutu ile CLASSPATH sistem değişkenini tanımlama işlemini aşağıdaki gibi yaptık. Çünkü hazırladığımız paketi yerleştirdiğimiz klasör, klasör hiyerarşisi içinde \paketler klasöründen sonra gelmektedir. Dolayısıyla yukarıda hazırladığımız aritmetik paketini başka bir uygulamada kullanmak istediğimizde import bildirimde \paketler klasörü olmayacaktır. Yararlanmak istediğimiz paketler birden fazla yerde olsaydı klasör adlarının arasına noktalı virgül(;) koyarak hepsini CLASSPATH değişkenine aktarırdık. Set komutu ile yapılan bu ayarlamalar DOS penceresi kapatıldığında silinir. Bu nedenle

90 Java Programlama Dili CLASSPATH ayarlamasını Windows un Ortam Değişkenleri diyalog kutusunda yapmanız önerilir. Bu ayarlamadan sonra yukarıda hazırladığımız Siftah.java kodunu hatasız derleyebiliriz. Java kodunu NetBeans veya Eclipse ile yazanların yukarıda anlatılan CLASSPATH ayarlamasını yapmalarına gerek yoktur. Bu bölümle ilgili olarak hedefimiz konunun geri planından sizleri haberdar etmek istediğimiz için paketleri anlatırken NetBeans ve Eclipse i kullanmadık. Siftah.class adını verdiğimiz bytecode dosyası java.exe programı sayesinde çalıştırılırken \paketler\aritmetik klasöründeki class uzantılı dosyaya gerek duyulur. Çünkü Siftah.java kod dosyasında aritmetik paketinde yer alan sınıfları kullandık. Konunun anlaşılmasına katkı olması için şimdi aritmetik adını verdiğimiz pakette ikinci bir sınıf hazırlayacağız. Bu amaçla aşağıdaki gibi bir kod dosyası hazırlayıp aritmetik klasörüne kaydettik. Bu kod dosyasının ilk satırında package anahtar kelimesinden sonra yine aritmetik yazıldığı için derleyici bu sınıfın aritmetik klasöründe tutulacağını kabul eder. Ayrıca bu sınıfı public yaptığımız için başka paketlerde yer alan sınıflarda kullanılabilir. Java derleyicisi, nasıl ki kod dosyası ile sınıf adının aynı olmasını istiyorsa, paket adıyla pakete dahil edilen sınıf ve interface lerin saklandığı klasör adının da aynı olmasını istemektedir. Hem Islemler hem de Diziler adını verdiğimiz sınıfların aritmetik adlı pakette olmasını istediğimiz için her iki sınıfa ait kod dosyalarını bu klasöre kaydettik.

Bölüm 4: Paket Hazırlamak ve Kullanmak 91 Diziler.java adını verdiğimiz bu kod dosyası hazırlanıp derlendikten sonra Diziler sınıfı istenen uygulamada kullanılabilir. Diziler sınıfı ile Islemler sınıfı aynı paketin üyesi oldukları, başka bir deyişle her iki sınıfın bytecode dosyaları aynı klasörde olduğu için ikinci sınıf için ayrıca CLASSPATH ayarlaması yapılması gerekmez. Paketlerle ilgili diğer ayrıntılardan söz edebilmek için paketler adını verdiğimiz klasörün içinde ikinci bir klasör hazırlayıp bu klasörü de paket olarak değerlendireceğiz. İkinci paket olarak kullanacağımız klasöre stringler adını verdik. Bazen birden fazla klasörde aynı ada sahip sınıflar olabilir. Bu gibi durumlarda nasıl bir çözüm geliştirildiğini anlatmak için aritmetik klasöründeki Diziler.java adlı kod dosyasını biraz değiştirip ikinci klasöre (stringler) yani pakete dahil ettik. stringler adlı klasöre kaydettiğimiz Diziler sınıfının son hali aşağıdaki gibidir.

92 Java Programlama Dili Ekran görüntüsü olarak verilen bu koda Diziler sınıfı bu kez stringler adlı pakete üye yapılmaktadır. Yani hem aritmetik hem de stringler adlı pakette Diziler adında bir sınıf bulunmaktadır. Bu ayarlamadan sonra Siftah adını verdiğimiz ve main() metoduna sahip sınıfta her iki paketteki Diziler sınıfından yararlanmayı deneyeceğiz. Bu amaçla yukarıda içeriğini verdiğimiz Siftah sınıfına ait kod dosyasını aşağıdaki gibi düzenledik. import aritmetik.*; import stringler.*; public class Siftah { public static void main(string[] args) { int[] dizi = new int[3]; dizi[0] = 10; dizi[1] = 20; dizi[2] = 30; Diziler nesne = new Diziler(); int sonuc = nesne.dizitopla(dizi); System.out.println(sonuc); } } Bu şartlarda bu kod derlenmek istenirse hata mesajı alınır. Çünkü import edilen her iki pakette aynı ada sahip bir sınıf olduğu için derleyici hangi paketteki sınıfın kullanılmak istendiğine karar veremez. Bu sorunun çözümü, nesne hazırlanırken ilgili sınıfın adından önce paket adını yazmaktır. Bu nedenle aşağıda verilen kod hatasız derlenir.

Bölüm 4: Paket Hazırlamak ve Kullanmak 93 Paket İçinde Paket Hazırlamak Java konulu kaynaklarda paketler organize edilirken alan adları notasyonun tersinden yazılmış halinin örnek alınması önerilse bile konunun kolay anlaşılmasını sağlamak için bu organizasyonu yukarıdaki gibi basite indirgedik. Bazen paket içinde başka bir paket hazırlanır. Örnek olması için yukarıda hazırladığımız \paketler\aritmetik klasörü içinde donusumler adında klasör hazırladık. Paket içinde paket kullanmaya örnek olması için bu şekilde klasör hazırladıktan sonra aşağıdaki gibi bir kısıtlı özelliklere sahip bir sınıf hazırlayıp bu klasöre kaydettik. donusumler adını verdiğimiz paket aritmetik paketinin bir alt paketi olacağı, başka bir deyişle donusumler klasörünü aritmetik klasörünün içinde hazırladığımız için package anahtar kelimesinden sonra önce aritmetik, sonra donusumler yazdık.

94 Java Programlama Dili aritmetik.donusumler paketi içinde bu şekilde bir sınıf hazırladıktan sonra derleyip kullanabiliriz. Bu kod dosyasını derledikten sonra main() metoduna sahip Java programını açıp aşağıdaki gibi düzenledik. Aşağıda verilen kodda donusumler adını verdiğimiz paketteki statik metotlar kullanılmaktadır. Default Paketi Kullanmamak Yukarıdaki sayfalarda hazırladığımız paketleri, main() metoduna sahip sınıfta test ederken package anahtar kelimesine yer vermedik. Başka bir deyişle default paketten yararlandık. Bunu yapmamızın nedeni konunun kolay takip edilebilir olmasını sağlamaktı. Şimdi yukarıda main() metoduna sahip olup Siftah adını verdiğimiz sınıfı da bir pakete dahil edeceğiz. Bundan önce paketlerle ilgili olarak yukarıda yaptıklarımızı özetleyeceğiz. Önce kullandığımız bilgisayarda \paketler adında bir klasör hazırladık. Sonra bu klasörün içinde aritmetik ve stringler adında 2 alt klasör hazırladık. Bu 2 klasörün içine birkaç sınıf yerleştirdik. Örneğin aşağıda ekran görüntüsü olarak içeriği verilen Islemler sınıfını aritmetik klasörüne kaydettik.

Bölüm 4: Paket Hazırlamak ve Kullanmak 95 Bu kod dosyasını, paket olarak değerlendirmek istediğimiz aritmetik klasörüne kaydetmiş olduğumuz için sınıfta package anahtar kelimesine yer verip bu sınıfı nerede saklamak istediğimizi en başta beyan ettik. Devamında kullandığımız bilgisayarda mevcut \Projeler klasörü içinde \proje1 adında bir klasör hazırlayıp aşağıda içeriği verilen kod dosyasını bu klasöre kaydettik. Yani main() metoduna sahip olup, aritmetik paketindeki Islemler sınıfından yararlandığımız kod dosyasını \proje1 klasörüne kaydettik. Bu kod dosyasında aritmetik adlı paketteki sınıfları kullandığımız için derleme işleminden önce konsolda set komutu ile CLASSPATH ayarlaması yaptık. Yine yukarıda işaret edildiği üzere Siftah adını verip \Projeler\proje1 klasörüne kaydettiğimiz sınıfta package anahtar kelimesini kullanmadık. Dolayısıyla derleyici bu sınıfın default pakette olduğunu varsaydı. Şimdi Siftah adını verdiğimiz ve aritmetik paketindeki sınıflardan yararlanan bu kod dosyasında package anahtar kelimesine yer vereceğiz. Bu kod dosyasını \proje1 klasörüne kaydetmiş olduğumuz için package anahtar kelimesinin yanına bu klasörün adını yazdık. package proje1; import aritmetik.*; public class Siftah { public static void main(string[] args) { Islemler islem = new Islemler();

96 Java Programlama Dili int sonuc = islem.toplama(10, 20); System.out.println(sonuc); } } Bu şartlarda bu kod dosyası hatasızca derlenir. Ancak derleme sonucu hazırlanan class uzantılı bytecode dosyası java.exe adlı yorumlayıcı programa parametre olarak verilip çalıştırılmak istenirse aşağıdaki gibi bir hata mesajı alınır. Çünkü bu şartlarda Java yorumlayıcısı gerek duyduğu class uzantılı dosyayı bulamaz. Bu hatanın meydana gelme nedeni yani Java yorumlayıcısının class uzantılı dosyayı bulamama nedeni, package anahtar kelimesi ile işaret edilen klasörün içinde bulunan klasörün bir alt klasörü olduğunu varsaymasıdır. Bu sorunun çözümü, çalıştırma işlemini bir üst klasörde yapmaktır. Ancak bir üst klasöre geçilince söz konusu bytecode dosyası artık alt klasörde olduğu için bunun aşağıda yapıldığı şekilde belirtilmesi gerekir. Yani çalıştırılacak sınıf adından önce paket adını yazmak gerekiyor. Hazırlanan Paketleri NetBeans Projesinde Kullanmak Şimdiye kadar paketler hakkında bilgi verirken NetBeans ve Eclipse den yararlanmadık. Paket hazırlarken yukarıda yapıldığı gibi Not Defteri ni kullanmak yerine kod yazarken kolaylıklar sağlayan NetBeans ve Eclipse gibi IDE lerden yararlanmayı tercih edeceksiniz. Paket kavramının iyice anlaşılmasını sağlamak için önceliği bu IDE lere vermedik. Şimdi yukarıda Not Defteri ile hazırladığımız paketleri NetBeans ile hazırlayacağımız uygulamalarda kullanacağız. Bu amaçla yeni bir Java uygulaması hazırladık. Applicaiton1 adınız verdiğimiz bu uygulamanın, paket1 adında bir pakete ve bu pakette ise JFrame1 adında bir sınıfın olmasını sağladık.

Bölüm 4: Paket Hazırlamak ve Kullanmak 97 Mevcut bir Java paketinizi NetBeans ile hazırladığınız uygulamada kullanmak istiyorsanız NetBeans penceresinin sol tarafına yuvalanmış olan Project penceresinde Source Packages seçeneğine ait kısayol menüsünden Properties komutunu vermelisiniz. Source Package seçeneğine ait kısayol menüsünden bu komut verildiğinde aşağıda verilen Project Properties diyalog kutusu ekrana gelmektedir. Bu diyalog kutusunu projenin paketleri üzerinde işlem yapmak üzere ekrana getirdiğimiz için Sources adı altında bir araya getirilen seçenekler görüntülendi.

98 Java Programlama Dili Diyalog kutusunun sağ tarafında Source Package Folders başlıklı liste kutusunda paket olarak kullanılan klasörler listelenmektedir. NetBeans ile hazırlanan uygulamalarda paketler uygulamaya ait klasörün içinde yer alan src klasörüne yerleştirilmektedir. Daha önce Not Defteri ile hazırlayıp \paketler klasörüne yerleştirdiğimiz paketleri NetBeans ile hazırladığımız bu uygulama dahilinde kullanmak isteğimiz için Add Folder düğmesini tıklayıp ekrana klasör seçimi yapılan Add Source Folder diyalog kutusunu getirdik. Bu diyalog kutusunda paketlerimizin olduğu klasörü seçip Open düğmesini tıklayınca seçtiğimiz klasör Project Properties diyalog kutusunda listelenmeye başlandı. Project Properties diyalog kutusunu OK düğmesi ile kapatınca NetBeans ın Project penceresi aşağıda verilen şekle dönüştü.

Bölüm 4: Paket Hazırlamak ve Kullanmak 99 Bu andan itibaren bu uygulama dahilinde aritmetik, aritmetik.donusumler ve stringler adlı paketlerdeki sınıflardan yararlanmak mümkün hale gelir. Örnek olması için JFrame1 sınıfının görsel yapısının üzerine bir JButton ve JTextField nesnesi yerleştirip jbutton nesnesi çalışma anında tıklandığında işletilecek metodu aşağıdaki gibi düzenledik. private void jbutton1actionperformed(java.awt.event.actionevent evt) { int[] dizi = new int[3]; dizi[0] = 10; dizi[1] = 20; dizi[2] = 30; aritmetik.diziler nesne1 = new aritmetik.diziler(); int sonuc = nesne1.dizitopla(dizi); jtextfield1.settext(integer.tostring(sonuc)); } Kodun başında import deyimi ile aritmetik adlı paketteki sınıflardan yararlanmak istiyoruz deseydik Diziler tipinde nesne hazırlarken sınıf adından önce paket adını yazmak zorunda kalmazdık. NetBeans İle Paket Hazırlamak Başka uygulamalarda kullanmak istediğiniz Java paketlerini NetBeans ile hazırlayabilirsiniz. Bu konuyu anlatmak için önce bir Java projesi hazırlayacağız. Bu amaçla NetBeans i başlatıp File menüsünden komut verip New Project diyalog kutusunu ekrana getirdik.

100 Java Programlama Dili New Project diyalog kutusunda Java Application şablonunu seçip Next düğmesini tıklayıp aşağıda verilen New Java Application diyalog kutusunu ekrana getirdik. Hazırlamak istediğimiz projeye "Paketler" adını verdik. Paketler adını verdiğimiz projenin C: sürücüsünün kök klasörü içinde hazırlanması için ayarlama yaptık. Bu sırada Finish düğmesi tıklanırsa NetBeans, aşağıdaki gibi herhangi bir paket ve sınıfa sahip olmayan bir proje hazırlar.

Bölüm 4: Paket Hazırlamak ve Kullanmak 101 Bu projeyi hazırlama amacımız, başka projelerde kullanmak üzere bir paket hazırlamak olduğu için Source Packages seçeneğine ait kısayol menüsünden Java Package komutunu verip New Java Package diyalog kutusunun ekrana gelmesini sağladık. Aşağıda verilen ekran görüntüsünü hazırlamak istediğimiz paketin adını yazdıktan sonra aldık. Bu sırada Finish düğmesi tıklanırsa, NetBeans tarafından bir paket, daha doğrusu içeriği boş bir klasör hazırlanır. Bu sırada aynı şekilde başka paketler veya mevcut paketler için sınıflar hazırlayabilirsiniz. Tabi mevcut bir paketin içinde başka paketler hazırlamak mümkündür. Konunun ayrıntılarını ortaya çıkarmak için önce ikinci bir paket, sonra bu paketlerin içinde birer sınıf hazırladık. Aşağıda verilen ekran görüntüsünü aldığımız sırada paket1 deki Simif1 in içeriği görüntüleniyordu.

102 Java Programlama Dili Hazırladığınız paketlerdeki sınıfları derlemek istiyorsanız Run menüsünden Build komutunu vermeniz yeterlidir. Derleme sonucu hazırlanacak class uzantılı dosyalar Build klasörüne yerleştirilir. Bu paketleri içerdikleri class uzantılı dosyalarla birlikte alıp istediğiniz gibi kullanabilirsiniz. https://www.seckin.com.tr/kitap/971165446

Bölüm 4: Paket Hazırlamak ve Kullanmak 103 https://www.seckin.com.tr/kitap/851995191#

104 Java Programlama Dili https://www.seckin.com.tr/kitap/766449848# Kitabın Önsözü Java konulu çok sayıda kitap yayınlanıp piyasaya verilmişken, Youtube da Java hakkında bilgi verme kaygısıyla çekilen binlerce video varken, blog sitelerinde onbinlerle ifade edilecek sayıda Java konulu makale yayınlanmış iken bu kitabı neden mi yazıp yayınladık? Nedeni son derece basit; kolay okunan, ilk okumada anlaşılan Java kaynağı ihtiyacının olduğunu düşünmemizdir. Bu nedenle bu kitabı yazarken, önceliğimiz kolay okunmak ve hemen anlaşılmak oldu. Konular, bu kaygı gözetilerek sıralandı. Henüz anlatılmayan kavramlardan söz edilmemeye, işlevleri ve özellikleri hakkında bilgi verilmemiş sınıfları kullanmamaya dikkat ettik. Bu kitapta, öğrenilmesi zaman alan Java programlama diliyle ilgili olarak yazılan her cümlenin ilk okumada anlaşılmasını amaçladık. Bu kitabı okumaya, dolayısıyla Java öğrenmeye başlamadan önce hem NetBeans hem de Eclipse'i indirip kullandığınız bilgisayara kurmanız önerilir. Çünkü kitapta Java'nın temel özellikleri anlatılırken bazen Eclipse bazen de NetBeans kullanıldı. Bu kitabı bitirip Java konusunda bilgi sahibi olduğunuzda istediğiniz IDE yi tercih edip uygulamalarınızı onunla geliştirmeye devam edebilirsiniz. Bu kitabı okumaya başlamadan önce IDE nizi seçtiyseniz kitapta diğer IDE yle ilgili olarak söylenenlere

Bölüm 4: Paket Hazırlamak ve Kullanmak 105 kayıtsız kalabilirsiniz. Örneğin NetBeans kullanıyorsanız, Eclipse kullananlara yönelik olarak MySQL veritabanları üzerinde işlem yaparken gerek duyulacak sürücüyü mysql.com dan indirip kurma işleminin anlatıldığı sayfayı okumadan atlayabilirsiniz. Son yıllarda yayınlanan kitapların yanında ilgili konuların anlatıldığı videolar veriliyor. İnsanlar bu video filmleri izleyerek programcılıkla ilgili konuları daha kolay anlayacağını düşünüyor. Bize göre, bu kitabı okuyup Java öğrenmeye çalışmak, Java yla ilgili olarak çekilen videoları izlemekten daha verimlidir, daha anlaşılırdır. Bu kitabı yazarken öncelikli hedeflerimizden birisi şuydu: Java programlama diliyle ilgili olarak bu kitapta bulunan herhangi bir konuyu okuyanların başka kaynaklara bakma ihtiyacını azaltmaktır. Başka bir deyişle bu kitabı okuyan birisinin okuduğunu anlamadığı için başka kaynaklara başvurmak zorunda kalmasın istedik. Bu kitabı yazarken kullandığımız bilgisayarda Windows kuruluydu. Bu nedenle kitap dahilinde kurulan bazı cümlelerde ortamın Windows olduğu vurgulandı. Konu Java kodu yazmak olduğunda kullanılan işletim sisteminin Windows, Mac veya Linux olmasının koda olan etkisi yok gibidir.