Menu
Coddy logo textTech

Özet - Şekil Hesaplayıcı

Coddy'nin Java Journey'sinin Nesne Yönelimli Programlama bölümünün bir parçası — ders 33 / 87.

challenge icon

Görev

Kolay

Bu bölümde öğrendiğiniz tüm polimorfizm kavramlarını bir araya getiren bir şekil hesaplayıcı oluşturalım. Somut alt sınıflara sahip soyut bir Shape sınıfı oluşturacak, ardından alanları tek tip bir şekilde hesaplamak ve görüntülemek için polimorfizmi kullanacaksınız.

Kodunuzu dört dosya halinde düzenleyeceksiniz:

  • Shape.java: Tüm şekiller için temel teşkil eden soyut bir sınıf oluşturun. Her şeklin bir name alanı (String) vardır. Bunu başlatmak için bir yapıcı (constructor), bir getter metodu getName() ve double döndüren soyut bir getArea() metodu ekleyin. Ayrıca şu formatı döndüren bir describe() metodu ekleyin: [name]: [area] (burada alan, String.format("%.2f", getArea()) kullanılarak 2 ondalık basamağa biçimlendirilmelidir).
  • Circle.java: Shape sınıfını genişleten somut bir sınıf oluşturun. Dairelerin bir radius alanı (double) vardır. İsim olarak "Circle" değerini iletmek için super kullanın. Alanı Math.PI * radius * radius kullanarak döndürmek için getArea() metodunu uygulayın.
  • Rectangle.java: Shape sınıfını genişleten başka bir somut sınıf oluşturun. Dikdörtgenlerin width ve height alanları (her ikisi de double) vardır. Üst sınıf yapıcısına isim olarak "Rectangle" değerini iletin. Genişlik ile yüksekliğin çarpımını döndürmek için getArea() metodunu uygulayın.
  • Main.java: Polimorfizmi iş başında gösteren bir şekil hesaplayıcı oluşturun. Üç girdi alacaksınız: daire için bir yarıçap, dikdörtgen için bir genişlik ve bir yükseklik.

    Bir Circle ve bir Rectangle oluşturun, ardından bunları bir Shape referans dizisinde saklayın. Diziyi döngüye alın ve her şekil için describe() metodunu kullanarak açıklamasını yazdırın.

    Döngüden sonra, tüm şekillerin toplam alanını şu formatta hesaplayın ve yazdırın: Total area: [sum] (bu da 2 ondalık basamağa biçimlendirilmelidir). Her bir şekil referansı üzerinde getArea() metodunu çağırarak alanları toplamak için ayrı bir döngü veya biriktirici (accumulator) kullanın.

Üç girdi alacaksınız: dairenin yarıçapı (double), dikdörtgenin genişliği (double) ve dikdörtgenin yüksekliği (double).

Çıktınız üç satır göstermelidir - her şekil için bir açıklama ve ardından toplam alan. Her şekil kendi alanını kendi yöntemiyle hesaplarken, soyut Shape türü aracılığıyla farklı şekillere nasıl tek tip davranabildiğinize dikkat edin!

Kendin dene

import java.util.Scanner;

class Main {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        
        // Girdileri oku
        double radius = scanner.nextDouble();
        double width = scanner.nextDouble();
        double height = scanner.nextDouble();
        
        // TODO: Yarıçapı kullanarak bir Circle nesnesi oluşturun
        
        // TODO: Genişlik ve yüksekliği kullanarak bir Rectangle nesnesi oluşturun
        
        // TODO: Shape referanslarından oluşan bir dizi oluşturun ve her iki şekli de içinde saklayın
        
        // TODO: Dizi üzerinde döngü kurun ve describe() kullanarak her şeklin açıklamasını yazdırın
        
        // TODO: Tüm şekillerin toplam alanını hesaplayın
        // Her şekil üzerinde getArea() metodunu çağırarak alanları toplamak için bir döngü veya biriktirici kullanın
        
        // TODO: Toplam alanı şu formatta yazdırın: "Total area: [sum]"
        // Biçimlendirme için String.format("%.2f", totalArea) kullanın
    }
}

Nesne Yönelimli Programlama bölümündeki tüm dersler