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