SUNU 3

advertisement
1
2
Java
Uygulamalarına
Giriş
 2005 Pearson Education, Inc. All rights reserved.
2
2.1
Giriş
2.2
Java’da ilk programımız: Bir satır metin yazdırmak
2.3
İlk Java programımızı değiştirelim
2.4
printf komutuyla metin görüntülemek
2.5
Başka bir Java uygulaması: Dogal sayıları toplamak
2.6
Hazıfa Kavramı
2.7
Aritmetik hesaplamalar
2.8
Karar vermek: Eşitlik and Karşılaştırma Operatörleri
 2005 Pearson Education, Inc. All rights reserved.
3
2.1 Giriş
• Java uygulamalarını programlamak
– Mesajları görüntüle
– Kullanıcıdan bilgi al
– Aritmetik hesaplamalar
– Karar vermenin temelleri
 2005 Pearson Education, Inc. All rights reserved.
2.2 Java’da ilk programımız: Bir satır
metin yazdırmak
4
Uygulama
• Örnek program
– Bir satırlık bir yazıyı görüntülüyor
– Java dilinin önemli birkaç özelliğini gösteriyor
 2005 Pearson Education, Inc. All rights reserved.
1
// Fig. 2.1: Hosgeldin.java
2
// Metin yazdırma programı
5
Outline
3
4
public class Hosgeldin
5
{
6
7
public static void main( String args[] )
{
System.out.println( "Java Programlamaya Hosgeldiniz !" );
8
9
Hosgeldin.java
}
10 }
Java Programlamaya hosgeldiniz!
 2005 Pearson Education,
Inc. All rights reserved.
2.2 Java’da ilk programımız: Bir satır
metin yazdırmak (devam)
1
6
// Fig. 2.1: Hosgeldin.java
– Bilgilendirmeler şu işaret ile başlar: //
• Program çalışırken bilgilendirmeler dikkate alınmaz
• Sadece dökümantasyon ve tarif olarak kullanılırlar
• Programın daha kolay okunmasını sağlar
– Geleneksel bilgilendirme işareti: /* ... */
/* Geleneksel açıklama işareti
Birden fazla satıra yazılabilir */
2
// Metin yazdırma programı.
– Bir bilgilendirme satırı daha
 2005 Pearson Education, Inc. All rights reserved.
7
Çok görülen programlama hataları 2.1
Bilgilendirme satırındaki işaretlerden birini unutmak bir
syntax error oluşturur.
Syntax bir programlama dilinin kurallarını ifade eder.
syntax error hatası derleyicinin Java programlama dilinin
kurallara uymayan yazılım parçaları bulması nedeni ile
olur.
Bu durumda derleyici bir .class dosyası
oluşturmaz.Onun yerine programcıya yardımı olacak bir
hata mesajı oluşturulur .
Syntax errors hatalarına compiler errors, compile-time
errors veya compilation errors de denir, bunun nedeni
hatanın derleme anında oluşmasıdır.
Tüm syntax errors hataları giderilmeden program
çalıştırılamaz.
 2005 Pearson Education, Inc. All rights reserved.
8
İyi programlama uygulaması 2.1
Her programın kendisinin ne yaptığını belirten
bir açıklama kısmı olmalıdır, buna programı
yazan kişinin adı ve zaman gibi bilgiler de
eklenebilir.
 2005 Pearson Education, Inc. All rights reserved.
2.2 Java’da ilk programımız: Bir satır
metin yazdırmak (devam)
9
3
– Boş satır
• Programları daha okunabilir yapar
• Boş satırlar, space ve tabs tuşu ile oluşturulan alanlar
– Derleyici tarafından ihmal edilirler
4
public class Hosgeldin
– Sınıf tanımlaması Hosgeldin ile başlar
• Her Java programında kullanıcının tanımladığı bir sınıf (class)
vardır
• Anahtar kelimeler: Java için ayrılmış kelimeler
– class anahtar kelimesinden sonra sınıf ismi gelir
• Sınıflara isim verme kuralı: her kelimeye büyük harf ile başlanır
– NotDefteri
 2005 Pearson Education, Inc. All rights reserved.
