2. Lab

advertisement
Güz 2007
BMU111 – 2. Lab Föyü
Java ile Programlamaya Giriş
Bu labda Java ile programlamaya giriş yapacağız. Laboratuvarda yazacağınız programları C kök dizininde
oluşturacağınız BMU111 adındaki bir klasöre kaydediniz.
Java Programlarının yazılması, derlenmesi ve çalıştırılması
Java programları uzantısı java olan dosyalara kaydedilirler. Bu dosyaların sistemin anlayıp işletebileceği
byte code haline gelebilmesi için Java derleyicisi kullanılarak derlenmesi gerekmektedir. Java derleyicisi
JDK (Java Development Toolkit) kurulumu altındaki bin klasöründe bulunur. Örneğin laboratuvarımızda
kurmuş olduğumuz JDK 6.2 programı C:\Program Files\Java\jdk1.6.0_02 klasöründedir. Java derleyicisi
javac.exe programı da bu klasörün içindeki C:\Program Files\Java\jdk1.6.0_02\bin klasöründedir.
Eğer komut satırını açıp javac yazdığınızda bu komut tanınmıyor şeklinde bir mesaj alıyorsanız sistemin
PATH değişkenine JDK\bin klasörünü eklemeniz gerekmektedir. Bunun için komut satırından
PATH= C:\Program Files\Java\jdk1.6.0_02\bin yazmanız gerekmektedir.
Bir Java programını çalıştırmak için önce javac komutuyla derlemeli daha sonra java komutu kullanarak
çalıştırmalısınız. Bu hafta bu derleme işini komut satırını kullanarak yapacağız. Bu işlem için aşağıda
anlatılanları adım adım yapmanız gerekmektedir.
1- Aşağıdaki örnekleri bir Text editörüne yapıştırıp dosyaya class isimleri ile aynı ismi vererek
kaydedin. Örneğin TextPad’i açın birinci örneği aşağıdan kopyalayarak yapıştırın, File – Save
menüsünü açın, birinci örnekteki class ismi Lab2_1 olduğu için bu ismi vererek kaydedin.
Dosyalarınızı C:\BMU111 klasörüne kaydedin.
2- Windows Start menüsünden Çalıştır sekmesine tıklayıp açılan pencerede cmd yazın ve enter’a
basın. Komut satırı açıldıktan sonra (cd C:\BMU111) komutunu işletin.
3- Son olarak az önce kaydetmiş olduğunuz java dosyasını aşağıdaki gibi derleyin:
javac Lab2_1.java
4- Derleme işlemi bittikten sonra aynı klasörde Lab2_1.class adında yeni bir dosya oluşturulacaktır.
Şimdi bu dosyayı java komutu ile çalıştırın:
java Lab2_1
Komutun sonucunda programın çıktısını göreceksiniz. Benzer şekilde diğer örnekleri de derleyip
çalıştırın.
Örnek 1
Bu örnek çalıştırıldığı zaman komut satırına "Hos Geldiniz" yazdıran basit bir Java programıdır. Program
Javada class tanımlamasının nasıl yapıldığını ve main metodunun nasıl kullanıldığını göstermektedir.
Galip Aydın
01-10-2007
Page 1
Güz 2007
BMU111 – 2. Lab Föyü
public class Lab2_1 {
public static void main(String[] args) {
System.out.println("Hos Geldiniz");
}
}
Java programları class olarak adlandırılan bloklar içerisinde yazılır. Bu bloklar içerisinde o programın
yapması gerekenlerin yazıldığı metodlar yazılır. Bir Java programının çalıştırılması için main adı verilen bir
fonksiyon yazılır. Main metodu public static void main(String[] args) şeklinde tanımlanır. Burda kullanılan
tanımlamaların anlamı daha sonraki derslerde anlatılacaktır. Basit olarak Public terimi bu metoda başka
metodlar veya java sınıfları tarafından ulaşılabileceğini ifade eder. Static terimi bu metodun sadece bu
sınıfa ait olduğunu ve hafızada sadece bir kopyasının tutulacağını gösterir.
İçinde main metodu olan bir Java dosyası çalıştırıldığı zaman ilk olarak bu metod uyarılır ve içerisindeki
komutlar işletilir. Yukarıdaki örnekte main metodunun içindeki tek komut ekrana yazı yazan
System.out.println komutudur. Bu komut javanın hazır fonksiyonlarından birini kullanarak verilen yazıyı
ekrana yazar ve yeni satıra geçer.
Örnek 2
2. Örnekte klavyeden giriş işleminin nasıl yapılacağı gösterilmektedir. Javada klavyeden girilen
karakterlerin okunması için birkaç değişik yöntem vardır. Örnekte gösterilen yöntem Javanın 5.0
versiyonu ile kullanılmaya başlanmıştır. java.util paketinde yer alan Scanner programı kullanılarak
kullanıcının girdiği sayılar, karakterler veya kelimeler okunabilir.
Scanner giris = new Scanner(System.in);
Yukarıda görüldüğü gibi konsoldan girilen karakterleri okumak için standart girişe (System.in) bağlanan
bir Scanner objesi oluşturulur. Bu objeye örnek 2’de giris adı verilmiştir. Daha sonra Scanner sınıfının
bize sağladığı metotlardan uygun olanını kullanıp klavye girişini okuyabiliriz.
isim = giris.nextLine();
bu örnekte kullanılan nextLine() metodu klavyeden girilen bir satırı okur ve isim değişkenine atar. Sonraki
satırda kullanıcıdan alınan isim tekrar cıkışa gönderilmiştir:
System.out.println("Merhaba " + isim);
Burada dikkat çeken nokta System.out metodunda + işaretinin kullanımıdır. Burada toplama işareti iki
kelimeyi birleştirmek amacıyla kullanılmıştır. Bu işlem matematiksel toplamadan farklı olarak verilen
Stringleri arka arkaya ekler.
Galip Aydın
01-10-2007
Page 2
Güz 2007
BMU111 – 2. Lab Föyü
import java.util.Scanner;
/*
* Basit giris/cikis islemleri
* Klavyeden girilen ismi okur ve bir degiskene atar
*
*/
public class Lab2_2 {
public static void main(String[] args) {
//Gireceginiz ismi tutacak bir degisken yaratin
String isim;
//Klavyeden girilen ismi okuyacak fonksiyon
Scanner giris = new Scanner(System.in);
//Kullaniciya mesaj yazarak ismini girmesini isteyin
System.out.println("Adin ne?");
//Simdi kullanicinin adini isim degiskenine atayalım
isim = giris.nextLine();
//Kullaniciya selam verelim
System.out.println("Merhaba " + isim);
}
}
Örnek 3
Java System.out metodu ile çıkış yazdırılırken kullanilabilecek bazı escape karakterleri şunlardır:
\" çift tırnak
\' tek tırnak
\\ ters slash
\n yeni satır
\r bulunduğu satırın başına gider
\t Tab
Örnek 3’te yeni satır ve tab karakterleri kullanarak ekrana biçimlenmiş çıktı yazdırmayı göreceğiz.
Programda ilk olarak herbir satır için birer adet olmak üzere beş adet System.out metodu kullanılmıştır.
İkinci metod ise tek bir System.out metodu ve özel karakterler yardımıyla aynı çıktının elde
edilebileceğini göstermektedir.
Galip Aydın
01-10-2007
Page 3
Güz 2007
BMU111 – 2. Lab Föyü
/**
* Asagida gorulen ciktiyi veren program
*
* ADI
SOYADI
NO
NOTU
* ---------------------------* Ali
Demir
01
AB
* Veli
Gocer
02
BB
* Husnu Aslan
03
CC
*
*/
public class Lab2_3 {
public static void main(String[] args) {
System.out.println("Birinci Metod");
System.out.println("");
System.out.println("ADI
SOYADI NO
NOTU");
System.out.println("----------------------------");
System.out.println("Ali
Demir 01
AB");
System.out.println("Veli
Gocer 02
BB");
System.out.println("Husnu Aslan 03
CC");
System.out.println("\nIkinci Metod\n");
System.out.println("ADI\tSOYADI\tNO\tNOTU\n" +
"----------------------------\n" +
"Ali\tDemir\t01\tAB\n" +
"Veli\tGocer\t02\tBB\n" +
"Husnu\tAslan\t03\tCC");
}
}
Galip Aydın
01-10-2007
Page 4
Güz 2007
BMU111 – 2. Lab Föyü
Örnek 4
/**
Sadece bir adet System.out.println kullanarak asagidaki sekli yazdiriniz
*
* *
*
*
*
*
*
*
* *
*
*/
public class Lab2_4 {
public static void main(String[] args) {
System.out.println(
"
*\n" +
" * *\n" +
" *
*\n" +
" *
*\n" +
" *
*\n" +
" * *\n" +
"
*\n");
}
}
Lab Çalışması 1
Kullanıcıdan sırayla adı, soyadı, doğum yeri, doğum tarihini alan daha sonra da aşağıdaki çıktıyı veren bir
program yazınız:
01-01-1987 tarihinde "Elazıg’da" doğan "Ali Demir" 20 yaşındadır.
Doğum tarihi sırayla gün, ay, yıl şeklinde alınacaktır. Bu rakamları değişkenlere atamak için Scanner
classının nextInt() metodunu kullanabilirsiniz.
Yazdığınız programı Lab2_5.java ismiyle kaydediniz.
Kullanıcıyla iletişim aşağıdaki şekilde olacaktır:
Adiniz:
Ali
Soyadiniz:
Demir
Dogum Yeriniz:
Elazıg
Dogum tarihiniz,
Galip Aydın
01-10-2007
Page 5
Güz 2007
BMU111 – 2. Lab Föyü
Gun:
12
Ay:
10
Yıl:
1987
12-10-1987 tarihinde "Elazıg’da" dogan "Ali Demir" 20 yasindadir.
Programı yazarken escape karakterlerine ve kullanıcının yaşını bulmak için çıkarma işlemi yapmanız
gerektiğine dikkat ediniz.
Lab Çalışması 2
Kullanıcıdan aldıgı bilgilere göre aşağıdaki şekilde bir sipariş listesi yazdıran bir program yazınız:
Adiniz:
Ali
Soyadiniz:
Demir
Kac kg Domates:
3.5
Kac kg Biber:
2.5
Kac kg Patlican:
4.7
Musteri Adi: Ali Demir
Siparis Tarihi: 01-10-2007
Siparis Detaylari
------------------------------Domates
Biber Patlican
3.5 kg
2.5 kg 4.7 kg
Afiyet Olsun.
Ondalık sayıları saklamak için float sayı türünü, klavyeden ondalık sayıları okumak için ise Scanner
classının nextFloat() metodunu kullanınız.
Galip Aydın
01-10-2007
Page 6
Download