Java ile Programlama



Benzer belgeler
Programlama Dillerinde Kullanılan Veri Tipleri

Bilgisayarda Programlama. Temel Kavramlar

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

BIL1202 ALGORİTMA VE PROGRAMLAMAYA GİRİŞ

Kodlanacak programlama dilinin kaynaklarından faydalanılarak kod yazımı yapılır.

Kodlanacak programlama dilinin kaynaklarından faydalanılarak kod yazımı yapılır.

Java 2 Standart Edition SDK Kurulum ve Java ya Giriş

Java Temel Özellikleri

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ü

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

1.1. Yazılım Geliştirme Süreci

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

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

BİLGİSAYAR PROGRAMLAMAYA GİRİŞ

İÇ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

4. Bölüm Programlamaya Giriş

VERİ YAPILARI VE PROGRAMLAMA (BTP104)

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

JAVA PROGRAMLAMA DİLİ ÖZELLİKLERİ

Çoktan Seçmeli Değerlendirme Soruları Akış Şemaları İle Algoritma Geliştirme Örnekleri Giriş 39 1.Gündelik Hayattan Algoritma Örnekleri 39 2.Say

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

ALGORİTMA VE PROGRAMLAMA I

Program Nedir?(1) Programlamaya Giriş

Bahar. BM 211 Programlama Dilleri 3 1

// hataları işaret eden referans

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

PROGRAMLAMA TEMELLERİ

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.

Bilgi ve İletişim Teknolojileri (JFM 102) Ders 10. LINUX OS (Programlama) BİLGİ & İLETİŞİM TEKNOLOJİLERİ GENEL BAKIŞ

BİL 542 Paralel Hesaplama. Dersi Projesi. MPJ Express Java Paralel Programlama

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

Java Programlamada Paket Yapısı Ve Import

C# nedir,.net Framework nedir?

Java Programlamaya Giriş

Algoritma ve Programlama: Karar Yapıları ve Döngüler

Dr. Fatih AY Tel: fatihay@fatihay.net

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

Yazılım Çeşitleri. Uygulama Yazılımları. İşletim Sistemleri. Donanım

Nesne Yönelimli Programlama

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

Algoritma ve Akış Diyagramları

GÖRSEL PROGRAMLAMA - I

Java da İstemci Tarafı Uygulamalar

5. PROGRAMLA DİLLERİ. 5.1 Giriş

PROGRAMLAMAYA GİRİŞ. Öğr. Gör. Ayhan KOÇ. Kaynak: Algoritma Geliştirme ve Programlamaya Giriş, Dr. Fahri VATANSEVER, Seçkin Yay.

Android e Giriş. Öğr.Gör. Utku SOBUTAY

EMT2226 Nesne Yönelimli Programlamaya Giriş

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

1.BÖLÜM PROGRAMLAMA ve TEMEL KAVRAMLAR

Güz Yarıyılı Balıkesir Üniversitesi Bilgisayar Mühendisliği Bölümü

Güz Yarıyılı Balıkesir Üniversitesi Bilgisayar Mühendisliği Bölümü

Programlama Temelleri. Ders notları. Öğr.Gör. Hüseyin Bilal MACİT 2017

ALGORİTMALAR. Turbo C Bilgisayarda Problem Çözme Adımları. Bilgisayarda Problem Çözme Adımları.

Bilgisayar Programlama. 1.Hafta

Java Programlama Giriş

HSancak Nesne Tabanlı Programlama I Ders Notları

Start : Bu method init methodundan hemen sonra çalışır ve applet dosyası yürütülmeye başladığında çalışmaya başlar.

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

BİLGİSAYAR PROGRAMLAMA (C#) DERS NOTU 1

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

Android Ders Notları

Yazılım Mühendisliğine Giriş 4. Hafta 2016 GÜZ

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

Genel Programlama I

JAVA PROGRAMLAMAYA GİRİŞ

Bilgisayar Programlama Dilleri

MAK 1005 Bilgisayar Programlamaya Giriş. BİLGİSAYARA GİRİŞ ve ALGORİTMA KAVRAMI

BİLGİSAYAR ORGANİZASYONU

Windows Programlama Güz Dönemi

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

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

3. Bölüm Algoritmalar

Bil101 Bilgisayar Yazılımı I. M. Erdem ÇORAPÇIOĞLU Bilgisayar Yüksek Mühendisi

BİL-141 Bilgisayar Programlama I (Java)

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

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

Algoritmalar ve Programlama. Algoritma

BÖLÜM 1: PROGRAMLAMAYA GİRİŞ

Temel bilgisayar ve Java bilgileri

Öğr. Gör. Serkan AKSU 1

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

10 LU SAYISAL SİSTEMİ İLE 2 Lİ SAYISAL SİSTEMİ ARASINDA ÇEVİRİM UYGULAMASI

Bölüm1. İlk Bilgiler ISBN

C Programlama Dilininin Basit Yapıları

Eclipse, Nesneler ve Java 2 Java Nereden Çıktı? 2

Günümüz bilgi toplumunda bilgisayar, her alanda kendine yer edinmiş ve insana, bir çok işlemde yardımcı olarak büyük kolaylık sağlamaktadır.

NESNEYE YÖNELİK PROGRAMLAMA

5.HAFTA. Sınıf ve Nesne Kavramı, Metot Oluşturma, Kurucu Metot, this Deyimi

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

BEUN VPN Hizmeti. VPN Nedir?

1.PROGRAMLAMAYA GİRİŞ

BİLGİSAYAR PROGRAMLAMA I (Java)

Temel Bilgisayar Programlama

Programlama Dilleri II. Bilgisayar ve Öğretim Teknolojileri Öğretmenliği

R ile Programlamaya Giriş ve Uygulamalar

İnternet Programcılığı

Algoritma ve Akış Diyagramları

Lambda İfadeleri (Lambda Expressions)

BLG 1306 Temel Bilgisayar Programlama

Transkript:

TEMEL KAVRAMLAR Java ile Programlama 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 kurup, çalıştırabilmek için donanım üzerinde yüklü bir işletim sisteminin (sistem yazılımının) olması gerektiği açıktır. programcı, komutların bütününe ise programlama dili denir. Program, bilgisayara ne yapması gerektiğini söyleyen bir grup komuta (kod topluluğuna) verilen isimdir. Bu komutları veren kişiye İ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

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

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 Machine- JVM) 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 dili içerisinde bulunan kütüphane fonksiyonlarına ve 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