2.2 Java’da ilk programımız: Bir satır Text
yazdırmak (devam)
4
10
public class Hosgeldin
– Java belirteci
• Harf , rakam , alt cizgi ( _ ) , dolar işareti ($ ) inden oluşan
karakter serisi
• Rakamla başlanmaz ve boşluk kullanılmaz
• Examples: Hosgeldin, $deger, _deger, deger7
– 7deger geçerli değil
• Java büyük küçük harf ayrımı yapar
– a1 ve A1 farklıdır
 2005 Pearson Education, Inc. All rights reserved.
11
İyi programlama örneği 2.3
Java sınıf isimlerini büyük harf ile başlayınız ve
içinde gecen başka kelimelerin de ilk harfini büyük
yazınız. Java programcıları bu kelimelerin sınıf
ismi olduğunu bu notasyondan anlarlar.Böylece
programın okunabilirliği artar. Ör: NotDefteri
 2005 Pearson Education, Inc. All rights reserved.
2.2 Java’da ilk programımız: Bir satır Text
yazdırmak (devam)
4
12
public class Hosgeldin
– Dosyaları saklamak
• Dosya ismi sınıf ismine .java eklenerek elde edilmelidir
• Hosgeldin.java
5
{
– Sol parantez {
• Her sınıfın gövdesi bu işaretle başlar
• Sağ parantez tanımlamayı bitirir }
 2005 Pearson Education, Inc. All rights reserved.
14
İyi programlama örneği 2.4
Ne zaman programınızda bir sol parantez
açsanız, {, bunun karşılığı olan sağ parantezi,
}, de kapatıp bunların arasına yazınız. Bu
uygulama sık görülen parantez hatalarını
önler.
 2005 Pearson Education, Inc. All rights reserved.
15
İyi programlama örneği 2.6
Kendinize bir satır başlangıcı boşluğu
uzunluğu tanımlayın ve standart olarak bunu
kullanın. Tab tuşu boşluk bırakmak için
kullanılabilir, fakat değişik editörler için bu
boşluğun uzunluğu değişik olabilir. Bu
boşluğun üç harf uzunluğunda olması tavsiye
edilir.
 2005 Pearson Education, Inc. All rights reserved.
2.2 Java’da ilk programımız: Bir satır
metin yazdırmak (devam)
6
16
public static void main( String args[] )
– Her Java uygulamasının bir parçasıdır
• Uygulamalar main kısmından çalışmaya başlar
– Parantezler main in bir metod olduğunu gösterir
– Java uygulamaları birden fazla metodlar içerebilir
• Bunlardan sadece bir tanesinin adı main olmalıdır
– Metodlar iş yapıp sonuç geri döndürebilir
• void un anlamı main in bir sonuç geri döndürmeyeceğidir
• Şimdilik, main‘in içinde olduğu satırı bu şekilde kullanalım
7
{
– Sol parentez metodun gövde kısmını başlatır
• Sağ parantez tarafından bitirilir }
 2005 Pearson Education, Inc. All rights reserved.
2.2 Java’da ilk programımız: Bir satır Text
yazdırmak (devam)
8
17
System.out.println( "Java programlamaya hosgeldiniz!" );
– Bilgisayara bir işlem yaptırır
• Bir karakter satırını (string) ekrana yazdırır
– String – tırnaklar arasındaki karakter dizisi
• Satır içindeki boşluklar ihmal edilmez
– System.out
• Standart çıktı nesnesi
• Konsola yazdırır
– Metod System.out.println
• Bir satırı yazar
– Bu satır bir işlem yapar
• Noktalı virgül ile bitirilmeli ;
 2005 Pearson Education, Inc. All rights reserved.
2.2 Java’da ilk programımız: Bir satır Text
yazdırmak (devam)
9
} //
18
main in sonu
– metod tanımlamasını bitirir
10
} // Hosgeldin sınıfının sonu
– Sınıf tanımlamasını bitirir
– Sonlandırma satırlarına açıklama yazılabilir
 2005 Pearson Education, Inc. All rights reserved.
