Menu
CoddyTech

Nesne Yönelimli Programlamaya Giriş

Coddy'nin GDScript Journey'sinin Nesne Yönelimli Programlama bölümünün bir parçası. Ders 2 / 65.

Nesne yönelimli programlama (OOP), bir programı nesneler etrafında düzenler. Bir nesne, verileri (değişkenleri) bu veriler üzerinde çalışan işlevlerle bir araya getirir. Bir sınıf, nesnelerinin neleri içerdiğini ve yaptığını tanımlar; bu sınıftan ihtiyacın kadar nesne oluşturabilirsin.

GDScript'te her betik dosyası bir sınıftır. Dosyaya class_name ile ad verin ve her nesnenin tuttuğu değişkenleri bildirin:

# car.gd
class_name Car
extends RefCounted

var brand: String = "Generic"
var wheels: int = 4

extends RefCounted, artık hiçbir değişken Car nesnesine başvurmadığında Godot'un bu nesneyi kendiliğinden serbest bırakmasını sağlar. Bunu veri tutan ve düğüm olmayan her sınıf için kullan. extends satırı olmayan bir betik de RefCounted sınıfını genişletir.

Bir nesne oluşturmak için sınıfta new() çağrısı yap, ardından değişkenlerine nokta ile eriş:

# main.gd
var my_car := Car.new()
print(my_car.wheels) # 4
print(my_car is Car) # true

is işleci, bir nesnenin hangi sınıftan oluşturulduğunu denetler. Nesnenin kendisini yazdırmak yalnızca <RefCounted#-9223372009860233781> gibi bir kimlik gösterir, bu yüzden onun değişkenlerini yazdırın.

Sınıf, planın kendisidir ve her nesne ondan oluşturulmuş ayrı bir şeydir: Car.new() çağrısını iki kez yapmak size iki araba verir.

challenge icon

Görev

Kolay

car.gd dosyasında Car sınıfını oluştur:

  • sınıf adı Car olsun ve RefCounted sınıfını genişletsin
  • "Generic" ile başlayan bir String değişkeni olan brand
  • 4 ile başlayan bir int değişkeni olan wheels

Sağlanan kod, kaç araba oluşturulacağını okur ve her birini Car.new() ile oluşturur. Araba sayısını ve toplam tekerlek sayısını yazdırır. En az bir araba oluşturduğunda, ilk araba için bir marka okur ve ilk ve son arabanın markalarını yazdırır. 3 ve Tesla girdileri için şunu yazdırır:

Cars: 3
Wheels: 12
First car: Tesla
Last car: Generic

Kodunu car.gd dosyasına yaz. main.gd, sağlanan girdi/çıktı kodunu içerir ve düzenlenemez.

Kendin dene

extends Node

func _ready():
	# Sağlanan giriş/çıkış kodu: olduğu gibi bırakın
	var count := int(OS.read_string_from_stdin())
	var garage: Array[Car] = []
	for i in count:
		garage.append(Car.new())
	var total := 0
	for car in garage:
		total += car.wheels
	print("Cars: %d" % garage.size())
	print("Wheels: %d" % total)
	if count > 0:
		garage[0].brand = OS.read_string_from_stdin()
		print("First car: %s" % garage[0].brand)
		print("Last car: %s" % garage[-1].brand)
quiz iconKendini test et

Bu ders kısa bir quiz içerir. Soruları yanıtlamak ve ilerlemeni kaydetmek için derse başla.

Nesne Yönelimli Programlama bölümündeki tüm dersler

Kendi başına pratik yap: Online GDScript derleyicisi