(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

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; 4. Pascal, Delphi, Cobol, FoxPro, Java gibi..) 1. Alt seviyeli diller ( Assembly dili) 2. Orta seviyeli diller ( C, Ada dili) 3. Yüksek seviyeli diller( Visual Basic, 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

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

Basit (Simple) Güvenli (Secure) Taşınabilirlik (Portable) Nesne Yönelimli (Object Orient) Sağlam (Robust) Çoklu kullanım (Multithreaded) Mimariden bağımsız (Architecture-neutral) Yorumlayıcı- Interpreted Yüksek performans (High performance) Dağıtık (Distributed ) Dinamik (Dynamic ) Ücretsiz 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. 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. 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 bir programlama dilidir. Java da her şey ya nesnedir ya da bir nesnenin parçasıdır. 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. Java dili çoklu kullanım (multithreaded) programlama desteği sağlar. Çoklu kullanım, program içinde birden fazla işlemin çalışabilmesi demektir. Bir belirli makine ya da işletim sistemi mimarisine Java programlama dili bağlı değildir. Java dili hem derleyici hem yorumlayıcı kullanır. Java diğer dillere nazaran nispeten yavaş olmakla birlikte, Java bytecode u çalışma hızı için en iyi şekilde optimize edilmektedir. '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 başka makinede aynı anda çalışması mümkündür. (Özellikle internet uygulamalarında Java tercih edilmektedir. 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 Java programını ve her türlü yazılımını internet adresinden (www.java.sun.com) ücretsiz edinebilirsiniz. 7

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

o Yeni masaüstü özellikleri ve pek çok yeni API değişikliği Bir Java 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

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

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

3.adım: MS-DOS komut istemine geçiyoruz (Windows XP için, Başlat Çalıştır CMD 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

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

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

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

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

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 İşlevi Klavyeden girilen tamsayı (integer) türündeki sayıyı okur. Klavyeden girilen tamsayı (byte) türündeki sayıyı okur. Klavyeden girilen Boolean türündeki önermeyi okur. Klavyeden girilen ifadeyi kesirli(gerçek) sayı (float) türüne çevirir Klavyeden girilen ifadeyi uzun kesirli(gerçek) sayı (double) türüne çevirir Klavyeden girilen String ifadenin ilk kelimesini okur {boşluk (space) karakterine kadar olan kısmı tarar} Klavyeden girilen tüm satırı okur. String türünde bir satır okur. Tek bir karakteri okur (girilen ifadeyi karakter karakter okur) Yöntem nextint() nextbyte() nextboolean() nextfloat() nextdouble() next() nextline() findinline(. ).charat(0) System.out.print( )/ println( ) deyimi: 17

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 Örnek kod Ekran Çıktısı Ondalıklı System.out.printf( "%d\n", +26 ); (Decimal) tamsayı %d System.out.printf( "%d\n", -26 ); 26-26 Sekizli (Octal) tamsayı %o System.out.printf( "%o", +26 ); 32 Onaltılı (Hexadecimal) %x veya %X System.out.printf( "%x\n", 26 ); System.out.printf( "%X", 26 ); 1a 1A 18

tamsayı Tek Karakter %c System.out.printf( "%c",'a' ); A System.out.printf( "%s\n","ali" ); String ifade %s veya %S System.out.printf( "%S\n","Veli" ); System.out.printf("%3.2s\n","bade" ); Ali VELİ ØØba (3 karakter boşluk bıraktıktan sonra 2 karakter gösterir) Gerçel (float) sayı, Standart gösterim %f System.out.printf( "%f", +26.0 ); 26,000000 Gerçel(float)sayı, Bilimsel gösterim %e veya %E System.out.printf( "%e", +26.0 ); 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

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