Upgrading Internet Technology skills of Information and

advertisement
The European Union’s “Making the Labour Market more
Inclusive III” programme For “North Cyprus”
Upgrading Internet Technology skills
of Information and Communication
Technologies (ICT) Professionals
Module 2:Server Side Internet
Programming
Modül 2: Sunucu Tarafı Internet
Programlaması
Laboratuar Notları
A project implemented by
CyberSoft Bilişim Teknolojileri Ltd.
This project is funded by European Union. The contents
of this publication are the sole responsibility of
Cybersoft Bilişim Teknolojileri Ltd. and can in no way be
taken to reflect the views of the European Union.
İçerik
Bölüm 2: Nesne Kavramı ve Sınıf Nesnelerinin Tasarımı
Örnek 1: Sınıf nesnesi yaratma…………………………………………………………………………………….2
Çalışma 1: Account Sınıfında Değişiklik Yapma………………………………………………………………….3
Çalışma 2: GradeBook Sınıfında Değişiklik Yapma………………………………………………………………6
Çalışma 3: Employee Sınıfı Yaratma………………………………………………………………………………8
Çalışma 4: Person Sınıfındaki Hataları Bulma…………………………………………………………………….10
Çalışma 5. Date İsimli Yeni Sınıf Yaratma…………….………………………………………………………….12
1
Örnek 1: Sınıf Nesnesi Yaratma
Sınıf nesnesi birden fazla veri tipinin bir arada bulunduğu ve belli bir işi yapmaya yönelik hazırlanan birleşik
bir yapıdır. Şimdi temel olarak bir sınıf nesnesinin nasıl yaratıldığına bakalım:
public class Kitap {
String Book_name;
String author_name;
int page_number;
float price;
...
float findPrice() {
....
}
void changePrice(float
new_price) {
....
Örnek 1: Sınıf nesnesi yaratma
Bu örnekte de görüldüğü gibi bir sınıf nesnesi yaratırken “class” anahtar sözcüğünü kullanmaktayız.
Nesnemizin tamamı, class anahtar sözcüğü ile onu takip eden ve bizim vereceğimiz isimden sonra açılan küme
parantezi ile en sonda kapatılan küme parantezi içerisine yazılmaktadır. Nesne yaratılırken ilk kullanılan
“public” anahtar sözcüğü nesnenin başka nesneler içerisinde de doğrudan kullanılabileceğini belirtmektedir.
Bu anahtar sözcük gibi nesnenin doğrudan kullanılamayacağını belirtebileceğiniz “private” anahtar sözcügü de
mevcuttur. Bunu dışında yeri geldikçe kullanılabilecek başka anahtar sözcüklerin olduğunu da belirtmeliyim.
Gördüğümüz gibi Book isimli sınıf nesnemizin içerisinde “book_name”, “author_name” gibi değiskenler
(variable) yer almaktadır. Bu değişkenlere sınıf degişkenleri denilir ve nesnenin özelliklerini meydana
getirirler. Bu özellikler her Book nesnesi için değişecektir ancak her Kitap nesnesi, değerleri farklı olsa bile bu
özelliklere sahip olacaktır. Ayrıca yine nesnemiz içerisinde bu değişkenlere ek olarak bazı metodların
yazılabilecegini de görmekteyiz. Java'da “metod” olarak isimlendirilen kavramlar C ya da C++ programlama
dillerindeki “fonksiyon” kavramı ile aynı şeyi anlatmaktadır. Metodlar sayesinde belirli işlerin tek seferde
yapılmasını sağlayabiliriz. Mesela bu örnek sınıf nesnesini kullanırken sınıf değiskenleri içerisine sırasıyla
book_name, author_name ve price yükledigimizi kabul edelim. Bundan sonra herhangi bir anda kitabın
ücretini öğrenmek istediğimizde önce hangi değişkenler olduğunu, hangi değişkende aslında price bilgisinin
yer aldığını öğrenmek yerine bu işi bizim için yapıp bize sadece sonucu üretecek bir metod yazmak daha
akıllıca olacaktır. Şimdi şu ana kadar edinmiş olduğumuz bilgiler ışığında aşağıda verilen çalışmaları yapalım.
2
Çalışma 1:Account Sınıfında Değişiklik Yapma
Aşağıda verilen program şablonu hatasız çalışan bir Java programıdır. Ancak programdaki bir veya birden
fazla anahtar satırları açıklama satırlarıyla değiştirilmiştir. Problem tanımını okuyun ve örnek sonucu
inceleyin; daha sonra da şablon kod üzerinde çalışın. Problem çözme ipuçları’nı kullanarak /* */ gösterilen
açıklama satırlarını Java koduyla değiştirin. Programınızı derleyin ve çalıştırın. Bulduğunuz sonucu örnek
sonuçla karşılaştırın.
1.1 Account Çalışmasının Amacı
Bu çalışmada şu konular incelenecektir:
 Metodların yaratılması
 Metodları çağırma ve metodlardan dönen değerleri alma
 If komutunu kullanarak bir koşulu test etme
 Printf komutunu kullanarak değişkenlerin değerini ekrana yazdırma
1.2 Account Çalışmasının Problem Tanımı
Aşağıda verilen Account isimli program şablonunda şu değişiklileri yapınız.



Account’dan para çekebilmek için kullanılacak olan debit isminde yeni bir metod yazınız.
Debit miktari Account’daki balance miktarını aşmamalıdır. Eğer aşarsa, “Debit amount exceeded
account balance." mesajı ekrana yazılmalıdır.
AccountTest metodunda gerekli değişikliği yaparak debit metodunu test ediniz.
1.3 Account Çalışmasının Örnek Program Çıktısı
3
1.4 Account Çalışmasının Program Şablonu
Şekil 1.1 Account.java
Şekil 1.2 AccountTest.java (1 of 2)
4
Şekil 1.2 AccountTest.java (2 of 2)
1.5 Account Çalışması için Problem Çözme İpuçları
1. debit adında void tipinde dönüşüm veren bir public metod tanımlayınız.
2. Kullanıcın istediği miktarı girebilmesini sağlayan bir parametre kullanınız.
3. debit metodunun ana kısmında balance’da herhangi bir withdrawal olup olmadığını test etmek için if
komutunu kullanınız. Eğer koşul doğruysa, ekrana uygun bir mesaj yazdırınız.
4. withdrawal miktarının balance’daki miktardan küçük veya eşit olup olmadığını test etmek için başka
bir if komutu kullanınız. Daha sonra balance miktarını uygun şekilde düşürünüz.
5
Çalışma 2: GradeBook Sınıfında Değişiklik Yapma
Aşağıda verilen GradeBook ismindeki program şablonu hatasız çalışan bir Java programıdır. Ancak
programdaki bir veya birden fazla anahtar satırları açıklama satırlarıyla değiştirilmiştir. Problem tanımını
okuyun ve örnek sonucu inceleyin; daha sonra da şablon kod üzerinde çalışın. Problem çözme ipuçları’nı
kullanarak /* */ gösterilen açıklama satırlarını Java koduyla değiştirin. Programınızı derleyin ve çalıştırın.
Bulduğunuz sonucu örnek program çıktısıyla karşılaştırın.
2.1 GradeBook Çalışmasının Amacı
Bu çalışmanın amacı aşağıda belirtilen Java programlama konseptlerinin öğrenilmesini sağlamaktır. Bu
çalışmada şu konular incelenecektir:
 instance değişkeni tanımlanması
 instance değişkeninin değerinin değiştirebilmek için set isminde metod yazılması
 Parametre kullanan metodların tanımlanması
2.2 GradeBook Çalışmasının Problem Tanımı
Aşağıda verilen GradeBook program şablonunda şu değişiklileri yapınız.





Dersi veren hocanın ismini temsil eden instructor’s name adında ikinci bir string tipinde instance
variable tanımlayınız.
instructor’s name değiştirebilmek için set isminde bir metod tanımlayınız ve instructor’s name
alabilmek için get isminde başka bir metod tanımlayınız.
Constructor’de gerekli değişiklikleri yaparak iki parametre almasını sağlayınız. Bu parametrelerden
biri course name diğeri ise instructor’s name olmalıdır.
displayMessage metodunu değiştirerek welcome mesajı and course name’i ekrana yazdırınız.Daha
sonra da “This course is presented by: " şeklinde başlayıp instructor’s name ekrana yazan ikinci bir
mesaj tanımlayınız
metoda eklenen yenilikleri yapabilmesi için test application’da gerekli değişiklikleri yapınız.
2.3 GradeBook Çalışmasının Örnek Program Çıktısı
6
2.4 GradeBook Çalışmasının Program Şablonu
Şekil 2.1 GradeBook.java
Şekil 2.2 GradeBookTest.java
7
2.5 GradeBook Çalışması için Problem Çözme İpuçları
1. Gradebook sınıfında dersi veren hocanın ismini temsil eden instructor’s name adında ikinci bir string
tipinde instance variable tanımlayınız.
2. instructor’s name için set isminde yeni bir public metod tanımlayınız. Bu metod herhangi bir değeri geri
göndermesin ama String tipinde bir parameter alsın. set metodunun ana kısmında alınan parametre
instructor’s name’e atansın.
3. instructor’s name almak için get isminde yeni bir public metod tanımlayınız. Bu metod herhangi bir
parametre almasın ama String tipinde tanımlanmış olan instructor’s name geri döndürsün.
4. constructor’de gerekli değişiklikleri yaparak String tipinde iki parametre almasını sağlayınız. Bu
parametrelerden biri course name diğeri ise instructor’s name olmalıdır. instructor’s name temsil eden
parametreyi uygun instance değişkenine (variable) atayınız.
5. displayMessage metoduna daha önceden tanımladığınız instance değişkeninin değerini ekrana
yazdırabilmek için System.out.printf komutu ekleyiniz.
Çalışma 3. Employee Sınıfı Yaratma
3.1 Employee Çalışmasının Amacı
Bu çalışmanın amacı aşağıda belirtilen Java programlama konseptlerinin öğrenilmesini sağlamaktır.
 Sınıf (class) yaratılması
 instance değişkenlerinin tanımlanması
 constructor tanımlanması
 set ve get metodlarının tanımlanması
 başka bir class’ın özelliklerini gösterebilen bir test application yazılması
3.2. Employee Çalışmasının Problem Tanımı
Aşağıda verilen program şablonunu kullanarak Employee isminde bir class yaratınız. Bu yaratılan class ın
özelllikleri şunlar olmalıdır:
1. Bu class üç tane instance değişkeni içermelidir.
 first name (string)
 last name (string)
 monthly salary (double)
2. Bu class’a yukarıdaki üç instance değişkenine ilk değerlerini atayacak bir constructor yazınız.
3. Her instance değişkeni için set ve get metodları yazınız. Eğer monthly salary pozitif değilse, 0.0’a
eşitleyiniz.
4. Yarattığınız Employee class’ın özelliklerini gösteren bir test application yazınız.
5. İki tane Employee object yaratınız ve her Employee’nin yearly salary’sini ekrana yazdırınız.
6. Daha sonra her Employee’nin maaşını %10 artırarak yearly salary’sini tekrardan ekrana yazdırınız.
8
3.3 Employee Çalışmasının Örnek Program Çıktısı
3.4 Employee Çalışmasının Program Şablonu
Şekil 3.1
Employee.java
Şekil 3.2 EmployeeTest.java
9
3.5 Employee Çalışması için Problem Çözme İpuçları
1. Employee sınıfı için üç tane instance değişkeni tanımlayınız.
 first_name (string)
 last_name (string)
 monthly_salary (double)
2. constructor her instance değişkeni için bir parametre istemelidir. Yani constructor toplam üç tane
parametre istemelidir.
3. Her instance değişkeni için public set metodları yazınız. set metodları herhangi bir değer geri
döndürmesin ve herbirinin ilgili instance değişkenine uygun tipte parametresi olsun. (first name ve
last name String tipinde, monthly salary double olsun )
4. Her instance değişkeni için public get metodları yazınız. get metodları herhangi bir parametre
almasın ama ilgili instance değişkenine uygun tipte değer geri döndürsün.
5. constructor test sınıfından çağrıldığı zaman, constructor’ün parametrelerine uygun üç tane argüman
(argument) gönderilmelidir.
6. Her employee’ye verilecek artış için current_salary miktarınının get metodu tarafından alınabilmesı
için bir call gereklidir.Aynı zamanda new_salary’i tanımlamak için kullanılacak olan set metodu için
de bir call gereklidir.
7. monthly_salary dolar cinsindendir. Dolayısıyla salary miktarını ekrana yazdırırken noktadan sonra
sadece iki değer yazılabilmesi için %.2f belirleyicisini kullanınız.
Çalışma 4. Person Sınıfındaki Hataları Bulma
Bu çalışmadaki program kodu hatalar içermektedir. Programın çalışabilmesi için bütün derleme hatalarını
düzeltiniz. Program derlendiğinde, programı çalıştırınız ve sonuçları örnek ekran çıktısıyla karşılaştırınız.
Daha sonra mantıksal hata varsa düzeltiniz. Program doğru şekilde çalıştığında sonuçlar aşağıdaki örnek
program çıktısı gibi olmalıdır.
4.1 Person Çalışmasının Örnek Program Çıktısı
10
4.2 Hatalı Program Kodu
Şekil 4.1 Person.java
11
Şekil 4.2 PersonTest.java
Çalışma 5. Date İsminde Yeni Bir Sınıf Yaratma
Date isminde yeni bir sınıf yaratınız. Bu sınıf üç tane değişken içermelidir:
 month (int)
 day (int)
 year (int)
Yarattığınız sınıfın bu üç değişkene ilk değerlerini atamak için kullanılacak bir constructoru olmalıdır. Her
değişken için birer set ve get metodu tanımlayınız. month, day ve year bilgilerini slash (/) ile ayrılmış şekilde
ekrana yazdırmak için displayDate isminde bir metod tanımlayınız. Aşağıdaki örnek program çıktısını
verebilecek DateTest isminde bir test application yazınız.
12
Download