Fokus HL yang didukung. Target penilaian pertama 2027; PDF resmi mengembalikan 403; brief perolehan lama adalah penilaian akhir 2026. Panduan, persyaratan penilaian, dan praktis lainnya tetap mempertahankan catatan yang tercatat.
Prasyarat: baca kuantitas dan satuan yang disebutkan, gunakan aritmatika, dan kondisi model di bawah ini. Setiap pelajaran mengembangkan metodenya sendiri sebelum transfer mandiri.
Ini adalah contoh pengajaran asli atau fiksi eksplisit, bukan pengukuran aktual atau penyelidikan pembelajaran yang selesai dan dinilai.
7.2
Objek: keadaan, perilaku, dan antarmuka
Apa yang akan menjelaskan observasi ini?
Dua objek model rekening bank dapat merespons operasi deposit yang sama sementara memiliki saldo yang berbeda.
Mulailah dengan prediksi. Nyatakan besaran atau fitur apa yang akan Anda bandingkan, lalu tentukan bukti apa yang dapat membedakan dua penjelasan.
Bangun modelnya
Sebuah kelas mendefinisikan tipe dengan keadaan dan perilaku. Sebuah objek adalah instans. Enkapsulasi mengontrol akses melalui antarmuka agar operasi dapat mempertahankan invarian. Pewarisan memodelkan hubungan tipe yang sesuai; komposisi memodelkan objek yang mengandung atau menggunakan objek lain.
enkapsulasi: Mengontrol akses ke status melalui antarmuka; instance: Objek individu dari sebuah kelas.
Pilih bukti yang dapat mengujinya
Panggilan kaedah bertindak ke atas satu实例 tertentu. Perubahan keadaan harus memenuhi pra-syarat dan pasca-syarat. Polimorfisme membolehkan kod menggunakan antaramuka bersama dengan implementasi berbeza apabila kontrak dihormati.
Terapkan model akaun atau inventori sintetik yang kecil. Uji dua instance bebas, tolak operasi tidak sah dan nilai sempadan. Jauhkan model ini daripada akaun kewangan sebenar dan kelayakan akses.
Bekerja dari kuantitas yang diketahui
Nyatakan nilai yang diketahui dan unitnya. Pilih hubungan kerana asumsinya sesuai dengan kes ini, kemudian susun semula sebelum menggantikan.
Diketahui: objek A dimulai pada 40 unit dan menerima 15; objek B dimulai pada 20 dan menerima 5. Saldo akhir adalah 55 dan 25. Jumlah totalnya adalah 80, namun saldo objek individu mana pun bukan 80.
Contoh:
Satu instance bermula pada 12 unit, menambah 8 dan menyingkirkan 3. Cari nilainya yang akhir. Gunakan urutan yang sama: kuantiti diketahui → model → hubungan → substitusi → unit dan tafsiran.
Periksa kesimpulan dan batasannya
Satu kelas bukan perkara yang sama dengan satu instance. Pewarisan tidak secara automatik lebih baik daripada komposisi. Menyembunyikan medan saja tidak membuktikan bahawa semua operasi mengekalkan keadaan yang sah.
Kembali ke pengamatan awal. Jelaskan apa hasil tersebut mendukung, kondisi apa yang diasumsikannya, dan satu cara untuk menguji penjelasan saingan.
Peringatan:
Dua instance bagi satu kelas mesti selalu berkongsi satu baki. Klaim ini adalah salah: Satu kelas bukan perkara yang sama dengan satu instance. Pewarisan tidak secara automatik lebih baik daripada komposisi. Menyembunyikan medan saja tidak membuktikan bahawa semua operasi mengekalkan keadaan yang sah.
Kunci:
Objek: keadaan, tingkah laku dan antaramuka: Panggilan kaedah bertindak ke atas satu instance tertentu. Perubahan keadaan harus memenuhi pra-syarat dan pasca-syarat. Polimorfisme membolehkan kod menggunakan antaramuka bersama dengan implementasi berbeza apabila kontrak dihormati.
Jejak dan batas dapat dijalankan
class Account:
def __init__(self, balance):
self.balance = balance
def withdraw(self, amount):
if amount < 0 or amount > self.balance:
return False
self.balance -= amount
return True
a, b = Account(15), Account(20)
print(a.withdraw(30), a.balance, b.balance)
print(a.withdraw(15), a.balance, b.balance)
Output yang diharapkan:
False 15 20
True 0 20
Penolakan terjadi sebelum mutasi. Dengan saldo awal nonnegatif, penarikan dana yang divalidasi menjaga balance≥0. Kelas pengajaran kecil ini mengekspos atribut; desain produksi harus mengendalikan semua jalur mutasi, bukan berasumsi bahwa metode saja menerapkan enkapsulasi.