Menu
CoddyTech

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 points

Panggil 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()) # 15

Di 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.

challenge icon

Tantangan

Mudah

Lengkapi method dari class BankAccount di bank_account.gd. Akun menyimpan uangnya dalam variabel balance, yang dimulai dari 0.

  • deposit(amount) menambahkan amount ke saldo
  • withdraw(amount) mengurangi saldo sebesar amount dan mengembalikan true. Jika amount lebih besar dari saldo, nilainya tidak berubah dan fungsi mengembalikan false
  • get_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: $50

Tulis 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())
quiz iconUji dirimu

Pelajaran ini berisi kuis singkat. Mulai pelajarannya untuk menjawab kuis dan melacak progresmu.

Semua pelajaran di Pemrograman Berorientasi Objek

Latihan sendiri: Compiler GDScript online