Ders İçeriği - Gazi Üniversitesi

advertisement
Ders İçeriği
An introduction to Object-oriented
programming with Java
Third Edition Update
Java
C.Thomas Wu
2004b
kitabından Türkçeleştirilerek ve
örneklendirilerek hazırlanmıştır.
Öğr. Gör. Dr. Çelebi Uluyol
Gazi Üniversitesi
Bilgisayar ve Öğretim
Teknolojileri Eğitimi Bölümü
Nesneye Yönelik
Programalama
ÜNİTE 1. NESNE YÖNELİMLİ PROGRAMLAMAYA VE YAZILIM GELİŞTİRMEYE GİRİŞ
1.1.Sınıf (class) ve Nesne (object) kavramları
Sınıf için tanımlanan metot, “sınıf metodu”; nesne için tanımlanan metot ise “örnek yöntemi” diye adlandırılır.
Sınıf ve nesne, OOP içindeki en önemli iki kavramdır.
Mesajın adı ile metodun adı aynı olmak zorundadır. Mesajda ayrıca bir “argüman (argument)” bulunur.
Nesne herhangi bir şeydir. OOP mantığında birbirleriyle etkileşim içerisinde olan nesneler
yer alır. Örneğin; Öğrenci, oda, kat nesneleri gibi. Her nesnenin içinde de data (veri) tutulur.
Örneğin; öğrenci nesnesi için ad, soyad, cinsiyet, doğum günü, adres, … gibi veriler tutulur.
Bir programda nesneleri oluşturmak için komutlar yazarız. Nesne oluşturabilmek için sınıf
diye adlandırılan yapının olması gerekir. Sınıf, nesnelerin neler yapıp neler yapmayacağını
belirleyen bir yapı veya şablondur. Nesne = Sınıfın bir örneğidir (an object = an instance of
a class). Yani bir nesne mutlaka bir sınıfa ait olmak zorundadır.Örneğin; GEF sınıf adı, BÖTE
nesne adı gibi.
Öncelikle bir sınıf oluşturulur. Sonra bu sınıfın istediğimiz kadar nesnesini oluşturabiliriz.
!
Nesneden önce sınıf mutlaka oluşturulmuş olmalıdır.
1.2.Mesajlar (Messages) ve Metotlar (Methods)
Bir görevi yerine getirmek için nesne ya da sınıfa “mesaj” yollanır. Örneğin; “hesap” nesnesine 100$ depolaması için “depola” mesajı yollanır.
Yollanan mesajı anlayabilecek olan sınıf veya nesneye mesaj yollanabilir. Bir sınıf veya
nesnenin, aldığı mesajı işleme koyabilmesi için bir metoda sahip olması gerekir. “Metot”,
görevi yerine getirecek olan komutlar bütünüdür.
Örneğin; Robot sınıfından fido isimli nesneye wallk(25) isimli bir mesaj yollayabilirsin. Burdaki argüman değeri 25’tir.
Argüman boş olarak da mesaj yollanabilir.
1.3.Sınıf (class) ve Örnek veri değerleri (instance
data values)
Bir nesne, veriyi veri değerlerinde tutar. Bu nedenle sınıf ve örnek veri değerleri tanımlamak
zorundayız.
Veri değerinin iki çeşidi vardır: variable ve constant.
• Variable: değiştirilebilen veri değeri
• Constant: değiştirilemeyen veri değeri
?
4x-7=5
Variable
Constant
ÜNİTE 1. NESNE YÖNELİMLİ PROGRAMLAMAYA VE YAZILIM GELİŞTİRMEYE GİRİŞ
1.4.Inheritance (Kalıtım)
Bir class’ın başka bir class’daki property ve method’lara sahip olmasına inheritance denir.
1.5.Yazılım mühendisliği ve yazılım yaşam
döngüsü
Yazılım yaşam döngüsü 5 aşamalıdır:
Yukarıdaki örnekte de görüldüğü gibi; convertible sınıfı miras alınarak roadster
isimli yeni bir sınıf oluşturulmuştur. Bu sınıf convertible sınıfının tüm özelliklerini
taşımaktadır.
ÜNİTE 2. GETTING STARTED WITH JAVA
2.1. İlk Java programı
!
Uygulama - 1
/*
ilk java programı
*/
import javax.swing.*;
class Ch2Sample1 {
public static void main(String[] args) {
JFrame myWindow;
myWindow = new JFrame();
myWindow.setSize(300,200);
myWindow.setTitle(“İlk Java Programı”);
myWindow.setVisible(true);
}
Student john;
john = new Student();
demek ile
Student john = new Student();
demek aynı şeydir.
• Nesne oluşturulduktan sonra da mesaj yollanır. Örnek:
myWindow.setVisible(true);
Bu kodda myWindow nesnedir. setVisible metot veya yolladığımız mesajın adıdır. True ise
mesajla yollanan argüman değeridir.
ÖZETLE;
1. Önce nesnenin sınıftan oluşturulduğu bildirilir.
2. Sonra nesne yaratılır.
3. Sonra nesneye mesaj yollanır.
}
Yukarıdaki örnekte;
• Ch2Sample1, sınıfın adıdır ve bu sınıf bir metodu (main) içerir.
• Sınıftan nesne oluşturulduğu JFrame myWindow; satırı ile bildirilir.
• Bildirimin ardından nesne oluşturan kod yazılır. Örneğin;
myWindow = new JFrame();
!
Sınıf isimlerinin ilk harfi büyük, nesne isimlerinin ise ilk harfi küçük olur.
OgrenciOzellik -->sınıf oluşturulurken kelimelerin ilk harfler büyük yazılır.
ogrenciBoy --> nesne oluşturulurken ilk kelimenin ilk harfi küçük ikinci kelimenin ilk harfi büyük yazılır.
ÜNİTE 2. GETTING STARTED WITH JAVA
2.2. Program Bileşenleri
Her Java programında 3 kısım bulunur:
•Comment
•İmport
•Sınıf (class)
Comment (Yorumlar)
/*
Bu bir yorumdur
*/
// Bu da bir yorumdur.
İmport Kısmı
OOP, önceden tanımlanan sınıflar kullanılarak yazılır. Önceden tanımlanan bu sınıflar, sistemin kendi sınıfları olabileceği gibi, bizim oluşturduğumuz sınıflar da olabilir. Java dilinde
sınıflar, paketler (packages) içinde gruplandırılır. Kullanıma örnekler şu şekildedir:
dorm.Resident;
Burada dorm paketin adı, Resident ise sınıfın adıdır.
javax.swing.JFrame;
Burada javax paketin adı, swing javax paketinin içindeki paketin adı, JFrame ise sınıfın adıdır.
import javax.swing.*;
Yukarıdaki kod satırı, javax.swing paketindeki tüm sınıfları kullanabilirz anlamına gelir.
Bunun yerine şöyle bir kullanım da olabilirdi (Böyle kullanılırsa import demeye gerek
kalmazdı):
Javax.swing.JFrame myWindow;
myWindow = new javax.swing.JFrame;
Sınıf kısmı
Bir önceki programda iki sınıf vardı. JFrame ve Ch2Sample1 sınıfları. JFrame sistemde kayıtlı
olan bir sınıf, Ch2Sample1 ise bizim oluşturduğumuz bir sınıf. Her Java programında en az
bir sınıf bulunmak zorundadır. Program içinde bir sınıf “main sınıf” olarak tanımlanmak
zorundadır.
Yukarıdaki uygulamadaki “public static void” ile başlayan kısım ise metot kısmıdır. Metodun
yazım şekli şu şekildedir:
<modifiers> <return type> <method name> (<parameters>) {
<method body>
}
modifier: farklı türdeki metotlardır.
Return type: metot tarafından döndürülen verinin tipi
Method name: metodun ismi
Parameters: metoda yollanan veriler.
!
Her java programında en az bir sınıf bulunmak zorundadır.
2.3. Edit – Compile – Run döngüsü
ÜNİTE 2. GETTING STARTED WITH JAVA
2.4. Java standart sınıfları
2.4.2. String
Bu kısımda Java’nın içindeki 4 sınıftan bahsedilecektir. Bu sınıflar şöyledir:
String name;
name = new String(“Çelebi ULUYOL”); JOptionPane, String, Date, SimpleDateFormat
NOT: İyi bir OOP programcısı, tanımlı sınıfları nasıl kullanması gerektiğini çok iyi
bilmelidir.
2.4.1. Çıktı için JOptionPane
Sonucu kullanıcıya göstermek için Java’da kullanılacak en kolay yol JOptionPane sınıfını
kullanmaktır. Örnek:
JOptionPane.showMessageDialog(null, “I love Java”);
Buarada null yazmak, ekranın ortasında görüneceği anlamına gelir.
Java’da çerçeve penceresi için JFrame nesnesi, diyalog içinde JDialog nesnesi kullanılır.
Uygulama - 2
import javax.swing.*;
Örnek:
String sınıfı için özel bir durum da sözkonudur. Sınıf bildiriminin ardından, oluşturma atlanabilir. Örnek:
String name;
name = “Celebi ULUYOL”;
2.4.3. Date ve SimpleDateFormat
Örnek:
Date today;
today = new Date();
JOptionPane.showMessageDialog(null, today.toString());
Bu kodlar çıktı olarak şöyle bir çıktı verir:
Sat Apr 20 15:05:18 PDT 2002
class MesajDialog{
Eğer tarih ve saatin bu şekilde çıktı vermesi hoşunuza gitmediyse, simpleDateFormat sınıfı
kullanılabilir. Bu sınıf java.text paketinin içinde yer alır.
Örnek:
public static void main(String[] args) {
JFrame benimNesnem;
Date today;
benimNesnem = new JFrame();
SimpleDateFormat sdf;
benimNesnem.setSize(400,300);
today = new Date();
benimNesnem.setVisible(true);
sdf = new SimpleDateFormat(“MM/dd/yy”);
JOptionPane.showMessageDialog(benimNesnem, “Nasılsın”);
JOptionPane.showMessagedialog(null, format(today));
JOptionPane.showMessageDialog(null, “Bye Bye”);
Bu kodlar da çıktı olarak şöyle bir çıktı verir;
}
}
04/20/11
ÜNİTE 2. GETTING STARTED WITH JAVA
Uygulama - 3
import javax.swing.*;
import java.util.*; // date sınıfının ait olduğu paket
import java.text.*; // simple date sınıfının ait olduğu paket
class SimdikiZaman {
public static void main(String[] args) {
Date simdi;
SimpleDateFormat simpleDF1,simpleDF2;
simdi = new Date();
simpleDF1 = new SimpleDateFormat();
simpleDF2 = new SimpleDateFormat(“EEEE MMMM dd, yyyy”);
}
}
2.4.4. Giriş için JOptionPane
JOptionPane.showInputDialog(null, “Metni gir:”);
String input;
input = JOptionPane.showInputDialog(null, “Metni gir:”);
Girilen metin input isimli nesneye aktarılır.
Object Oriented Programming
İletişim
http://www.bote.gazi.edu.tr
http://w3.gazi.edu.tr/~celebi/
Bu kitap içeriği Çelebi ULUYOL tarafından “An introduction to Object-oriented programming with Java” kitabı yardımıyla
hazırlanmış, tasarımı Berkan MERAL tarafından yapılmıştır.
© 2012 / Gazi Üniversitesi Bilgisayar ve Öğretim Teknolojileri Eğitimi
Download