Java ile Programlama

advertisement
Bülent Çobanoğlu“Java ile programlama ve Veri yapıları”, Pusula yayıncılık,ISBN:978-9944-711-10-4
Java ile Programlama
TEMEL KAVRAMLAR
Bilgisayar donanım ve yazılım olmak üzere iki ana bileşenden oluşur. Donanım (Hardware),
bilgisayarın fiziksel yapısını ifade eder. Fiziksel yapı, sadece bir metal yığınından ibarettir. Kısaca
gözle görebildiğimiz elle dokunabildiğimiz parçalardır. Bilgisayarda kullandığımız her türlü
programlara yazılım (software) denir. Kısaca donanımı kullanmak için gerekli programlara yazılım
diyoruz. Bir nevi bilgisayara hayat veren, canlılık veren programlar yazılımlardır. Yazılımsız
bilgisayarın ölü bir bedenden farkı yoktur.
Bu iki temel kavramdan sonra programlama dilleri yazılımın neresindedir? Sorusuna aşağıdaki şema
ile cevap verebiliriz.
Programlama
dillerini
çalıştırabilmek
için
üzerinde
yüklü
bir
kurup,
donanım
işletim
sisteminin (sistem yazılımının)
olması gerektiği açıktır.
Program, bilgisayara ne yapması
gerektiğini söyleyen bir grup
komuta (kod topluluğuna) verilen
isimdir. Bu komutları veren kişiye
programcı, komutların bütününe ise programlama dili denir.
İnsan ya da programcı ( yapay dil - konuşma dili bilen) ile bilgisayar ( makine dili“1,0” bilen) arasındaki iletişim nasıl gerçekleşir?
Bu sorunun cevabı için şu örneği verebiliriz. Birbirinin konuşma dilini bilmeyen iki yabancı devlet
adamı bir araya gelip nasıl görüşür veya anlaşır? Doğal olarak bu görüşmenin ancak tercüman veya
çevirmenler aracılığı ile gerçekleşebileceğini söyleyebiliriz. Benzer şekilde bilgisayar üreticileri, aynı
sorunu insanın konuşma dilini bilgisayarın makine diline çevirecek, bir nevi tercümanlık yapacak
“derleyici veya yorumlayıcı programlar” geliştirerek çözmüşlerdir.
DERLEYİCİ ve YORUMLAYICI KAVRAMLARI
1
Bülent Çobanoğlu“Java ile programlama ve Veri yapıları”, Pusula yayıncılık,ISBN:978-9944-711-10-4
Yazdığımız programları makine diline çeviren, makine dilinde elde edilen sonuçları bizim anladığımız
biçime dönüştüren programlara çevirici ( derleyici veya yorumlayıcı) programlar denir.
Kaynak Program (Source Program)
Bir programlama dili ile yazılmış programlardır. Kaynak program dosyasının uzantısı örneğin Visual
Basic dilinde ise .bas veya .frm , C dilinde yazıldı ise .c , Java dilinde yazıldı ise .java, Assembly
dilinde yazıldı ise .asm dir.
Amaç Program (Object Program)
Bir programlama dilinde yazılmış kaynak programın derlenmesi ile elde edilen program. Amaç
program makine diline dönüştürülmüş ve çalıştırılmaya hazır programdır.
Programlama dilleri, kaynak kodun makine koduna (amaç programa) çevrilmesi ve çalıştırılması
işleminde derleyici, yorumlayıcı veya her ikisini birlikte kullanabilir.
Derleyici (Compiler)
Programlama dili ile yazılmış bir programı, makine dili ile yazılmış amaç veya hedef programa
çevirirler. Yüksek seviyeli bir dil ile yazılanlarda kurallarına ters düşen hata kontrollerini
oluşturduktan sonra komut ve bilgilerin makine tarafından tanınarak işlemlerin yapılmasını sonuçların
tekrar yüksek seviyeli program diline anlaşılır duruma çevrilmesini sağlarlar. Fortran, C, C ++, C#,
Pascal, Delphi gibi diller derleyici kullanırlar.
Yorumlayıcı (Interpreter)
Program kodlarının ilk satırından son satırına kadar satır satır belirtilmiş komut ve işlemleri
inceleyerek kaynak programın hatalarının düzeltilmesine imkân veren ve çalıştıran programdır.
Herhangi bir komut satırının çevrilmesinde ya da çalıştırılmasında bir hatayla karşılaştığında çalışmayı
durdurur ve hatalı satırı programcıya bildirir. Basic, PHP, Perl, Lisp gibi diller yorumlayıcı kullanırlar.
Derleyici ile Yorumlayıcının Farkı
2
Bülent Çobanoğlu“Java ile programlama ve Veri yapıları”, Pusula yayıncılık,ISBN:978-9944-711-10-4
Yorumlayıcıda kodun okunması ve çevrilmesi programın çalışması sırasında yapıldığından hız
düşüktür. Ayrıca yorumlayıcı yalnızca karşılaştığı ilk hatayı rapor edebilir. Bu hata düzeltildiğinde
sonraki çalışmada da program ancak bir sonraki hataya kadar ilerleyebilir. Oysa derleyici kaynak
kodundaki bütün hataları bulabilir. Buna karşılık hata ayıklama işlemi yorumlayıcılarla daha kolaydır.
Ayrıca derleyicilerle gelen bazı sınırlamaların kalkması nedeniyle daha esnek bir çalışma ortamı
sağlanır. Son yıllarda iki yöntemin üstün yanlarını birleştiren karma diler (Java ve Python gibi) öne
çıkmaya başlamışlardır.
Derleyici, programın tamamını kontrol eder bir satırında hata varsa program satırları bittikten sonra
hatayı gösterir. Yani kaynak kodu bir defa çevirir. Yorumlayıcı ise programın bir yerinde hata varsa
çalışırken hatalı satıra geldiğinde durur ve hata mesajı verir. Hata düzeldikten sonra tekrar birinci
satırdan itibaren kodu çevirir.
Hem derleyici hem de yorumlayıcı tekniği birlikte de kullanılabilir. Bu tip çalışmada kaynak kodu
sanal bir bilgisayarın makine koduna (bytecode) çevrilir ve daha sonra bu sanal bilgisayarı
gerçekleyen bir program yardımıyla yorumlanarak çalıştırılır. Örneğin Java dilinde yazılmış bir
kaynak kodu önce Java derleyicisinden geçirilerek Java Sanal makinesinin (Java Virtual MachineJVM) makine koduna dönüştürülür; sonrada bu sanal makineyi gerçekleyen bir Java çalışma ortamı (
Java Runtime Environment – JRE ) yardımıyla çalıştırılır. Bu işlemin nasıl yapıldığı aşağıda
grafiksel olarak gösterilmiştir.
Bağlama (Linking)
Günümüzde yazılan birçok program, genellikle
programlama
kütüphane
dili
içerisinde
fonksiyonlarına
ve
bulunan
yordamlara
bağlantı içerdiğinden kaynak programdan
üretilen
amaç
program
kodunun
(obje)
bilgisayarda çalıştırılmaya hazır olması için bu
amaç program (object code) bağlama (linking) işlemine tabi tutulur. Bu bağlama işleminide bağlayıcı
3
Bülent Çobanoğlu“Java ile programlama ve Veri yapıları”, Pusula yayıncılık,ISBN:978-9944-711-10-4
(Linker) denilen yazılımlar yapmaktadır. Bu işlem sonucu eksik parçaların program kodu içerisine
eklenmesi ile artık yazılan program (uygulama dosyası) çalışmaya hazır hale gelmiş olur.
Algoritma
Algoritma herhangi bir problemin çözümü için izlenecek yol anlamına gelmektedir. Bir problemi
sonlu bir zamanda çözebilmek için geliştirilmiş açık seçik, yürütülebilir, sıralı, basit ve gerektikçe
tekrar eden adımlardan oluşan yöntemlerdir. Bir problemin çözüleceği yöntemi oluşturma ise
algoritma tasarlama olarak tanımlanır. Bu tanıma göre bir algoritmanın özellikleri;
Açık seçik olmalı (belirsizliklere yer vermemesi)
Yürütülebilir olmalı
Sıralı olmalı
olarak sıralanabilir.
Algoritma, bir problemi çözmek için geliştirilmiş açık- seçik, yürütülebilir ve sıralı adımlardan oluşan
bir yöntemdir. Bir algoritma, programlama dillerine (C, Pascal, Java gibi) uygulandığında program
adını alır.
Algoritmalar tarafından işlenen en temel elemanlara (sayısal bilgiler, metinsel bilgiler, resimler,
sesler, vb.) veri adı verilir. Bir algoritmanın etkin, anlaşılır ve doğru olabilmesi için algoritmanın
işleyeceği verilerin düzenlenmesi, işlenmesi gerekir.
☻Veri (data), işlenmemiş bilgi veya bilginin ham halidir. Bilgi ise, en basit anlamda verinin işlenmiş şeklidir
Verilerin düzenlenme biçimini belirleyen yapıtaşlarına veri yapıları denir. Bir program değişkeni bile
basit bir veri yapısı olarak kabul edilebilir. Değişik algoritmalarda verilerin diziler, yığınlar,
kuyruklar ve ağaçlar gibi veri yapıları şeklinde düzenlenmesi gerekebilir.
Bir programda veri, yapı ve algoritma, önemli ve birbirlerinden ayrılmaz bileşenlerdir. Verilerin
düzenlenme biçimleri de önemlidir. Çünkü yapı iyi tasarlandığında, etkin, anlaşılır, doğru ve hızlı
çalışıp az kaynak kullanan algoritma geliştirmek kolaylaşır.
Algoritma sözcüğü nereden gelmektedir?
Algoritma sözcüğü adını Ebu Abdullah Muhammed İbn
Musa El Harezmi adındaki Müslüman - Türk âlimden
almıştır.
Adı
Latinceye
Alkhorizmi,
Fransızcaya
Algorithme, İngilizceye ise Augrim şeklinde geçmiştir.
Âlimin ismini telaffuz edemeyen Avrupalılar "algorizm"
sözcüğünü "sayıları kullanarak aritmetik problemler çözme
kuralları" anlamında kullanırlar. Bu sözcük daha sonra "algoritma"ya dönüşür ve yaygın
olarak kullanılır. Latince çevirisinin Avrupa'da çok büyük ilgi gördüğü, “Hisab el-cebir ve elmukabala” kitabı dünyanın ilk cebir kitabı ve aynı zamanda ilk algoritma koleksiyonunu
oluşturur. Âlimin 780 (H.164) senesinde Harezm’de doğduğu kabul edilir. 850 (H.236) senesinde
ise Bağdat’ta vefat etmiştir.
4
Bülent Çobanoğlu“Java ile programlama ve Veri yapıları”, Pusula yayıncılık,ISBN:978-9944-711-10-4
PROGRAMLAMA DİLLERİ VE JAVA DİLİ
Bir programlama dili, programcının bir bilgisayara ne yapması gerektiğini anlatmasının
standartlaştırılmış bir yoludur.
Bir programcı komutları farklı programlama
dilleri kullanarak yazabilir. Günümüzde
yüzlerce programlama dili mevcuttur. Bu
dilleri Şekil’de gösterildiği gibi insanın
algılamasına veya makineye yakın olmasına
göre 3 gruba ayırabiliriz;
1. Alt seviyeli diller ( Assembly dili)
2. Orta seviyeli diller ( C, Ada dili)
3. Yüksek seviyeli diller( Visual Basic,
Pascal, Delphi, Cobol, FoxPro, Java gibi..)
4.
NOT: Programlama, temel olarak çözüm algoritması geliştirme işlemi, bilgisayar programı ise bir
programlama dili ile yazılmış algoritmadır.
Programlama dilleri kavramı, günümüzde kabına sığamamış cep telefonlarından kol saatlerine kadar
tüm işlem birimlerinde (Mikroişlemci-CPU, Mikro denetleyici-MCU, Sayısal İşaret İşleyici-DSP …)
bulunan elektronik cihazlarda kullanım alanı bulmuştur. Şüphesiz bu yönelim, programlanabilir bir
elektronik aygıtın özelleştirilebilme büyüsünden ileri gelmektedir.
Programlama dilleri, daha sonraları yalnız programlama kavramı içerisine sıkışıp kalmadı. Grafik
Kullanıcı Arabirimi (GUI) tanımlama, veritabanı sorgulama gibi alanlarda da kullanım bularak
uygulama geliştiricilerin daha çok işlem yapabilen programları, daha kısa sürede yazmalarına imkân
tanıdı. Programalama dilleri ise artık yalnızca uygulama geliştirmek için değil uygulamaları
özelleştirmek için de sıkça kullanılır hale geldiler.
Günümüzdeki birçok modern programlama dilinin temeli, hiç şüphesiz Zuse'un Plankalkül hesaplama
dili ve IBM tarafından geliştirilen Fortran'ın öncülüğünden sonra uygulama sahası bulmuştur.
Programlama dillerinin tarihsel gelişimindeki FORTRAN, ALGOL, LISP, Pascal, APL, SIMULA,
CPL, Ada, Smalltalk, BASIC, C gibi büyük atlama taşlarının bir çoğu günümüzde şekil değiştirmek
suretiylede olsa güncelliğini korumaktadır. Bunların yanında daha yakın bir tarihte geliştirilmiş olan,
bu dillerin torunları olarak gösterebileceğimiz Java, C++, C#, Python, Ruby, Perl, Delphi, Visual
5
Bülent Çobanoğlu“Java ile programlama ve Veri yapıları”, Pusula yayıncılık,ISBN:978-9944-711-10-4
Basic, PHP gibi diller de sahnede kendilerini göstermiş ve programlama dili pastasında önemli bir
pay sahibi olmuşlardır.
1.1.
JAVA PROGRAMLAMA DİLİNİN ÖZELLİKLERİ
Sun Microsystems mühendislerinden James Gosling tarafından geliştirilmeye başlanmış gerçek
nesneye yönelik, platformdan bağımsız, yüksek performanslı, çok işlevli, yüksek seviye, adım adım
işletilen bir dildir. İlk sürümü 1996 yılında çıkmış olup, 1.1,1.2,1.3,1.4 ve 5.0,6.0 gibi sürümleri
geliştirilmiştir.
Java ilk çıktığında daha çok küçük cihazlarda kullanılmak için tasarlanmış ortak bir platform dili
olarak düşünülmüştü. Ancak platform bağımsızlığı özelliği ve standart kütüphane desteği C ve
C++'tan çok daha üstün ve güvenli bir yazılım geliştirme ve işletme ortamı sunduğundan, hemen her
yerde kullanılmaya başlanmıştır. Şu anda özellikle kurumsal alanda ve mobil cihazlarda son derece
popüler olan Java özellikle J2SE 1.4 ve 5 sürümü ile masaüstü uygulamalarda da yaygınlaşmaya
başlamıştır. Java’nın ilk sürümü olan Java 1.0 (1995) Java Platform 1 olarak adlandırıldı ve
tasarlama amacına uygun olarak küçük boyutlu ve kısıtlı özelliklere sahipti. Daha sonra platformun
gücü gözlendi ve tasarımında büyük değişiklikler ve eklemeler yapıldı. Bu büyük değişikliklerden
dolayı geliştirilen yeni platforma Java Platform 2 adı verildi ama sürüm numarası 2 yapılmadı, 1.2
olarak devam etti. 2004 sonbaharında çıkan Java 5, geçen 1.2, 1.3 ve 1.4 sürümlerinin ardından en
çok gelişme ve değişikliği barındıran sürüm oldu. Java SE 7 ise (kod adı: Dolphin) Sun'un üzerinde
çalıştığı, Java teknolojisinin gelecekteki sürümüdür. 13 Kasım 2006 da Java platformu GPL lisansıyla
açık kodlu hale gelmiştir. Java dilinin farklı sürümleri ve çıkış tarihleri aşağıdaki şekilde
gösterilmiştir.
Java dilinin temel özelliklerini sıralarsak;
6
Bülent Çobanoğlu“Java ile programlama ve Veri yapıları”, Pusula yayıncılık,ISBN:978-9944-711-10-4
Basit (Simple)
Java dili kısa ve özlü komut yapısına sahip, öğrenmesi kolay bir dildir. Ayrıca
C,C++ diline benzerliği nedeni ile bu dillere aşina olanlar için Java’da kod
yazmak kolay olacaktır.
Güvenli (Secure)
Java programlama dili ile hazırlanan programlar güvenliğin çok önemli olduğu
uygulamalarda (internet uygulamaları gibi) tercih edilmektedir. C, C++ gibi
dillerden daha güvenlidir. Sadece derleme esnasında değil aynı zamanda
yükleme(çalıştırma) esnasında da Byte-code doğrulaması yapılır.
Taşınabilirlik (Portable)
Java teknolojisinin en önemli özelliği her ortamda çalışabilmesidir. JVM (Java
Sanal Makinesi) nin kurulduğu her ortamda (Java platformunu destekleyen her
türlü ortamda) çalışır.
Nesne Yönelimli (Object
Nesne yönelimli bir programlama dilidir. Java’da her şey ya nesnedir ya da bir
Orient)
nesnenin parçasıdır.
Sağlam (Robust)
Java sağlam bir dildir. Programlamadaki hataların çoğu daha yazılım
aşamasında anlaşılabilmektedir. Yazılım aşamasında yakalanamayan hatalar,
çalışma zamanında (run-time) düzeltilebilmektedir.
Çoklu kullanım
Java dili çoklu kullanım (multithreaded) programlama desteği sağlar. Çoklu
(Multithreaded)
kullanım, program içinde birden fazla işlemin çalışabilmesi demektir.
Mimariden bağımsız
Bir belirli makine ya da işletim sistemi mimarisine Java programlama dili bağlı
(Architecture-neutral)
değildir.
Yorumlayıcı- Interpreted
Java dili hem derleyici hem yorumlayıcı kullanır.
Yüksek performans
Java diğer dillere nazaran nispeten yavaş olmakla birlikte, Java bytecode’u
(High performance)
çalışma hızı için en iyi şekilde optimize edilmektedir.
Dağıtık
'Dağıtık' birden fazla bilgisayarda çalışan programların bir biriyle uyumlu
çalışabilmesidir. Bir yazılım parçasının bir kısmının bir makinede diğerinin
(Distributed )
başka
makinede
aynı
anda
çalışması
mümkündür.
(Özellikle
internet
uygulamalarında Java tercih edilmektedir.
Dinamik (Dynamic )
Java da bir programın birimlerinin (kütüphaneler, modüller veya sınıfların)
birbirine bağlanması çalışma zamanında (run-time) yapılır. Kullanılan
birimlerin içyapısı değiştirildiğinde, bu birimleri kullanan programın değişmesi
gerekmez
Ücretsiz
Java programını ve her türlü yazılımını internet adresinden (www.java.sun.com)
ücretsiz edinebilirsiniz.
7
Bülent Çobanoğlu“Java ile programlama ve Veri yapıları”, Pusula yayıncılık,ISBN:978-9944-711-10-4
Java, kendini çok hızlı bir şekilde yenileyen bir dil, sürekli yeni versiyonları çıkmakta ve her çıkan
sürümle birlikte dile yeni özellikler eklenmektedir. Bu programcılar için hem dezavantaj hem de
avantaj sağlamaktadır. Dezavantajı, programcının sürekli yeni özellikleri öğrenmek zorunda kalması
ama bu dezavantajı java dili geriye uyumluluk ile avantaja dönüştürmektedir. Yani 1.4 sürümündeki
bir komut, 1.6 sürümünde de çalışmaktadır. Java nın mevcut sürümleri ve aralarındaki bazı farkları
aşağıdaki listede görebilirsiniz.
•
•
•
1995: Version 1.0 :
o
8 paket ile 212 sınıfa(class) sahip.
o
İlk sürüm
1997: Version 1.1:
o
23 paket ile 504 sınıfa (class) sahip.
o
JVM iyileştirildi, iç sınıflar ve daha etkili hata yakalama içermektedir.
o
Çoğu web tarayıcı 1.1 ile uyumlu hale geldi
1999: Version 1.2:
o
59 paket ile 1520 sınıfa (class) saip.
o
Java 2 Platformu olarak adlandırıldı.
o
Eski sürümlere oranla 10 kat daha hızlıdır.
o
API'de önemli değişiklikler, reflection özelliği ve JIT Derleyicisi nin eklenmesi ancak
dilin kendisinde önemli değişiklikler olmadı.
•
•
•
•
2000: Version 1.3:
o
76 paket ile 1842 sınıfa (class) saip.
o
Hotspot JVM sunuldu.
2002: Version 1.4:
o
135 paket ile 2991 sınıfa (class) saip.
o
XML desteği ve pek çok yeni API değişikliği
2004: Version 5.0 (1.5 sürümü):
o
165 paket ile 3000 den fazla sınıfa (class) sahip.
o
Grafik alt yapısında ve sanal makine başarımında gelişmeler oldu.
o
For- each benzeri döngü yapısı, yeni komutların eklenmesi
2006: Version 6.0 (1.6 sürümü):
o
Java 1.5 göre daha fazla paket ve sınıfa sahip.
o
Derleyici erişimi, program içerisinden javac derleyicisi kontrol edilebiliyor.
o
Daha fazla güvenlik desteği
8
Bülent Çobanoğlu“Java ile programlama ve Veri yapıları”, Pusula yayıncılık,ISBN:978-9944-711-10-4
o
Bir
Java
Yeni masaüstü özellikleri ve pek çok yeni API değişikliği
programını
çalıştırabilmek
için
Sun’ın
web
adresinden
(
http://java.sun.com/javase/downloads ) en son sürümünü indirebilirsiniz (download edebilirsiniz).
Örnek olarak Java 6.0 sürümünü indirebilirsiniz.
Aşağıdaki şema Java programlama dilinde yazılan bir programın derleme aşamalarını göstermektedir.
BASİT BİR JAVA PROGRAMININ KALIBI
9
Bülent Çobanoğlu“Java ile programlama ve Veri yapıları”, Pusula yayıncılık,ISBN:978-9944-711-10-4
Her programlama dilinde olduğu gibi Java programlama dilinde de komutlar (sınıfları, nesneleri
içeren), sabitler, mesajlar, değişkenler, operatörler ve açıklama satırları vardır. Bu kavramları
açıklamadan önce Java dilinin yapısını (ne nereye yazılıyor?) basit bir program (Merhaba.java)
üzerinde açıklayalım.
? Herhangi bir Java programı derlendikten sonra çalıştırılabiliyorsa, programın belli bir
metodundan çalıştırılmaya başlanır. Bu metot nedir?
Cevap: public static void main(String[] args) { ... }
Açıklama;
public deyimi ile yöntemin herkese açık olduğunu, static deyimi ile sınıf tarafından paylaşıldığı, void
deyimi ile geriye değer döndürmediğini, main yöntemine sahip olduğunu, String [] args ile yöntemde
10
Bülent Çobanoğlu“Java ile programlama ve Veri yapıları”, Pusula yayıncılık,ISBN:978-9944-711-10-4
kullanacağımız parametreleri belirtiyoruz. Parametre belirtirken sınıfını ve parametre adını veriyoruz.
String deyimi sınıf adı, args ise parametre adını belirtir
Java Dili Gramer Yapısı
Java programlama dili C,C++ dilinin gramer yapısını kullanır. Her komut satırı ‘;’ karakteri ile
sonlandırılmalıdır. Komutlar küçük harflerle yazılır (class deyimini Class şeklinde yazdığınızda
program hata verir). Açıklama (Yorum) satırları içinde;
Eğer tek satırlık bir açıklama yapılacaksa ‘//’ karakteri,
// Bu karakterlerden sonra yazılanlar ekranda görünmez
Birden fazla satırlık açıklama yapılacaksa ‘ /* ………. */ ’ karakterleri kullanılır.
/* Bu karakterlerden sonra yazılanlar ekranda görünmez ve
Derleyici tarafından dikkate alınmazlar */
İlk Java Programımız;
Bir Java programını (örneğimizde Merhaba.java isimli) farklı yöntemlerle çalıştırabiliriz.
I.Yol : Not defteri ile..
1.adım: Metin editöründe (Not defteri) ilk Java programını yazıyoruz.
2.adım: Yazdığım programı javac derleyicisinin bulunduğu klasör içerisine “.java” uzantılı
kaydediyoruz. Bunun için;
Dosya Farklı Kaydet “C:\Program Files \ Java\jdk1.6.0_02\bin” klasörünü seçiyoruz ve
Merhaba. java ismiyle kaydediyoruz.
11
Bülent Çobanoğlu“Java ile programlama ve Veri yapıları”, Pusula yayıncılık,ISBN:978-9944-711-10-4
3.adım: MS-DOS komut istemine geçiyoruz (Windows XP için, BaşlatÇalıştırCMD yazarak ).
Programı derlemek için javac isimli derleyicinin bulunduğu yolu yazıyoruz. (Örnek olarak
“C:\Program Files \ Java\jdk1.6.0_02\bin” klasörünün içerisinde)
4.Adım: javac Merhaba.java komut satırı ile java uzantılı programı derliyoruz.
Programda bir yazım hatası yoksa derlenecektir. Bu aşamada “Merhaba.class” dosyası oluşmuş olur.
5.adım: class dosyasını oluşturduğumuz dosyayı son aşama olarak java komutu ile (java Merhaba )
çalıştırabiliriz.
Programı
çalıştırdığımızda
ekrana
“Merhabalar, bu ilk JAVA Programımız”
mesajını aldık.
Not: (Windows XP için)
Her defasında MS-DOS komut isteminde
programı derlemek için javac isimli
12
Bülent Çobanoğlu“Java ile programlama ve Veri yapıları”, Pusula yayıncılık,ISBN:978-9944-711-10-4
derleyicinin bulunduğu yolu yazmamak (“C:\Program Files \ Java\jdk1.6.0_02\bin” ) için ;
Masaüstündeki Bilgisayarım (My Computer) simgesine sağ(ters) tıklama yapılır Özellikler (Properties) Gelişmiş (Advanced) Ortam Değişkenleri (Environment
Variables) seçilir ve PATH (yol) tanımı “; C:\Program Files \ Java\jdk1.6.0_02\bin”
şeklinde yapılır. Artık sadece MS-DOS komut isteminde “c:\> javac dosya_adi.java”
yazarak programınızı derleyebilirsiniz.
2.yol: Bir Java Editör programı (JCreator) ile
Eğer MS-DOS komut istemi ile uğraşmak istemiyorsanız, yazdığım kod direkt çalışsın diyorsanız, bir
Java editörü kullanmanızı tavsiye ederim. Sık kullanılan bazı Java editörleri ve ücretsiz
indirebileceğiniz web adresleri aşağıda verilmiştir.
•
Eclipse (http://www.eclipse.org/downloads)
•
NetBeans (http://www.netbeans.info/downloads)
•
JCreator (http://www.jcreator.com/download.htm)
•
BlueJ (http://www.bluej.org/download/download.html)
1. Adım: Bizde kitabımızdaki Java uygulamalarını JCreator editör programı ile derleyip, çalıştırdık.
Bunun için ilk önce JCreator programının “JCreator LE v4.00” ücretsiz olan sürümünü yukarıda
belirtilen web adresinden indirdik ve bilgisayarımıza kurduk.
2. Adım:
Programımızı yazdıktan sonra F5 tuşuna basarak çalıştırdık.
3.yol: Bir Java Apleti ile
13
Bülent Çobanoğlu“Java ile programlama ve Veri yapıları”, Pusula yayıncılık,ISBN:978-9944-711-10-4
Bir Java apleti, appletviewer programı veya html (web) dosyası ile çalıştırılabilir. Apletler sayesinde
görsel araçlar (buton, label, gibi) kullanılabilmektedir. Yazılan java kodları derlenerek önce .class
dosyasına dönüştürülür, daha sonrada bir html dosyası içinde kullanıcıya sunulur.
Java aplet program kodunun başlangıcında iki önemli paketi import etmek (çağırmak) gerekir.
Grafiksel ara yüz için java.awt ve Applet sınıfı için gerekli olan java.applet paketini çağırmamız
gerekir.
Merhaba.java dosyasını aşağıdaki gibi oluşturup derliyoruz ( Merhaba.class dosyası haline
dönüştürüyoruz.
import java.awt.*;
public class Merhaba extends java.applet.Applet {
public void paint(Graphics g) {
g.drawString ("Merhabalar, bu ilk JAVA Programımız",110,100);
}
}
Daha sonra HTML tagları arasına applet kodumuzu yerleştiriyoruz. Bunun için Not defterini açıp
aşağıdaki kodu yazalım ve
<html>
<applet code="Merhaba.class" width=300 height=150>
</applet>
</html>
Bu dosyamızı Merhaba.html olarak kaydedip, MS-DOS komut satırında appletviewer komutu ile
C:\Program Files \ Java\jdk1.6.0_02\bin
appletviewer Merhaba.html
Veya
14
Bülent Çobanoğlu“Java ile programlama ve Veri yapıları”, Pusula yayıncılık,ISBN:978-9944-711-10-4
C:\Program Files \ Java\jdk1.6.0_02\bin klasöründeki Merhaba.html dosyasının üzerine çift
tıklayarak çalıştırdığımızda aşağıdaki ekran çıktısını elde ederiz.
GİRİŞ-ÇIKIŞ (I/O) İŞLEMLERİ İÇİN GEREKLİ KOMUTLAR
Java dilinde, giriş – çıkış işlemleri için gerekli olan kavramları ( komut, sınıf ve paketler) kısaca
açıklayalım.
Paket (Package) Kavramı:
Java dilinde modülerliği sağlayan en önemli kavramlardan biri paket kavramıdır. Birbiriyle işlev veya
kullanım açısından ilişkili sınıf (class) lar ‘paket' adı verilen bir birim altında birleştirilir. Bir sınıfın
(class) ait olduğu paketi belirtmek için 'java.paketin_adi.sınıfın_adi' anahtar kelimesi kullanılır
(java.util.Scanner gibi).
Java'nın kendi API (Application Programming Interface - Uygulama Programlama Arayüzü) birçok
sınıftan oluştuğu için birçok paket altında gruplandırılmıştır. Bunların çoğu 'java.' veya 'javax.'
ifadeleri ile başlar. 'javax' öneki daha çok, sonradan extension (ekleme) paketler için kullanılır.
Önceden 'extension' olan paketler daha sonra standart API'a dâhil olabilmektedir. Hangi paketlerde ne
tür sınıfların bulunduğunun öğrenilmesi iyi olur. Örneğin, ara yüzle ilgili sınıflar 'java.awt' , tarih ve
zamanla ilgili fonksiyonlar, rastgele sayı üreteci gibi genel araçlar ‘java.util’ paketindedir.
15
Bülent Çobanoğlu“Java ile programlama ve Veri yapıları”, Pusula yayıncılık,ISBN:978-9944-711-10-4
Aslında bütün class'lar bir pakete ait olmak zorundadır. Bir program yazıldığında otomatik olarak Java
standart kütüphanesi (java.lang paketi) çağrılır. Diğer herhangi bir sınıfı(class) kullanacağımız zaman
o sınıfın ait olduğu paket, import deyimi ile çağrılır.
Import Kavramı:
Bir sınıfın, kendisiyle aynı pakette olmayan başka bir sınıfı kullanabilmesi için, sınıf(class) tanımından
önce import edilmesi gerekir. Bu sadece kullanılan sınıfların tam olarak hangi pakette olduğunu
söylemek anlamına gelir. Bunun için 'import' anahtar kelimesi kullanılır. import kelimesi, kaynak
kod o paketi kullanmadan önce yazılmalıdır.
Kullanım şekli;
import paket_adi.sınıf_adi;
Java aynı dizin içindeki sınıfları, bir paketin içindeymiş gibi görür. Import deyimi ile birlikte * joker
karakteri kullanılabilir. Örneğin
import java.util.*;
şeklindeki tanımlama, “java.util paketindeki tüm sınıfları çağır” anlamındadır. * joker karakterini
ilgili bir paket için kullanabilirsiniz fakat java.* şeklinde Java’nın altındaki tüm paketlere
erişemezsiniz.
Scanner deyimi:
Giriş – Çıkış işlemleri için java.util.Scanner sınıfının yöntemleri kullanılır. Scanner, Java 5.0 ile
birlikte gelen yeni bir sınıftır. Daha önceki versiyonlarda (Java 1.4.0 gibi) bulunmaz. Scanner
sınıfının yöntemlerini kullanabilmek için programın başında “import java.util.Scanner” veya
“import java.util.*” ifadesi kullanılır.
Bilgi giriş-çıkışı için genelde üç yöntem kullanılır. Bunlar;
•
System.in – Klavyeden bilgi girişi için kullanılır.
o { Scanner oku=new Scanner(System.in); gibi}
•
System.out -- İşlem sonuçlarını, mesajları ekranda göstermek için kullanılır.
•
System.err – Hata mesajlarını verir.
16
Bülent Çobanoğlu“Java ile programlama ve Veri yapıları”, Pusula yayıncılık,ISBN:978-9944-711-10-4
Klavyeden bilgi girişi yapıldıktan sonra o veri üzerinde işlem yaparken Scanner sınıfının bazı
yöntemleri kullanılır. Bu yöntemler, Tablo1-1.de gösterilmiştir.
Tablo 1-1 Bazı Scanner Yöntemleri
Yöntem
İşlevi
Klavyeden
girilen
tamsayı
(integer)
nextInt()
türündeki sayıyı okur.
Klavyeden girilen tamsayı (byte) türündeki
nextByte()
sayıyı okur.
Klavyeden girilen Boolean türündeki önermeyi
nextBoolean()
okur.
Klavyeden
sayı
girilen
ifadeyi
kesirli(gerçek)
nextFloat()
(float) türüne çevirir
Klavyeden
girilen
kesirli(gerçek)
ifadeyi
sayı
(double)
uzun
nextDouble()
türüne
çevirir
Klavyeden
girilen
kelimesini okur
String
ifadenin
ilk
next()
{boşluk (space) karakterine
kadar olan kısmı tarar}
Klavyeden
girilen
tüm
satırı
okur.
String
nextLine()
türünde bir satır okur.
Tek
bir
karakteri
okur
(girilen
ifadeyi
findInLine(“.”).charAt(0)
karakter karakter okur)
System.out.print( )/ println( ) deyimi:
17
Bülent Çobanoğlu“Java ile programlama ve Veri yapıları”, Pusula yayıncılık,ISBN:978-9944-711-10-4
Ekrana yazı yazmak için System.out.println( ) veya System.out.print( ) şeklinde bir ifade kullanılır.
Bu işlem, System adlı sınıfın out adlı özelliğinin print() veya println() adlı yöntemini çağırarak
gerçekleşir. print () deyimi ile mesajlar yan yana yazılırken, println() deyimi ile mesaj yazıldıktan
sonra bir alt satıra geçilir ( alt alta yazılır). Örneğin aşağıdaki kod satırlarının;
System.out.print ("Sakarya");
System.out.print ("Adapazarı");
System.out.println ("MYO");
System.out.println("Esentepe");
Ekran çıktısı aşağıdaki gibidir.
SakaryaAdapazarıMYO
Esentepe
System.out.printf( ) deyimi:
Ekrana yazı yazmak ve çıkış formatını belirlemek için Java diline 1.5 sürümü ile birlikte printf()
yöntemi eklenmiştir. Bu deyim print() deyimi ile aynı işleve sahip olmakla birlikte ek özellikler
içermektedir. Kullanım şekli;
System.out.printf( çıkış formatı, ifadeler);
printf () metodu, çıkış formatı olarak 2. Bölümde bahsedilen çıkış karakterlerine ek olarak aşağıdaki
karakterleri de kullanır.
Basılacak Karakter
veya İşlevi
Çıkış
Karakteri
Ondalıklı
(Decimal) tamsayı
%d
Sekizli (Octal)
tamsayı
%o
Onaltılı
(Hexadecimal)
Örnek kod
Ekran Çıktısı
System.out.printf( "%d\n", +26 );
26
System.out.printf( "%d\n", -26 );
-26
System.out.printf( "%o", +26 );
32
%x veya System.out.printf( "%x\n", 26 );
%X
System.out.printf( "%X", 26 );
1a
1A
18
Bülent Çobanoğlu“Java ile programlama ve Veri yapıları”, Pusula yayıncılık,ISBN:978-9944-711-10-4
tamsayı
Tek Karakter
%c
System.out.printf( "%c",'A' );
A
System.out.printf( "%s\n","Ali" );
System.out.printf( "%S\n","Veli"
);
String ifade
Ali
%s veya
System.out.printf("%3.2s\n","bade" VELİ
%S
);
ØØba
(3 karakter boşluk bıraktıktan
sonra 2 karakter gösterir)
Gerçel (float)
sayı, Standart
gösterim
Gerçel(float)sayı,
Bilimsel gösterim
%f
System.out.printf( "%f", +26.0 );
%e veya
System.out.printf( "%e", +26.0 );
%E
26,000000
2.600000e+01
DEĞERLENDİRME SORULARI
1. Program, programcı ve programlama dili kavramlarını kısaca açıklayınız?
2. Yazılım ve donanım kavramlarını kısaca açıklayıp sistem yazılımlarının fonksiyonunu
belirtiniz?
3. Derleyici ve yorumlayıcı kavramlarını kısaca açıklayıp, aralarındaki farkı belirtiniz?
4. Algoritma nedir? Algoritma kelimesi nereden gelmektedir?
5. Veri, bilgi kelimelerini açıklayıp, aralarındaki farkı belirtiniz?
6. Java dilinin diğer programlama dillerinden farklarını belirtiniz?
7. Bir java editörü ile yazdığımız kaynak dosyamızı (.java uzantılı) derlediğimizde (javac ile)
dosya uzantımız ne olur?
8. Java programlama dili hangi dilin gramer yapısını kullanır?
9. Yaygın olarak kullanılan Java editör programları hangileridir?
10. Bir sınıfın, kendisiyle aynı pakette olmayan başka bir sınıfı kullanabilmesi için, sınıf(class)
tanımından önce hangi deyim kullanılmalıdır?
11. Yüksek seviyeli diller ile alt seviyeli diller arasındaki farklar nelerdir?
12. Byte kodundan makine diline çevrimi sağlayan programa ne ad verilir?
13. Kalveyeden girilen iki sayının çarpımını hesaplayan basit bir matematiksel işlemin
algoritmasını yazınız.
19
Bülent Çobanoğlu“Java ile programlama ve Veri yapıları”, Pusula yayıncılık,ISBN:978-9944-711-10-4
14. Klavyeden girilen ifadeyi aynen ekranda gösteren programı yazınız?
15. Aşağıdaki programın ekran çıktısı ne olur?
import java.util.*;
class TarihSaat{
public static void main(String[] args) {
Date bugun = new Date();
System.out.println ("Sakarya Universitesi");
System.out.printf("Date nesnesinin ürettiği Tarih-Saat..|%s|\n", bugun);
System.out.printf("Formatlı Tarih-Saat..|%tc|\n", bugun);
System.out.printf("(YYYY-AA-GG) Formatında Tarih..|%tF|\n", bugun);
System.out.printf("(AA-GG-YY) Formatında Tarih..|%tD|\n", bugun);
System.out.printf("12 Saat Formatında..|%tr|\n", bugun);
System.out.printf("24 Saat Formatında..|%tR|\n", bugun);
System.out.printf("24 Saat Formatında Saniyeli..|%tT|\n", bugun);
} }
20
Download