19
İyi programlama örneği 2.8
Bir metodun gövdesine ait olan veya sınıf
deklarayonuna ait olan Sağ parantezden (})
sonra bu parantezin kime ait olduğunu yazan
bir açıklama kısmı eklemek program
okunabilirliliğini artırır.
 2005 Pearson Education, Inc. All rights reserved.
21
2.3 İlk Java programımızı değiştirmek
• Önceki örnekteki programı aynı sonucu verecek
şekilde değiştiriyoruz
– Hosgeldin2.java (Fig. 2.3) Hosgeldin.java (Fig.
2.1) ile aynı sonucu veriyor
– Programlar aynı değil
9
10
System.out.print( "Welcome to " );
System.out.println( "Java Programming!" );
 2005 Pearson Education, Inc. All rights reserved.
1
// Fig. 2.3: Hosgeldin2.java
2
// Birden fazla satıra metin yazdırma.
22
Outline
3
4
public class Hosgeldin2
5
{
7
public static void main( String args[] )
8
{
9
System.out.print( "Java programlamaya " );
10
System.out.println( "hosgeldiniz!" );
12
} // main sonu
System.out.print kursorun aynı
satırda kalmasını sağlar,
System.out.println kursorun
kaldığı satırdan devam eder.
13
14 } // sınıf sonu
Java Programlamaya hosgeldiniz!
 2005 Pearson Education,
