BİLGİSAYAR PROGRAMLAMA I (Java) (BİL-141) © 2015 - TOBB ETÜ Ders Hakkında Genel Bilgi • DERSİN AMACI Java dilini kullanarak, programlama temel mantığını kavramak ve programlamada kullanılan çeşitli yöntemleri ve algoritmaları anlayabilmek • DERS KİTABI Java Bilgisayar Programlamaya Giriş, A. Yazıcı, E. Doğdu, M. Özbayoğlu, M. Erten, O. Ergin Yardımcı Kaynak • DERS ASİSTANI Salih Arda BÖLÜK ([email protected]) Teknoloji Merkezi No:204 (Lab Saatleri Duyurulacak) • DERS ZAMANI (6 hafta 2+2 saat, 6 hafta 2+1 saat) Pazartesi Günleri: 12:30-14:20 (2 Saat) Amfi 2 Cuma Günleri: 08:30-10:20 (2 Saat) Amfi 3 Özel Durumlarda (Salı 12:30-14:20) Amfi 3 • DERS WEB SAYFASI https://piazza.com da haftaya açılacak. Bilgisayar IProgramlama I (Java) Java: An Introduction to Problem Solving & Programming, W. Savitch, 6th Ed. 2 1. Programlamaya Giriş 2. Veri Türleri 3. Program Akış Denetimi 4. Sınıflar ve Metotlar 5. Nesneler ve Metotlar 6. Diziler 7. Kalıtım 8. Kural Dışı Durum Çözme (İstisnalar) 9. Metin Dosyaları ile Giriş Çıkış İşlemleri 10. Özyineleme Bilgisayar Programlama I Ders İçeriği 3 • Ara Sınav : %20 • Lab Sınav : %25 • Ödevler : %15 • Final Sınavı : %40 Bilgisayar Programlama I NOTLANDIRMA 4 DERS 1 Bilgisayar ve Programlamaya Giriş Bilgisayar Programlama I (Java) (BİL-141) © 2015 - TOBB ETU • Donanım ve yazılım hakkında genel bilgi sahibi olmak • Programlama dilleri ve derleyiciler hakkında bilgi sahibi olmak • Java programlama dili hakkında genel bilgi sahibi olmak • Algoritma ve Akış Şeması tasarımını öğrenmek Bilgisayar Programlama I Hedeflenen Çıktılar 6 • Donanım: Bilgisayarın fiziksel tüm ekipmanları kısacası bilgisayarın fiziksel kısmına donanım denir. • Yazılım: Bilgisayar için hazırlanmış komutlar kümesine program. Bilgisayarın çalışması için gerekli programlara ve bilgisayarlarda çalışan uygulama programlarının tümüne ise yazılım denir. Bilgisayar Programlama I Bilgisayar Temelleri 7 Bilgisayar Donanımı (Computer Hardware) MİB (Merkezi İşlem Birimi) (MİKROİŞLEMCİ) Çıkış Birimi DEB AMB Ana Bellek Yardımcı Bellek Bilgisayar Programlama I Giriş Birimi 8 Donanımın (Hardware) Temel Elemanları • Merkezi İşlemci Birimi – MİB (CPU-Central Processing Unit): Bilgisayar içerisindeki yazılım komutlarını işleyen aygıttır. Ör: Intel Core i7 vb. • Ana Bellek (Main Memory): O an çalıştırılacak programları ve verileri tutan bellek çeşididir (RAM). Yazılımlar tasarlanırken ana belleğin özellikleri dikkate alınır. • Yardımcı Bellek (Auxiliary – Secondary Memory): Disk sürücüleri, disketler, CD/DVD vb. uzun süreli veri depolayan aygıtların tümü yardımcı bellektir. Bilgisayar Programlama I Denetleme Birimi (DEB): Komutların işlenmesini denetler. Aritmetik Mantık Birimi (AMB): Aritmetik ve Mantıksal işlemleri yerine getirir. 9 • Bit sadece 0 ve 1 değerini alabilen en küçük birimdir. • 1 Bayt = 8 Bit • 1 KB = 1024 Bayt • 1 MB = 1024 KB • 1 GB = 1024 MB Birim Eşitlik 1 Bit Binary Digit (0 veya 1) 8 Bits 1 Byte 1024 Bytes 1 Kilobyte 1024 Kilobytes 1 Megabyte 1024 Megabytes 1 Gigabyte 1024 Gigabytes 1 Terabyte 1024 Terabytes 1 Petabyte 1024 Petabytes 1 Exabyte 1024 Exabytes 1 Zettabyte 1024 Zettabytes 1 Yottabyte 1024 Yottabytes 1 Brontobyte Bilgisayar Programlama I Bit – Bayt Kavramları 10 • Her biri 1 bayt veri tutabilen sıralı adresleri bulunan alanlardan oluşmuştur. • Bilgisayar herhangi bir veriye o verinin adresini kullanarak ulaşır. • Eğer bir veri 1 bayttan daha fazla yer kaplıyorsa ardışık adreslerde saklanır. • Bu şekilde değişik veri şekilleri (karakterler, numaralar, vb.) birden fazla bayt alanında saklanabilir. Bilgisayar Programlama I Ana Bellek 11 • Sistem Yazılımları: İşletim sistemi gibi bilgisayarların donanımına ait yazılımlar • Uygulama Yazılımlar: Kullanıcılara yönelik yazılımlar Bilgisayar Programlama I Yazılım (Software) 12 • Bilgisayar donanımının doğrudan denetimi ve yönetiminden, temel sistem işlemlerinden ve uygulama programlarını çalıştırmaktan sorumlu olan sistem yazılımıdır. • Bilgisayarın bütün işlevlerinin çalışmasını sağlayan üst düzey bir yazılımdır. • Herhangi bir uygulamayı çalıştırmak istediğimizde öncelikle işletim sistemi ile bağlantı kurar ve hangi programı çalıştıracağını ona tıklama, bir menü öğesi seçme veya klavyeden bir komut girme gibi farklı yöntemlerle bildiririz. İşletim sistemi bizim adımıza o uygulamanın çalışması ile ilgili bütün hazırlıkları yaparak, uygulamayı çalıştırır. • En bilindik işletim sistemleri, Microsoft Windows, Apple MAC OS, Linux ve Unix gibi işletim sistemleridir. Bilgisayar Programlama I İşletim Sistemi 13 • Üst-Düzey Diller: Kullanıcıların kolaylıkla anlayıp kullanacağı dillerdir. Ör: Java, Pascal, Fortan, C, C++, Basic, Visual Basic, vb. • Alt-Düzey Diller: Bilgisayarın doğrudan anladığı ve kullandığı dildir. Bu dillere genelde makine dilleri ya da çevirici (assembler) denir. • Bilgisayar üst-düzey dilleri doğrudan anlayamaz. Üst-düzey bir dil ile yazılmış bir programın bilgisayarın anlayacağı alt-düzey bir dile çevrilmesi gerekmektedir. Bu çevrim işlemini derleyici (compiler) adı verilen bir program gerçekleştirir. • Üst düzey dilde yazılmış programa kaynak kodu (source code), bunun alt düzeye çevrilmiş haline ise nesne kodu (object code) denir. • Üst-düzey bir dilden makine diline çevrim için bilgisayarın donanımına özel bir derleyici kullanmak gerekir. Her mikroişlemci ve işletim sistemi için ayrı bir derleyici gerekir. Bilgisayar Programlama I Programlama Dilleri ve Derleyiciler 14 • Java’da makine diline doğrudan çevrilmez. Java derleyicisi Java Bayt Kodu adı verilen bir program oluşturur. • Java Virtual Machine (JVM) adı verilen bir hayali bilgisayarın makine kodu oluşturulur. • JVM tüm bilgisayarları temsil eder. JVM’de oluşturulan bayt kod herhangi bir bilgisayarın makine diline çok rahat çevrilebilmektedir. • Bu nedenle Java’nın en büyük avantajlarından birisi her ortama taşınabilirliğidir (portability). JVM ile yorumlanan bir kod herhangi bir derlemeye gerek duymadan bütün bilgisayarlarda çalışabilecek durumdadır. Bu da Java’nın internet uygulamaları için iyi bir seçim olmasını sağlamaktadır. • Taşınabilirliğin başka bir avantajı da, herhangi bir üretici firmanın yeni çıkan bir bilgisayarı için JVM’de herhangi bir değişiklik yapmaya gerek yoktur. • Java Bayt Kodundan makine diline çevrim yapan programa Yorumlayıcı (Interpreter) denir. Bilgisayar Programlama I Java Bayt Kodu (bytecode) 15 Bağlama (Linking) • Java uygulamasının yaratılması esnasında iki komut kullanılır. • Java programları genellikle tek parça bulunmaz. Farklı farklı parçacıklar halinde yazılmış kodlar bayt koda çevrildikten sonra, bağlayıcı (linker) adı verilen bir program yardımıyla bir bütün haline getirilir. Bu işleme bağlama (linking) denir. Bilgisayar Programlama I JAVAC : Yazılan Java kaynak kodunu Java bayt koduna çevirir. JAVA: Oluşan bayt kodu çalıştırır. 16 • İlk çalışmalar 1991 yılında James Gosling ve Sun Microsystems’deki ekibi tarafından başlatıldı. • İlk çalışmaların amacı tost makinesi, TV, video oyantıcısı, müzik seti gibi ev aygıtlarını kontrol edecek bir programlama dili oluşturmaktı. • Yalnız bu programlama dilinin değişik işlemcilerde çalışabilmesi gerekiyordu. • Fakat ev aygıları ucuz cihazlar olduğu için, üreticiler aygıt uygulama yazılımlarını, işlemcinin anlayacağı dile çevirme noktasında zaman ve finansal kaynak ayırmak istemiyorlardı. • Bu nedenle James ve ekibi bir uygulama yazılımlarını bütün cihazların anlayabileceği bir ara dile çevirecek bir kod parçası ürettiler. • Böylelikle çok zaman ve finansal kaynak gerektirmeden oluşturulacak küçük kod parçacıkları bu ara dilden makine diline çeviri yapabileceklerdi. • Bu ara dil bayt kod olarak adlandırıldı. • 1994’de Gosling ve ekibi oluşturdukları bu programlama dilinin (İlk ismi Oak, sonra Java) )internetteki web browserlar için çok uygun olduğunu düşündüler. • Önce WebRunner, daha sonra Hot Java ismini alan browserlar yapıldı. • 1995’te ise Netscape firması ile yapılan anlaşmada, üretilen web browserlar java çalıştıracak hale getirildi. Bu şekilde başlayarak gelişen java dili günümüze bu şekilde geldi. Bilgisayar Programlama I Java’nın Tarihçesi 17 • Problemi anlama (Analiz) • İhtiyaçları belirleme (Analiz) • İhtiyaçlara göre problemi çözecek çözümü geliştirme (Tasarım) • Çözümü program olarak kodlama (Kodlama) • Programı test etme (Test) • Programı uygulamaya alma (Uygulamaya Alma) Bilgisayar Programlama I Program Geliştirme 18 • Adım 1: Problemin anlaşılması, programın girişlerinin ve çıkışlarının belirlenmesi. • Adım 2: Problemin çözümü için gerekli bileşenlerin belirlenmesi. • Adım 3: Programın anahtar özelliklerinin belirlenmesi, akış diyagramının ve algoritmanın oluşturulması • Adım 4: Programın test edilmesinde her bir parçanın belirlenmesi ve test edilmesi. • Adım 5: Sonraki versiyonlardaki gereksinimlerin belirlenmesi ve önceki adımların tüm versiyonlar için tekrarlanması. Bilgisayar Programlama I Başarılı Bir Programlama İçin 19 • Sözdizim yanlışları (Syntax Error): Programın yazımı esnasında yapılan gramer yanlışlardır. Bunları düzeltmeden program çalışmaz. Derleyici bu yanlışları programcıya belirtir. • Çalıştırma zamanı yanlışları (Run-Time Error): Sözdizim yanlışları düzeltildikten sonra program çalıştırılır. Programın çalışması esnasında görülebilen, bir sayıyı sıfıra bölme gibi yanlışlara «çalıştırma zamanı yanlışları» adı verilir. JVM yanlışın nerede olduğu konusunda kullanıcıya bilgi verir. • Mantık yanlışları (Logical Error): Program çalıştırılır. Bilgisayar hiçbir yanlış mesajı vermez, fakat program istenilen sonucu vermemektedir. Bu durumda programda bir mantık hatası oluşmuş demektir. Bilgisayar Programlama I Programlama Yanlışları 20 Algoritma • Algoritma: Bir problemin çözümü için tasarlanan işlemler ve komutlar bütünüdür. • Günlük hayatta gerçekleştirdiğimiz bir çok faaliyette algoritma kullanırız. Yol tarifi, araba sürme, yemek pişirme vb. • İyi bir algoritmanın özellikleri şunlardır: Başlangıcı olmalı Basit olmalı Problemin çözümünü, mümkün olan en az adım ile en kısa sürede gerçekleştirmeli Sonu olmalı Problem (İLK DURUM) ALGORİTMA Çözüm (SON DURUM) Bilgisayar Programlama I 21 Akış Şeması (Flow Chart) Bir algoritmanın adımlarının mantıksal sırasını, adımların birbiri ile bağlantısını, bir işlemden diğerine nasıl gidileceğini belirten kontrol mekanizmalarını, özel şekil ve sembollerle anlatan bir ifade biçimidir. Bilgisayar Programlama I • 22 • Sıralı Akış • Şartlı Akış • Tekrarlı Akış Bilgisayar Programlama I Akış Şemaları 23 • Yapılacak işlerin (komutların) ard arda mantıksal bir sıra ile dizilmesidir. • Karşılaştırma yapmak veya önceki işlemlere geri dönmek bu akışta mümkün değildir. S1 S2 Bilgisayar Programlama I Sıralı Akış 24 Örnek Başla • Oku X, Y Klavyeden girilen iki sayıyı (X ve Y) çarparak sonucu (X) ekrana yazan bir algoritma ve akış şemasını ALGORİTMA Z=X*Y 1- Başla 2- X ve Y sayılarını oku Yaz Z 4- Z’yi ekrana Yaz 5- Dur Dur Bilgisayar Programlama I 3- X ve Y sayılarını çarparak sonucunu Z’ye ata 25 Evet K P • Programda karşı karşıya gelinen seçeneklerden birini seçme durumunun yer aldığı akış türüdür. • Şekilde K olarak gösterilen karar noktasında karar sorusunun cevabı evet ise P işlemi yönünde bir akış izleneceği, cevap hayırsa Q işlemi yönünde bir akış izleneceği belirtilmiştir. Hayır Q Bilgisayar Programlama I Şartlı Akış 26 Şartlı Akış - Örnek Başla • Klavyeden girilen bir sayının değeri 5’den küçük ise ekrana 5’den küçük, 5’den büyük ise 5’den büyük yazdıran algoritma Oku X ALGORİTMA Evet X>5 Hayır 1- Başla 2- X sayısını oku Yaz «X 5’den büyük» Yaz «X 5’den küçük» 4- Yaz X > 5 Git 6 5- Yaz X < 5 6- Dur Dur Bilgisayar Programlama I 3- Eğer X > 5 ise Git 4 Değilse Git 5 27 Tekrarlı Akış (Döngüler) • Aynı işlemlerin birden çok defa tekrar ettiği akış şemalarıdır. P Evet K Hayır Önce-SınaDoğruysa-Yinele Döngüsü K Hayır Evet Yinele-SonraYanlışı-Sına Bilgisayar Programlama I P 28 Tekrarlı Akış – Örnek Başla (Önce Sına Doğruysa Yinele) Sayacı 1’e eşitle Sayaç = 1 • 1’den 50’ye kadar olan sayıları yazdıran akış şeması ve algoritması ALGORİTMA 1- Başla Evet 3- Eger Sayac <= 50 ise Git 4 Değilse Git 7 Hayır Yaz Sayaç Sayacı bir arttır Sayac = Sayac +1 Dur 2- Sayaç = 1 4- Yaz Sayac 5- Sayac = sayaç + 1 6- Git 3 7- Dur Bilgisayar Programlama I Sayac <= 50 29 Tekrarlı Akış – Örnek Başla (Yinele Sonra Yanlışı Sına) Sayacı 1’e eşitle Sayaç = 1 • 1’den 50’ye kadar olan sayıları yazdıran akış şeması ve algoritması Yaz Sayaç ALGORİTMA 1- Başla 3- Yaz Sayac 4- Sayac = sayaç + 1 Sayac <= 51 Hayır Dur Evet 5- Eğer Sayaç <= 51 ise Git 3 Değilse Git 6 6- Dur Bilgisayar Programlama I 2- Sayaç = 1 Sayacı bir arttır Sayac = Sayac +1 30 Döngüye Özel Akış Şeması P I Bilgisayar Programlama I I: Başlangıç Değeri, Şart, Sayaç durumu 31 Döngüye Özel Akış Şeması – Örnek Başla • 1’den 50’ye kadar olan sayıları yazdıran akış şeması ve algoritması I=1, I<=50 ,I=I +1 ALGORİTMA 1- Başla 2- Döngü I=1, I<=50, I=I+1 3- Yaz Sayac I Dur 4-Döngü Sonu 5- Dur Bilgisayar Programlama I Yaz I 32 ALGORİTMA ve AKIŞ ŞEMALARI Bilgisayar Programlama I ÖRNEKLER 33 Örnek 1 Bilgisayar Programlama I Bir dikdörtgenin alanını ve çevresini bulan bir algoritma ve akış şeması oluşturunuz 34 Çözüm 1 Başla Oku En, Boy ALGORİTMA 1- Başla 2- Oku En, Boy Alan = En * Boy 3- Alan = En * Boy 4- Çevre = 2 * (En + Boy) 5- Yaz Alan, Çevre 6- Dur Yaz Alan, Çevre Dur Bilgisayar Programlama I Çevre = 2*(En + Boy) 35 Bir sınıfta yer alan 30 öğrencinin aldığı notların ortalamasını bulan algoritma ve akış şemasını hazırlayınız. Bilgisayar Programlama I Örnek 2 36 Başla Çözüm 2 Sayaç = 1 ALGORİTMA Toplam = 0 1- Başla 2- Sayaç ← 1 Hayır Ort= Toplam/ 30 4- Eger Sayac <= 30 ise Git 5 Değilse Git 9 Sıradaki Öğrencinin Notu (Not) Toplam = Toplam + Not Yaz Ort 6- Toplam ← Toplam + Not 7- Sayac ← Sayac + 1 8- Git 4 9- Ort ← Toplam / 30 Sayac = Sayac +1 Dur 5- Oku(Not) 10- Yaz(Ort) 11- Dur Bilgisayar Programlama I Sayac <= 30 3- Toplam ← 0 Evet 37 Örnek 3 Bilgisayar Programlama I Klavyeden girilen n sayının faktöriyelini alan algoritma ve akış şemasını hazırlayınız. 38 Çözüm 3 ALGORİTMA 1- Başla 2- Oku(N) 3- Faktör ← 1 4- S ← 1 6- Eğer S <= N ise S ← S + 1 Git 5 7- Yaz(Faktör) 8- Dur Bilgisayar Programlama I 5- Faktör ← Faktör * S 39 • Nesne Tabanlı Programlama, gerçek dünyadaki somut nesnelerden yola çıkarak, bir yazılım programında bunları temsil eden soyut nesnelerin oluşturulması ve bu nesnelerin birbirleri ile etkileşimini içeren bir programalama şeklidir. • Klasik yapısal programlamada verilerimiz ve fonksiyonlarımız vardı. Yani her şey veri ve bu veriyi işleyen metotlar etrafında dönüyordu. • Fakat gerçek hayata baktığımızda ise herşeyin nesnelerden oluştuğu, bu nesnelerin bir takım özellikleri (veri) ve davranışları (metot) olduğu görülmüştür. • Dolayısıyla Nesne Tabanlı Programlama gerçek hayatı örnek alarak temele nesneleri yerleştirmiş ve yazılım dünyasında bir devrim yaratmıştır. Bilgisayar Programlama I Nesne Tabanlı Programlama (OOP-Object Oriented Programming) 40 • Problemlerin çözümüne nesnesel bakmayı yani insan anlayışı bakışı getirmiştir. Bu sayede yazılıma aktarılacak konuların daha basit ve anlaşılır modellenmesi sağlanabilmiştir. • Hatalar daha kolay tespit edilebilmiş ve daha hızlı onarım yapılabilmiştir. • Bu sayede yazılım geliştirme ve bakım maliyetlerinde önemli düşüşler tespit edilmiştir. • Gerçek dünyada varolan sistemler çok hızlı bir şekilde yazılım dünyasına entegre edilebilmiştir. • Modülerlik, Esneklik, tekrar kullanılabilirlik, güvenilirlik artmıştır. Bilgisayar Programlama I Nesne Tabanlı Programlamanın Avantajları 41 • Herşey bir nesnedir (object). • Her nesne bir sınıfın (class) örneğidir. • Sınıf, aynı yapıdaki nesnelerin sahip olduğu ortak durum (state) ve davranışların (behaviour) yer aldığı bir modeldir. • Programlama dillerinde durum, özellik (property) veya alan (field) dediğimiz yapılarla, davranış ise metot (method) veya fonksiyon (function) dediğimiz yapılarla ifade edilir. Bilgisayar Programlama I Sınıf ve Nesne Kavramı (Class and Object) 42 • Soyutlama (Abstraction): Önemli özelliklere odaklanabilmek için ayrıntıları göz ardı etme sürecidir. • Prosedürel Soyutlama: Programlarda kişiselleştirilmiş kod kullanmak yerine, belirli görevleri gerçekleştirmek için standart fonksiyonların oluşturulması bir prosedürel soyutlamadır. • Veri Soyutlaması: Bir veri tipinin nasıl yapılandığının ayrıntılarını göz ardı etmemize izin veren soyutlama tarzına denir. Bilgisayar Programlama I Soyutlama (Abstraction) 43 • Kuşatma (Encapsulation): Soyutlamayı desteklemek için nesneye ait özelliklerin, metotların ve nesne içi etkileşimin gerekmediği sürece nesnenin dışına çıkmamasıdır. Bu şekilde nesnenin iç yapısı dış dünyadan korunmuş (kuşatılmış) olur. Ör: Otomobilin iç işleyişinden haberdar olmadan sürebilmek. • Çokbiçimlilik (Polymorphism): Bir işlevin, işlemin, metodun değişik nesneler tarafından aynı ya da değişik biçimlerde kullanılabilir olmasıdır. Ör: «Fren Yap» metodunun kullanımı ve iç dinamikleri, otomobil, bisiklet veya tren gibi nesneler için tek bir isim altında fakat farklı yapısal biçimde kullanılması. • Kalıtsallık (Inheritance): Bir sınıfa ait özellikler ve işlemlerin yeni bir sınıfa (çocuk sınıf) birebir aktarılmasıdır. Yeni sınıf eski sınıfın özellikleri ve işlemlerine sahip olmasına ek olarak kendisi de özellikler ve işlemler tanımlayabilir. Ör: Taşıt sınıfının Araba, Motorsiklet, Otobüs gibi alt sınıfları, Araba’nın da Aile Arabası, Spor Arabası gibi alt sınıfları Bilgisayar Programlama I Nesne Tabanlı Programlama’da 3 Önemli Özellik 44 Java’ya Giriş • Bir programın temel yapısı • Bir java programının çalışabilmesi için main() metodu isminde özel bir metot bulunmalıdır. • JVM’nin programı çalıştırabilmesi için main() metodu aşağıdaki şekilde yazılmak zorundadır. public static void main(String[] args) { } • Main metodu sınıf tanımının içerisinde bulunur. Bilgisayar Programlama I Sınıf tanımı Özellik tanımı Metot Tanımı 45 Java’ya Giriş System.out.println("Java Programlama") Sınıflar • Çıktı Metot Metodun alacağı girdi Bilgisayar Programlama I • Kod 46 • java program_adi.java • javac class_adi Bilgisayar Programlama I Java Programını Derlemek ve Çalıştırmak 47 Açıklamalar • Açıklama satırları program hakkında bilgiler vermek için kullanılır. • Compiler açıklama satırlarını gözardı eder. • Java içindeki açıklama yazmanın iki yolu vardır. Çok Satırlık Açıklamalar /* Açılama yazmanın diğer bir yoludur. Compiler slaş yıldız ile yıldız slaş arasındaki herşeyi gözardı eder. */ Bilgisayar Programlama I Tek Satırlık Açıklamalar // Açıklamalar bu satıra yazılabilir. // Compiler iki slaş işaretinden satır sonuna // kadar herşeyi gözardı eder . 48 Önişlemci direktifleri • Önişlemci direktifleri compiler’a komutlar gönderir. • java.util bir kütüphanedir. Klavyeden okuma ve ekrana yazman için gerekli deyimleri bulundurur. • import deyimi ile compiler’a java.util araçlarının kullanılacağı bildirilmiştir. • Java çok sayıda kütüphaneye ve araca sahiptir. • Java fonksiyonları kullanılacağı zaman uygun kütüphanenin programa import edilmesi gerekir. Bilgisayar Programlama I import java.util.*; ön işlemci direktifidir. 49 Fonksiyonlar (Metotlar) • Fonksiyon başlık satırı her fonksiyonda olur. Fonksiyonun adını ve giriş/ çıkış parametrelerini tanımlar. • Genel yazımı return_type function_name(input parameters) { şeklindedir. • return_type, fonksiyonu çağıran yere döndürülecek değer tünü belirler. • Fonksiyon blokları { ve } parantezleri ile oluşturulur. Bilgisayar Programlama I } 50 Java Deyimleri • Java deyimleri çalıştırılacak komutları ifade eder. • Java’daki çoğu deyim noktalı virgülle sonlandırılır. • Merhaba dünya! programı bir deyime sahiptir. • out çıkışı yönlendirir. • println ile string konsol ekranına gönderilir ve yeni satıra geçilir. Bilgisayar Programlama I System.out.println("Merhaba dünya!"); 51 • Boşluk karakterleri (Whitespaces) programın okunabilirliğini arttırır. • Enter, tab ve space ile oluşturulur. • Compiler gözardı eder. • Merhaba dünya! programı aşağıdaki gibi yazılırsa yine çalışır: public class MerhabaDunya { public static void main (String [] args) { System.out.println(“Merhaba dünya!”); }} Bilgisayar Programlama I Boşluk karakterleri ve Java ile esnek yazım 52 • Syntax programın yazım kurallarını ifade eder. • Önişlemci yazım hatası bulursa anlamlı bir mesajla programcıya bilgi verir. • Programdaki az sayıda hata, çok sayıdaki hata, çok sayıda compiler hatası üretebilir. Bilgisayar Programlama I Syntax 53 • Java ile yazılan programın kolay okunabilir olması gerekir. • Tanımlayıcı açıklamaların yapılması gerekir. • Anlamlı ve uygun uzunlukta değişken isimlendirme yapılması gerekir. • Programdaki blokların hizalandırılması gerekir. • Balangıçta okunabilirlik için harcanan zaman, compiler hatalarının düzeltilmesi ve programın update edilmesi sırasında çok zaman kazandırır. Bilgisayar Programlama I Java'da İyi Program Yazım Şekli 54 TEŞEKKÜRLER Dr. Yusuf UZUNAY yuzunay(at)gmail(dot)com © 2015 - TOBB ETÜ