Mustafa Karaköy Değişik kitap çeşitleri için Kitap isimli bir sınıf

advertisement
2012-2013 Bahar Dönemi BIL 141 Kalıtım Lab Alıştırmaları
Değişik kitap çeşitleri için Kitap isimli bir sınıf tanımlanacaktır. Bu sınıf; kitap ismini tutan isim, kitap fiyatını
tutan fiyat ve "kucuk", "orta" ve "buyuk" değerlerinden birini alabilecek kitap boyutu bilgisini tutan
boyut değişkenlerine sahip olacaktır. Ancak, bu sınıftan nesneler oluşturulmayacak / oluşturulamayacak,
sınıf daha sonra türetilecek sınıflara temel teşkil edecektir. Ayrıca, sınıf değişkenlerine, sınıf dışından
erişilemeyecek, ve tüm bu sınıf değişkenlerine değer atayan ve sınıf dışından erişilebilecek tek bir nesne
kurucu (constructor) tanımlanacaktır. Yine sınıf değişkenleri sayısında parametre alan ve bunları sınıf
değişkenlerine atayan bir Set isimli metot ve isim ve fiyat değişkenlerine değer atayan yine Set isimli
diğer bir metot olmak üzere 2 set metotu tanımlanırken; sınıf değişkenlerinin her biri için ayrı ayrı get
metotları tanımlanacaktır. Son olarak, Kitap sınıfı içerisinde KitapTuru isimli ve dışardan erişilebilen bir
metot tanımlanacaktır. Bu metot parametre almayacak ve değer olarak "belirsiz" değeri döndürecektir.
a. Kitap isimli bu sınıfı tanımlayan java kodunu yazınız.
b. Kitap sınıfından DersKitabi, DersKitabi sınıfından LiseKitabi sınıfı türetilecektir.
LiseKitabi için sadece isim ve fiyat değerlerini parametre olarak alan nesne kurucu
tanımlanacaktır. DersKitabi nesne kurucusu, nesneleri oluştururken boyut değişkeni değerini
"orta" yapacak, LiseKitabi nesne kurucusu ise, nesneleri oluştururken boyut değişkeni
değerini "kucuk" yapacaktır. Yine bu sınıflar KitapTuru isimli metotu yeniden yapılandıracaklar;
DersKitabi sınıfı nesneleri üzerinden bu metot çağrıldığında "ders" değerini, LiseKitabi sınıfı
nesneleri üzerinden bu metot çağrıldığında ise "lise ders" değerini döndürecektir. Bu sınıfları
tanımlayan java kodunu yazınız.
c. Bu sınıf ve metotlarını kullanarak; main() metot içinde, 60 TL değerinde “Thinking in Java” başlıklı ve
30 TL değerinde “Lise 1 Matematik” başlıklı kitaplar için nesneler oluşturan ve kitap bilgilerini
aşağıdaki gibi yazan bir java programı yazınız (Not. Çıktıdaki koyu bölümler metotlar üzerinden
sağlanacak bilgileri vurgulamak içindir).
Thinking in Java 60 TL degerinde orta boy bir kitaptir.
Lise 1 Matematik 30 TL degerinde kucuk boy bir kitaptir.
d. Bir Kitap nesnesini parametre olarak alan ve ilgili kitabın isim ve türünü yazan, KitapTurYaz
isminde static bir metot yazınız. Daha sonra, main() metot içine daha önce oluşturulan nesneler
için bu metotu çağıran java kodunu ekleyiniz. Örneğin yukarıdaki ikinci nesne ise metotun çıktısı
aşağıdaki gibi olmalıdır:
Lise 1 Matematik bir lise ders kitabidir.
e. Kitap sınıfına KitapTurYaz ile aynı isimde ve parametre almadan aynı işi yapan bir metot ekleyiniz
ve main()metotu, önceki yerine bu yeni metotu kullanacak şekilde değiştiriniz.
f. Önceki KitapTurYaz metotunun parametre türünü Kitap[] (yani Kitap nesneleri dizisi) olarak
değiştiriniz. main() metot içini, daha önce oluşturulan nesneler için bu metotu kullanacak şekilde
değiştiriniz.
Mustafa Karaköy
Sayfa 1/1
Download