0Pricing
C# Academy · Pelajaran

Rancangan (antarmuka dan pewarisan)

Rancang API Shape sederhana dengan sebuah antarmuka dan kelas dasar kecil; tentukan bagian yang termasuk kontrak dan bagian yang merupakan detail implementasi.

Rancangan (antarmuka dan pewarisan) adalah pelajaran C# Academy gratis di CoddyKit. Ini adalah pelajaran 1 dari 3. Kamu bisa membaca pelajaran lengkapnya di bawah secara gratis — lalu praktikkan langsung di browser dengan editor kode bawaan dan tutor AI 24/7. Ini adalah bagian dari jalur belajar C# Academy, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus C# Academy mencakup 3 pelajaran total.

Ikhtisar proyek

Tujuan: Menentukan kontrak kecil dan jelas untuk bentuk.

  • Gunakan sebuah antarmuka untuk perilaku.
  • Jaga permukaannya tetap minimal.
  • Izinkan banyak bentuk untuk dipasang.

Kontrak terlebih dahulu

Buat kontrak kecil IShape dengan Area() dan Perimeter(). Utilitas dapat bergantung pada antarmuka tersebut.

using System;

// Interface: minimal behavior all shapes must provide
public interface IShape
{
  double Area();
  double Perimeter();
}

// A tiny helper to print any IShape
public static class ShapePrinter
{
  public static void Print(IShape s)
  {
    Console.WriteLine("A=" + s.Area() + " P=" + s.Perimeter());
  }
}

public class Program
{
  public static void Main(string[] args)
  {
    // No concrete shapes yet; interface compiles and is ready.
    Console.WriteLine("Shape API ready");
  }
}

Kelas dasar opsional

Anda dapat menambahkan basis abstrak kecil untuk pembantu bersama, tetapi pertahankan antarmuka sebagai kontrak resmi.

using System;

// Optional base for helpers; interface stays the main contract
public abstract class ShapeBase : IShape
{
  public abstract double Area();
  public abstract double Perimeter();

  // Shared rounding helper
  protected double Round2(double x)
  {
    return Math.Round(x, 2);
  }
}

public class Program
{
  public static void Main(string[] args)
  {
    Console.WriteLine("Base class prepared for shared helpers");
  }
}

Bentuk konkret

Bentuk konkret mengimplementasikan antarmuka. Klien dapat memperlakukannya secara seragam melalui IShape.

using System;

public interface IShape
{
  double Area();
  double Perimeter();
}

public class Rectangle : IShape
{
  private readonly double _w, _h;
  public Rectangle(double w, double h) { _w = w; _h = h; }
  public double Area() { return _w * _h; }
  public double Perimeter() { return 2 * (_w + _h); }
}

public class Circle : IShape
{
  private readonly double _r;
  public Circle(double r) { _r = r; }
  public double Area() { return 3.14159 * _r * _r; }
  public double Perimeter() { return 2 * 3.14159 * _r; }
}

public class Program
{
  public static void Main(string[] args)
  {
    IShape a = new Rectangle(3, 4);
    IShape b = new Circle(2);
    Console.WriteLine("Rect A=" + a.Area() + " P=" + a.Perimeter());
    Console.WriteLine("Circ A=" + b.Area() + " P=" + b.Perimeter());
  }
}

Kumpulan IShape

Gunakan List<IShape> untuk menyimpan banyak bentuk dan memprosesnya dengan cara yang sama.

using System;
using System.Collections.Generic;

public interface IShape
{
  double Area();
  double Perimeter();
}

public class Rectangle : IShape
{
  private readonly double _w, _h;
  public Rectangle(double w, double h) { _w = w; _h = h; }
  public double Area() { return _w * _h; }
  public double Perimeter() { return 2 * (_w + _h); }
}

public class Circle : IShape
{
  private readonly double _r;
  public Circle(double r) { _r = r; }
  public double Area() { return 3.14159 * _r * _r; }
  public double Perimeter() { return 2 * 3.14159 * _r; }
}

public class Program
{
  public static void Main(string[] args)
  {
    List<IShape> shapes = new List<IShape>();
    shapes.Add(new Rectangle(2, 5));
    shapes.Add(new Circle(1.5));

    foreach (IShape s in shapes)
    {
      Console.WriteLine("A=" + s.Area() + " P=" + s.Perimeter());
    }
  }
}

Daftar periksa rancangan

Daftar periksa:

  • Antarmuka adalah kontrak (kecil dan jelas).
  • Bentuk konkret menyimpan bidang sebagai pribadi.
  • Gunakan double untuk perhitungan sederhana; pertahankan konstanta tetap lokal.
  • Utamakan polimorfisme daripada pemeriksaan tipe.

Pilihan kontrak

Pemeriksaan singkat: Untuk pustaka bentuk yang harus bekerja dengan banyak bentuk berbeda, apa yang seharusnya disediakan oleh kontrak publik?

Ringkasan

Ringkasan: Tentukan antarmuka kecil IShape, jaga agar bagian dalam tetap pribadi, dan gunakan kumpulan antarmuka untuk pemrosesan polimorfis.

Pertanyaan yang Sering Diajukan

Apakah pelajaran “Rancangan (antarmuka dan pewarisan)” gratis?

Ya — teks lengkap “Rancangan (antarmuka dan pewarisan)” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus C# Academy, upgrade ke CoddyKit PRO. Kursus C# Academy mencakup 3 pelajaran total.

Apa yang akan aku pelajari di “Rancangan (antarmuka dan pewarisan)”?

Rancang API Shape sederhana dengan sebuah antarmuka dan kelas dasar kecil; tentukan bagian yang termasuk kontrak dan bagian yang merupakan detail implementasi. Kamu berlatih C# Academy dengan kode praktik yang langsung kamu jalankan di browser, dan tutor AI 24/7 menjawab pertanyaanmu saat kamu mengerjakan pelajaran ini.

Apakah aku perlu pengalaman untuk memulai C# Academy?

Tidak diperlukan pengalaman sebelumnya. C# Academy di CoddyKit dirancang untuk pemula hingga pelajar tingkat lanjut, jadi kamu bisa memulai di sini atau dari awal dan belajar sesuai kecepatan kamu sendiri. Ini adalah pelajaran 1 dari 3.

Berapa lama pelajaran “Rancangan (antarmuka dan pewarisan)” memakan waktu?

Sebagian besar pelajaran CoddyKit memakan waktu sekitar 5–10 menit. Setiap pelajaran ringkas dan interaktif, jadi kamu membuat kemajuan stabil dan melanjutkan dari tempat kamu tinggalkan di web dan aplikasi.

Bisakah aku menulis dan menjalankan kode dalam pelajaran C# Academy ini?

Ya. Setiap pelajaran C# Academy menyertakan editor kode bawaan, jadi kamu menulis dan menjalankan kode nyata langsung di browser dan mendapatkan umpan balik AI instan — tidak diperlukan penyiapan lokal.

Semua pelajaran dalam kursus ini

  1. Rancangan (antarmuka dan pewarisan)
  2. Implementasi dan pengujian
  3. Perilaku polimorfik
← Kembali ke C# Academy