Inc. All rights reserved.
23
2.3 İlk Java programımızı değiştirmek
• Escape karakterleri
– Backslash ( \ )
– Özel karakterlerin görüntüleneceğini belirtir
• Yeni Satır karakteri (\n)
– System.out.print ve System.out.println
metodları tarafından özel karakter olarak algılanır
– İmleçi yeni satırın başına koyar
– Hosgeldin3.java (Fig. 2.4)
9
System.out.println( “Java\nprogramlamaya\nhosgeldiniz!" );
– Satırlar \n işareti ile bölünür
– \t boşluk bırakır.\r satır atlatır.\” tırnak yazar
 2005 Pearson Education, Inc. All rights reserved.
1
24
// Fig. 2.4: Hosgeldin3.java
Outline
2
3
4
public class Hosgeldin3
5
{
7
public static void main( String args[] )
8
{
9
System.out.println( "Java\nprogramlamaya\nhosgeldiniz!" );
10
11
} // main sonu
12
13 } // sınıf sonu
Java
programlamaya
hosgeldiniz!
 2005 Pearson Education,
Inc. All rights reserved.
26
2.4 printf ile metin görüntüleme
•System.out.printf
– J2SE 5.0’ın yeni özelliği
– Formatlanmış veri gösterir
9
10
System.out.printf( "%s\n%s\n",
“Java programlamaya", “hosgeldiniz!" );
– Format karakterleri
• Sabit metin
• Format belirleyiciler – gerçek değerin yerini tutar
– Format belirleyici %s – string için yer tutar
 2005 Pearson Education, Inc. All rights reserved.
1
Outline
3
4
public class Hosgeldin4
5
{
7
public static void main( String args[] )
8
{
9
10
27
// Fig. 2.6: Hosgeldin4.java
System.out.printf( "%s\n%s\n",
"Java Programlamaya", "hosgeldiniz!" );
11
12
} // main metodunun sonu
13
14 } // Hosgeldin4 sınıfının sonu
Java programlamaya
hosgeldiniz!
 2005 Pearson Education,
Inc. All rights reserved.
2.5 Başka bir Java uygulaması iki sayının
toplanması
28
• Gelecek program
– Kullanıcıdan doğal sayı okumak için kütüphaneden
Scanner sınıfı kullanılıyor
– İki değerin toplamını göstermek için printf
kullanılıyor
 2005 Pearson Education, Inc. All rights reserved.
1
// Fig. 2.7: Toplama.java
2
// iki sayıyı toplayan program
3
import java.util.Scanner; // Scanner sınıfını kullanıyor
29
Outline
4
5
public class Toplama
6
{
8
public static void main( String args[] )
9
{
11
import komutu Scanner
sınıfını java.util paketinden
getiriyor
Scanner tipindeki a1
değişkenine ilk değer ataması .
Scanner a1 = new Scanner( System.in );
12
13
int num1;
14
int num2;
15
int toplam;
16
17
System.out.print( "Birinci sayiyi giriniz: " );
18
num1 = a1.nextInt();
19
Kullanıcıdan alınan değerin
num1’e atanması.
 2005 Pearson Education,
Inc. All rights reserved.
20
System.out.print( "İkinci sayıyı giriniz: " );
21
num2 = a1.nextInt();
30
Outline
22
toplam = num1 + num2;
23
24
System.out.printf( "Toplama sonucu %d\n", toplam );
25
Toplama.java
26
27
}
28
29 }
Birinci sayiyi giriniz: 45
İkinci sayiyi giriniz: 72
Toplama sonucu 117
 2005 Pearson Education,
Inc. All rights reserved.
2.5 Başka bir Java uygulaması iki sayının
toplanması (devam)
3
import java.util.Scanner;
31
// program Scanner sınıfını kullanıyor
– import deklerasyonu
• Java programlarında kullanılan sınıfların kütüphaneden
getirilmesi için kullanılır
• Derleyiciye Scanner sınıfının java.util paketinden
yüklenmesi gerektiğini söyler
5
6
public class Toplama
{
– public sınıf Toplama’yı başlatır
• Dosya isminin Toplama.java olması gerektiğini
hatırlayınız
 2005 Pearson Education, Inc. All rights reserved.
32
Çok görülen programlama hataları 2.8
Bütün import deklarasyonları aynı dosyadaki
ilk sınıf deklarasyonundan önce yapılmalıdır.
import deklarasyonunu sınıfın içinde yapmak
syntax error hatası verir.
 2005 Pearson Education, Inc. All rights reserved.
33
Hata önleme önerisi 2.7
Bir import deklarasyonunu unutmak “cannot
resolve symbol.” hatasını verilmesini sağlar.
Bu durum oluşursa import deklarasyonunun
olup olmadığını ve import deklarasyonundaki
isimlerin doğru olup olmadığını kontrol
ediniz.
 2005 Pearson Education, Inc. All rights reserved.
2.5 Başka bir Java uygulaması iki sayının
toplanması (devam)
11
34
Scanner a1 = new Scanner( System.in );
– Değişken tanımlaması
– Değişkenler
• Bir değişken hafızanın belirli bir yerinde bir değeri saklar
– Kullanılmadan önce tipi ve adı tanımlanmalıdır
• a1 değişkeninin tipi Scanner
– Programın dışarıdan veri okumasını sağlar
• Değişken adı: herhangi bir Java belirteci gibi tanımlanır
– tanımlamalar ; ile biter
– Değişkene tanımlama sırasında bir ilk değer atamak için
• Eşit işareti kullanılır
• Kullanıcıdan bir okuma yapmak için kullanılan standard input
sınıfı System.in dir
 2005 Pearson Education, Inc. All rights reserved.
2.5 Başka bir Java uygulaması iki sayının
toplanması (devam)
13
14
15
35
int num1;
int num2;
int toplam;
– num1, num2 ve toplam değişkenlerini int tipinde
tanımla
•
•
•
•
int doğal sayıları tutar (küsüratsız sayılar): örnek, 0, -4, 97
float ve double tipleri ondalıklı sayıları tutabilir
char tipi tek bir karakteri tutar : örnek, x, $, \n, 7
int, float, double ve char primitive tiplerdir
– Değişkenlerin ne amaçla kullanılacağını açıklamak
yararlıdır
int num1,
num2,
toplam;
– Aynı tip değişkenler aynı deklerasyonda tanımlanabilir
– Virgül ile ayrılmış liste kullan
 2005 Pearson Education, Inc. All rights reserved.
36
İyi programlama örneği 2.12
Değişken isimleri küçük harf ile başlamalı ve
değişken içindeki kelimeler büyük harfle
başlamalıdır. Örneğin firstNumber değişkeni
küçük harf ile başlamış ve Number kelimesi
büyük yazılmış.
 2005 Pearson Education, Inc. All rights reserved.
2.5 Başka bir Java uygulaması iki sayının
toplanması (devam)
17
37
System.out.print( “Birinci sayiyi giriniz: " );
– Mesaj kullanıcının bir aksiyon yapmasını belirtiyor
– java.lang paketi
18
num1 = a1.nextInt();
– nextInt‘in sonucu olarak num1 değişkenine değer girilir.
= operatörü kullanılır
• Atama yapar
• = ikili operatör – iki değer lazım
– Sağdaki ifade hesap edilip soldaki değişkene atanır
• num1= a1.nextInt( )’ın değerini alır
 2005 Pearson Education, Inc. All rights reserved.
38
Yazılım Mühendisliği Gözlemi 2.1
java.lang paketi, her Java programında
otomatik olarak import edilir; java.lang
Java API’ı içinde tek import deklerasyonu
gerektirmeyen pakettir.
 2005 Pearson Education, Inc. All rights reserved.
2.5 Başka bir Java uygulaması iki sayının
toplanması (devam)
20
39
System.out.print( “İkinci sayiyi giriniz: " );
– Önceki satır ile benzer
• Kullanıcıya ikinci değeri girmesini söyler
21
num2 = a1.nextInt();
– Önceki satır ile benzer
• num2 değişkenine değer girilir
23
toplam = num1 + num2;
– Atama
• num1 ve num2’nin toplamı hesaplanır (sağ kısım)
• atama operatör = toplamı sum değişkenine atamak için
kullanılır
 2005 Pearson Education, Inc. All rights reserved.
2.5 Başka bir Java uygulaması iki sayının
toplanması (devam)
25
40
System.out.printf( “Toplama sonucu %d\n: " , sum );
– System.out.printf sonucu görüntülemek için
kullanılır
– Format belirleyici %d
• Bir int değeri için yer tutar
System.out.printf( “Toplama sonucu %d\n: " , ( num1 + num2 ) );
– Hesaplamalar printf içinde yapılabilir
– num1 + num2 dışına parantez koymak gerekmez
 2005 Pearson Education, Inc. All rights reserved.
41
2.6 Hafıza konuları
• Değişkenler
– Her değişkenin bir ismi, tipi, boyutu ve değeri vardır
• İsim hafızadaki bir yeri temsil eder
– Değişkene atanan yeni değer eski değeri siler
– Değişkenleri hafızadan okumak değeri değiştirmez
 2005 Pearson Education, Inc. All rights reserved.
42
Fig. 2.8
 2005 Pearson Education, Inc. All rights reserved.
43
Fig. 2.9 |
 2005 Pearson Education, Inc. All rights reserved.
44
Fig. 2.10 |
 2005 Pearson Education, Inc. All rights reserved.
45
2.7 Aritmetik
• Aritmetik hesaplamalar birçok programda
kullanılır
– Kullanım
• * çarpma için
• / bölme için
• % kalanı bulmak için
• +, -
– Tamsayı bölmede kalan atılır
7 / 5’in sonucu 1 dir
– Kalan operatörü % kalanı verir
7 % 5 sonucu 2 dir
 2005 Pearson Education, Inc. All rights reserved.
46
Java
operation
Arithmetic Algebraic
operator
expression
Java
expression
Addition
+
f+7
f + 7
Subtraction
–
p–c
p - c
Bm
b * m
Multiplication *
Division
/
x / y or
or x ÷ y
x / y
Fig. 2.11 | Arithmetic operators.
 2005 Pearson Education, Inc. All rights reserved.
47
2.7 Aritmetik (Devam)
• Operatör öncelikleri
– Bazı aritmetik operatörler diğerinden daha önce kullanılır
(örnek, çarpma toplamadan önce)
• Gerektiğinde parantez kullan
– Örnek: Üç değişkenin ortalamasını bulmak
• Yanlış : a + b + c / 3
• Doğrusu : ( a + b + c ) / 3
 2005 Pearson Education, Inc. All rights reserved.
48
Operator(s) Operation(s) Order of evaluation
(precedence)
*
Çarpma
/
Bölme
%
Mod alma
+
Toplama
-
Çıkarma
Öncelikleri vardır. Yanyana
sıralanırlarsa önce soldaki
yapılır
Yukarıdakilerden sonra
yapılırlar. Topalama ve çıkarma
yanyana ise önce soldaki yapılır.
Fig. 2.12 | Precedence of arithmetic operators.
 2005 Pearson Education, Inc. All rights reserved.
49
Fig. 2.13 | Order in which a second-degree polynomial is evaluated.
 2005 Pearson Education, Inc. All rights reserved.
2.8 Karar verme: Eşitlik ve Karşılaştırma
operatörleri
50
• Koşul
– İfade doğru(true) veya yanlış(false) olabilir
•if deyimi
– Bir koşul doğru( true) ise, if deyiminin gövdesi
çalıştırılır.
– if deyiminden sonra, ilk gelen komutla devam edilir
– if içindeki koşul eşitlik veya karşılaştırma operatörü
yardımıyla yazılır.
 2005 Pearson Education, Inc. All rights reserved.
51
Standart
Java
Eşitlik operatörleri


Karşılaştırma operatörleri



≤
Javada
Koşul
Açıklama
==
!=
x == y
x != y
x , y ye eşit ise
x , y ye eşit değil ise
>
<
>=
<=
x
x
x
x
x,y
x,y
x,y
x,y
> y
< y
>= y
<= y
den büyük ise
den küçük ise
den büyük veya eşit ise
den küçük veya eşit ise
Fig. 2.14 | Eşitlik ve karşılaştırma operatörleri.
 2005 Pearson Education, Inc. All rights reserved.
1
4
5
6
7
9
10
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
// Fig. 2.15: Karsilastirma.java
import java.util.Scanner;
public class Karsilastirma
{
public static void main( String args[] )
{
Scanner a1 = new Scanner( System.in );
int num1;
int num2;
System.out.print( "Birinci sayiyi giriniz: " );
num1 = a1.nextInt();
52
Outline
Karsilastirma.j
ava
Class
Karsilastirma
System.out.print( "İkinci sayiyi giriniz: " );
num2 = a1.nextInt();
if ( num1 == num2 )
System.out.printf( "%d == %d\n", num1, num2 );
if ( num1 != num2 )
System.out.printf( "%d != %d\n", num1, num2 );
if ( num1 < num2 )
System.out.printf( "%d < %d\n", num1, num2 );
 2005 Pearson Education,
Inc. All rights reserved.
31
32
33
if ( num1 > num2 )
System.out.printf( "%d > %d\n", num1, num2 );
53
Outline
34
if ( num1 <= num2 )
35
System.out.printf( "%d <= %d\n", num1, num2 );
36
Karsilastirma.java
37
if ( num1 >= num2 )
38
System.out.printf( "%d >= %d\n", num1, num2 );
39
40
41
}
42
43 }
Birinci sayiyi giriniz: 777
İkinci sayiyi giriniz: 777
777 == 777
777 <= 777
777 >= 777
Program çıktısı
Birinci sayiyi giriniz: 1000
İkinci sayiyi giriniz: 2000
1000 != 2000
1000 < 2000
1000 <= 2000
Birinci sayiyi giriniz: 2000
İkinci sayiyi giriniz: 1000
2000 != 1000
2000 > 1000
2000 >= 1000
 2005 Pearson Education,
Inc. All rights reserved.
57
Sık yapılan hatalar 2.10
Eşitlik operatörünün atama operatörü ile
karıştırılması, ==, karşılaştırma operatörüdür,
=,atama operatörüdür.
 2005 Pearson Education, Inc. All rights reserved.
58
Sık yapılan hatalar 2.11
==, !=, >= ve <= aralarına boşluk konulması
sentaks hatasına sebep olur,ÖR: = =, ! =, > =
ve < = hatalı yazılışmaldır.
 2005 Pearson Education, Inc. All rights reserved.
59
Sık yapılan hatalar 2.12
Karşılaştırma operatörlerinin yerlerinin
değiştirilmesi != ve =! , >= ve <=, => ve =<
 2005 Pearson Education, Inc. All rights reserved.
60
Operator
*
/
+
-
<
<=
==
!=
=
Tipi
%
>
>=
Soldan sağa
çarpım
Soldan sağa
toplam
Soldan sağa
karşılaştırma
Soldan sağa
eşitsizlik
Sağdan sola
atama
Fig. 2.16 |
 2005 Pearson Education, Inc. All rights reserved.
Download