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ğin 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ı aynı biçimde hesaplayıp görüntülemek için polimorfizmi kullanacaksın.

Kodunu dört dosya arasında düzenleyeceksin:

  • Shape.java: Tüm şekillerin temeli olarak görev yapan soyut bir sınıf oluştur. Her şeklin bir name alanı (String) vardır. Bu alanı başlatmak için bir kurucu, bir getter yöntemi olan getName() ve double döndüren soyut bir getArea() yöntemi ekle. Ayrıca şunu döndüren bir describe() yöntemi ekle: [name]: [area] (burada area, String.format("%.2f", getArea()) kullanılarak 2 ondalık basamakla biçimlendirilir).
  • Circle.java: Shape sınıfını genişleten somut bir sınıf oluştur. Dairelerin bir radius alanı (double) vardır. İsim olarak "Circle" değerini geçirmek için super kullan. Alanı Math.PI * radius * radius ifadesini kullanarak döndürecek şekilde getArea() yöntemini uygula.
  • Rectangle.java: Shape sınıfını genişleten başka bir somut sınıf oluştur. Dikdörtgenlerin width ve height alanları (ikisi de double) vardır. Üst sınıf kurucusuna isim olarak "Rectangle" değerini geçir. getArea() yöntemini, width ile height değerlerinin çarpımını döndürecek şekilde uygula.
  • Main.java: Polimorfizmi uygulamalı olarak gösteren bir şekil hesaplayıcı oluştur. Üç girdi alacaksın: dairenin yarıçapı, dikdörtgenin genişliği ve yüksekliği.

    Bir Circle ve bir Rectangle oluştur, ardından bunları Shape referanslarından oluşan bir dizide sakla. Dizi üzerinde döngü kur ve her şekil için describe() yöntemini kullanarak açıklamasını yazdır.

    Döngüden sonra, şu biçimde tüm şekillerin toplam alanını hesaplayıp yazdır: Total area: [sum] (bu değer de 2 ondalık basamakla biçimlendirilir). Alanları toplamak için ayrı bir döngü veya bir accumulator kullan ve her şekil referansı üzerinde getArea() çağrısı yap.

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

Çıktın üç 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ı şekilleri nasıl aynı biçimde ele alabileceğine dikkat et!

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

Kendi başına pratik yap: Online Java derleyicisi