method
Termasuk bagian Pemrograman Berorientasi Objek dalam perjalanan GDScript di Coddy. Pelajaran 5 dari 65.
Fungsi yang dideklarasikan di dalam class disebut method: sesuatu yang dapat dilakukan oleh object dari class tersebut. Seperti fungsi lainnya, method dapat menerima parameter dan mengembalikan nilai, serta dapat membaca dan mengubah variabel milik object:
# score_board.gd
class_name ScoreBoard
extends RefCounted
var points: int = 0
func greet() -> void:
print("Scoreboard ready")
func add(amount: int) -> void:
points += amount
func doubled() -> int:
return points * 2
func add_bonus() -> int:
add(10)
return pointsPanggil method pada object dengan titik, lalu teruskan argumen di dalam tanda kurung:
var board := ScoreBoard.new()
board.greet() # Papan skor siap
board.add(5)
print(board.doubled()) # 10
print(board.add_bonus()) # 15Di dalam class, sebuah method memanggil method lain dari object yang sama dengan namanya: add(10) di add_bonus() berarti self.add(10).
method yang dideklarasikan dengan -> void tidak mengembalikan apa pun, sedangkan method yang dideklarasikan dengan -> int harus mengembalikan int. Setiap pemanggilan bekerja pada object-nya sendiri: board.add(5) mengubah board.points dan tidak mengubah scoreboard lain.
Pemanggilan harus sesuai dengan deklarasi: board.add() tanpa argumen adalah error yang dilaporkan sebelum program dijalankan.
Tantangan
MudahLengkapi method dari class BankAccount di bank_account.gd. Akun menyimpan uangnya dalam variabel balance, yang dimulai dari 0.
deposit(amount)menambahkanamountke saldowithdraw(amount)mengurangi saldo sebesaramountdan mengembalikantrue. Jikaamountlebih besar dari saldo, nilainya tidak berubah dan fungsi mengembalikanfalseget_balance()mengembalikan saldo
Kode yang disediakan membaca jumlah perintah berikutnya, lalu membaca satu perintah di setiap baris: deposit AMOUNT atau withdraw AMOUNT. Kode tersebut mencetak satu baris untuk setiap perintah dan saldo akhir. Untuk deposit 50 dan withdraw 80, kode tersebut mencetak:
Deposited 50
Not enough money for 80
Current balance: $50Tulis kodemu di bank_account.gd. main.gd berisi kode input/output yang disediakan dan tidak dapat diedit.
Coba sendiri
extends Node
func _ready():
# Kode input/output yang disediakan: biarkan tetap seperti ini
var account := BankAccount.new()
var count := int(OS.read_string_from_stdin())
for i in count:
var parts := OS.read_string_from_stdin().split(" ")
var amount := int(parts[1])
if parts[0] == "deposit":
account.deposit(amount)
print("Deposited %d" % amount)
elif account.withdraw(amount):
print("Withdrew %d" % amount)
else:
print("Not enough money for %d" % amount)
print("Current balance: $%d" % account.get_balance())
Pelajaran ini berisi kuis singkat. Mulai pelajarannya untuk menjawab kuis dan melacak progresmu.
Semua pelajaran di Pemrograman Berorientasi Objek
1Dasar-Dasar OOP
File EksternalPengantar OOPclass dan objectKata Kunci selfmethodpropertyKonstruktor (_init)Ringkasan: Kalkulator Sederhana4Polimorfisme
Method Overriding Sekali LagiDuck TypingKelas Abstrak dan MethodDesain InterfaceRingkasan: Kalkulator Bentuk7Sinyal
Apa itu Sinyal?Mendeklarasikan dan MemancarkanMenghubungkan ke SinyalSinyal dengan ArgumenRangkuman, Sistem Kesehatan10Pola Desain Bagian 2
Pola CommandPola AdapterPola DecoratorPola Template MethodPola StatePola Composite2Property class
Variabel instance vs. variabel statisFungsi statisSetter propertyGetter propertyPrivat berdasarkan konvensiRangkuman: Pengelola Rekening Bank5Enkapsulasi
Member Publik dan PrivatValidasi dengan SetterPenyembunyian InformasiProperty Hanya-BacaRingkasan: Sistem Catatan Siswa8Konsep OOP Lanjutan
Komposisi vs PewarisanInner ClassNode sebagai KomponenRefCounted vs NodeEnum dalam Class11Proyek: Manajemen Perpustakaan
Gambaran Umum Proyekclass Buku dan PenggunaLatihan sendiri: Compiler GDScript online