Uygulama
Tasarımı çalışan koda dönüştürün: temel sınıfı tanımlayın, somut şekilleri uygulayın ve karışık bir listeden sonuçları yazdırın.
Uygulama, CoddyKit'te ücretsiz bir Java Academy dersidir. Bu, 3 dersinin 2. dersidir. Aşağıdan dersin tamamını ücretsiz okuyabilir, sonra tarayıcıda yerleşik kod editörü ve 7/24 yapay zeka koçu ile uygulamalı olarak pratik yapabilirsin. Bu, Java Academy öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. Java Academy kursu toplamda 3 dersten oluşur.
Plan özeti
Önce area() ve perimeter() yöntemlerine sahip temel Shape sınıfını yazacak, ardından Circle ve Rectangle sınıflarını ekleyeceğiz. Adları kısa, matematiği okunabilir tutun ve yazdırma işlemi için küçük yardımcı yöntemleri tercih edin.
Kod: temel sınıf ve Circle
Temel sınıf uygulama programlama arayüzünü ve küçük bir info() yardımcısını tanımlar. Circle, matematiği ve anlaşılır çıktı için toString() yöntemini uygular.
public class Main {
// Base class with a tiny print helper
static abstract class Shape {
abstract double area();
abstract double perimeter();
String info() {
return String.format("area=%.2f, per=%.2f", area(), perimeter());
}
}
static class Circle extends Shape {
double radius;
Circle(double r) {
// simple guard to avoid negative sizes for beginners
radius = (r < 0) ? 0 : r;
}
double area() { return Math.PI * radius * radius; }
double perimeter() { return 2 * Math.PI * radius; }
public String toString() { return "Circle " + info(); }
}
public static void main(String[] args) {
Shape s = new Circle(2.5);
System.out.println(s); // prints Circle area/perimeter
}
}
Kurucular ve korumalar
Kurucular alanları ayarlar. Başlangıç düzeyinde, negative girdileri sıfıra çekerek bunlara karşı koruma ekleyin. Gerçek uygulamalarda doğrulama veya istisnalar kullanılır; burada ise basit tutuyoruz.
Kod: Rectangle ekleme
Rectangle hiyerarşiye katılır ve aynı uygulama programlama arayüzünü kullanır. Temel sınıf sözleşmeyi tanımladığı için her iki şeklin de aynı kodla yazdırılabildiğine dikkat edin.
public class Main {
static abstract class Shape {
abstract double area();
abstract double perimeter();
String info() { return String.format("area=%.2f, per=%.2f", area(), perimeter()); }
}
static class Circle extends Shape {
double radius;
Circle(double r) { radius = (r < 0) ? 0 : r; }
double area() { return Math.PI * radius * radius; }
double perimeter() { return 2 * Math.PI * radius; }
public String toString() { return "Circle " + info(); }
}
static class Rectangle extends Shape {
double w, h;
Rectangle(double w, double h) {
this.w = (w < 0) ? 0 : w;
this.h = (h < 0) ? 0 : h;
}
double area() { return w * h; }
double perimeter() { return 2 * (w + h); }
public String toString() { return "Rectangle " + info(); }
}
public static void main(String[] args) {
Shape a = new Circle(3.0);
Shape b = new Rectangle(4.0, 2.0);
System.out.println(a);
System.out.println(b);
}
}
Listeler ve yazdırma
Bir Shape listesi, Circle ve Rectangle nesnelerini birlikte tutmamızı sağlar. Basit bir döngü her öğeyi yazdırabilir. Mobil çıktı için her satırda bir şekil bulundurun ve sayıları iki ondalık basamağa format edin.
Kod: küçük rapor
Rapor: Küçük bir döngü, her şekil için türü ve özeti yazdırır. Çok biçimlilik döngüyü temiz tutarken her şekil kendi matematiğini sağlar.
public class Main {
static abstract class Shape {
abstract double area();
abstract double perimeter();
String label() { return getClass().getSimpleName(); }
String info() { return String.format("area=%.2f, per=%.2f", area(), perimeter()); }
}
static class Circle extends Shape {
double radius;
Circle(double r) { radius = (r < 0) ? 0 : r; }
double area() { return Math.PI * radius * radius; }
double perimeter() { return 2 * Math.PI * radius; }
}
static class Rectangle extends Shape {
double w, h;
Rectangle(double w, double h) { this.w = (w < 0) ? 0 : w; this.h = (h < 0) ? 0 : h; }
double area() { return w * h; }
double perimeter() { return 2 * (w + h); }
}
public static void main(String[] args) {
Shape[] shapes = { new Circle(1.2), new Rectangle(2.0, 3.0), new Circle(0.5) };
for (int i = 0; i < shapes.length; i = i + 1) {
Shape s = shapes[i];
System.out.println(s.label() + " -> " + s.info());
}
}
}
Uygulama denetimi
Hızlı kontrol: Bu hiyerarşide her somut şekil için ne gereklidir?
Özet
Özet: Shape, Circle ve Rectangle sınıflarını yazdık; basit korumalar ekledik ve farklı şekillerden oluşan bir listeden küçük bir rapor yazdırdık. Sonraki ders: area değerine göre sıralama gibi çok biçimli davranışlar.
Sıkça Sorulan Sorular
“Uygulama” dersi ücretsiz mi?
Evet — “Uygulama” dersin tüm metni burada web'de ücretsiz olarak okunabilir. Etkileşimli olarak pratik yapmak (yerleşik kod editörü ve 7/24 yapay zeka koçu) ve Java Academy kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. Java Academy kursu toplamda 3 dersten oluşur.
“Uygulama” dersinde ne öğreneceğim?
Tasarımı çalışan koda dönüştürün: temel sınıfı tanımlayın, somut şekilleri uygulayın ve karışık bir listeden sonuçları yazdırın. Java Academy ile uygulamalı kodu tarayıcıda doğrudan çalıştırarak pratik yaparsın ve 7/24 yapay zeka koçu dersi çalışırken sorularını yanıtlar.
Java Academy öğrenmeye başlamak için deneyim gerekli mi?
Önceden deneyim gerekmez. CoddyKit'te Java Academy, başlangıçtan ileri seviyeye kadar yapılandırıldığı için buradan başlayabilir veya başından başlayıp kendi hızında ilerleme yapabilirsin. Bu, 3 dersinin 2. dersidir.
“Uygulama” dersi ne kadar sürer?
Çoğu CoddyKit dersi yaklaşık 5–10 dakika sürer. Her biri kısa ve etkileşimli olduğu için sabit ilerleme yaparsın ve web ile uygulama arasında tam olarak bıraktığın yerden devam edebilirsin.
Bu Java Academy dersinde kod yazıp çalıştırabilir miyim?
Evet. Her Java Academy dersi yerleşik bir kod editörü içerir, bu sayede tarayıcıda gerçek kod yazıp çalıştırabilir ve anlık yapay zeka geri bildirimi alırsın — yerel kurulum gerekli değildir.
Bu kursun tüm dersleri
- Tasarım
- Uygulama
- Çok Biçimli Davranışlar