Java Academy · Pelajaran

Reka Bentuk

Rancang hierarki: pilih asas abstrak, senaraikan bentuk konkrit, pilih medan dan kaedah serta takrifkan operasi polimorfik yang ringkas.

Pelajaran 1 daripada 38 langkah

Reka Bentuk ialah pelajaran Java Academy percuma di CoddyKit. Ini ialah pelajaran 1 daripada 3. Anda boleh membaca keseluruhan pelajaran di bawah secara percuma — kemudian berlatih secara praktikal dalam pelayar menggunakan penyunting kod terbina dalam dan tutor kecerdasan buatan 24/7. Pelajaran ini merupakan sebahagian daripada laluan pembelajaran Java Academy, dan kemajuan anda disegerakkan merentas web serta aplikasi CoddyKit. Kursus Java Academy merangkumi sejumlah 3 pelajaran.

Matlamat dan skop

Matlamat: Bina hierarki bentuk kecil dengan asas abstract (Shape) dan beberapa bentuk konkrit (Circle, Rectangle). Kami akan mereka bentuk operasi umum terlebih dahulu, kemudian mengesahkan rancangan itu dengan prototaip kod yang ringkas.

Bentuk dan medan

Bentuk: Circle (jejari), Rectangle (lebar, tinggi). Simpan medan hanya di tempat yang sepatutnya: jejari dalam Circle, lebar dan tinggi dalam Rectangle. Kelas asas menyimpan kontrak tingkah laku, bukannya setiap medan.

Operasi dan polimorfisme

Operasi umum: area() dan perimeter(). Kami mengisytiharkannya dalam Shape supaya mana-mana Shape boleh menjawab panggilan ini. Kemudian, satu senarai Shape boleh menyimpan objek Circle dan Rectangle yang bercampur lalu memprosesnya secara seragam.

Kod: lakaran antara muka

Prototaip 1: Takrifkan Shape dengan area dan perimeter, serta Circle yang ringkas. Ini memeriksa bahawa antara muka yang dikongsi berfungsi untuk satu jenis konkrit.

public class Main {
  // Minimal API sketch to validate the design
  static abstract class Shape {
    abstract double area();
    abstract double perimeter();
  }

  static class Circle extends Shape {
    double radius;
    Circle(double r) { radius = r; }
    double area() { return Math.PI * radius * radius; }
    double perimeter() { return 2 * Math.PI * radius; }
  }

  public static void main(String[] args) {
    Shape s = new Circle(2.0);
    System.out.println("area=" + s.area());
    System.out.println("perimeter=" + s.perimeter());
  }
}

Koleksi dan pelaporan

Kemudian, kami akan menyimpan bentuk dalam satu senarai dan mencetak ringkasan seperti jenis, area dan perimeter. Pemformat kecil memastikan keluaran mudah dibaca pada peranti mudah alih: satu bentuk setiap baris, dibundarkan kepada dua tempat perpuluhan.

Kod: senarai bentuk

Prototaip 2: Campurkan Circle dan Rectangle dalam satu tatasusunan Shape, kemudian cetak setiap satunya. Kaedah asas membolehkan pengendalian seragam melalui polimorfisme.

public class Main {
  static abstract class Shape {
    abstract double area();
    abstract double perimeter();
    String info() {
      // default helper for neat printing
      return String.format("area=%.2f, per=%.2f", area(), perimeter());
    }
  }
  static class Circle extends Shape {
    double radius;
    Circle(double r) { radius = 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; this.h = 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[] arr = { new Circle(2.0), new Rectangle(3.0, 4.0) };
    for (int i = 0; i < arr.length; i = i + 1) {
      System.out.println(arr[i]);
    }
  }
}

Semakan reka bentuk asas

Semakan pantas: Item manakah yang patut berada dalam kelas asas abstract Shape untuk projek ini?

Rumusan

Rumusan: Kelas asas mengisytiharkan area dan perimeter. Subkelas menyimpan data khusus bentuk dan melaksanakan pengiraan matematik. Senarai Shape membolehkan kami mencetak bentuk bercampur menggunakan satu gelung.

Percuma untuk bermula

Pelajari Java dengan tutor kecerdasan buatan — percuma

Tulis dan jalankan kod sebenar dalam pelayar anda, dapatkan bantuan segera daripada tutor kecerdasan buatan yang tersedia 24/7, dan sambung semula dari tempat anda berhenti di web atau dalam aplikasi.

Kursus
104
Pelajaran
374

Soalan Lazim

Adakah pelajaran “Reka Bentuk” percuma?

Ya — teks penuh “Reka Bentuk” boleh dibaca secara percuma di web ini. Untuk berlatih secara interaktif menggunakan penyunting kod terbina dalam dan tutor kecerdasan buatan 24/7, serta membuka kunci baki kursus Java Academy, tingkat taraf kepada CoddyKit PRO. Kursus Java Academy merangkumi sejumlah 3 pelajaran.

Apakah yang akan saya pelajari dalam “Reka Bentuk”?

Rancang hierarki: pilih asas abstrak, senaraikan bentuk konkrit, pilih medan dan kaedah serta takrifkan operasi polimorfik yang ringkas. Anda berlatih Java Academy menggunakan kod praktikal yang dijalankan terus dalam pelayar, manakala tutor kecerdasan buatan 24/7 menjawab soalan anda semasa anda mengikuti pelajaran.

Adakah saya memerlukan pengalaman untuk memulakan Java Academy?

Tiada pengalaman terdahulu diperlukan. Pembelajaran Java Academy di CoddyKit disusun untuk pelajar daripada peringkat pemula hingga lanjutan, jadi anda boleh bermula di sini atau dari awal dan belajar mengikut kadar anda sendiri. Ini ialah pelajaran 1 daripada 3.

Berapa lamakah pelajaran “Reka Bentuk” diambil?

Kebanyakan pelajaran CoddyKit mengambil masa kira-kira 5–10 minit. Setiap pelajaran ringkas dan interaktif, jadi anda boleh membuat kemajuan secara berterusan dan menyambung tepat dari tempat anda berhenti di web atau aplikasi.

Bolehkah saya menulis dan menjalankan kod dalam pelajaran Java Academy ini?

Ya. Setiap pelajaran Java Academy menyertakan penyunting kod terbina dalam, jadi anda boleh menulis dan menjalankan kod sebenar terus dalam pelayar serta menerima maklum balas kecerdasan buatan serta-merta — tanpa memerlukan persediaan setempat.

Semua pelajaran dalam kursus ini

  1. Reka Bentuk
  2. Pelaksanaan
  3. Tingkah Laku Polimorfik
← Kembali ke Java Academy