객체지향 프로그래밍 소개
Coddy GDScript 여정의 객체 지향 프로그래밍 섹션에 포함된 레슨. 65개 중 2번째.
객체 지향 프로그래밍(OOP)은 객체를 중심으로 프로그램을 구성합니다. 객체는 데이터(변수)와 해당 데이터에 대해 작동하는 함수를 하나로 묶습니다. 클래스는 객체가 무엇을 담고 어떤 일을 하는지 설명하며, 필요에 따라 클래스에서 객체를 원하는 만큼 만들 수 있습니다.
GDScript에서는 모든 스크립트 파일이 클래스입니다. class_name으로 이름을 지정하고 각 객체가 보유하는 변수를 선언하세요:
# car.gd
class_name Car
extends RefCounted
var brand: String = "Generic"
var wheels: int = 4extends RefCounted를 사용하면 더 이상 어떤 변수도 Car 객체를 참조하지 않을 때 Godot이 해당 객체를 자동으로 해제합니다. 데이터를 보유하며 노드가 아닌 모든 클래스에 사용하세요. extends 행이 없는 스크립트도 RefCounted를 상속합니다.
객체를 만들려면 클래스에서 new()를 호출한 다음, 점을 사용해 변수에 접근하세요:
# main.gd
var my_car := Car.new()
print(my_car.wheels) # 4
print(my_car is Car) # trueis 연산자는 객체가 어떤 클래스로부터 생성되었는지 확인합니다. 객체 자체를 출력하면 <RefCounted#-9223372009860233781>와 같은 ID만 표시되므로, 대신 객체의 변수를 출력하세요.
클래스는 청사진이고 각 객체는 이를 바탕으로 만들어진 별개의 것입니다. Car.new()를 두 번 호출하면 자동차 두 대를 얻게 됩니다.
챌린지
쉬움car.gd에 클래스 Car를 만드세요:
- 클래스 이름은
Car이고RefCounted를 확장합니다 "Generic"으로 시작하는String변수brand4로 시작하는int변수wheels
제공된 코드는 만들 자동차의 수를 읽고 Car.new()를 사용해 각 자동차를 만듭니다. 자동차 수와 바퀴의 총개수를 출력합니다. 자동차를 하나 이상 만들었으면 첫 번째 자동차의 브랜드를 읽고 첫 번째 자동차와 마지막 자동차의 브랜드를 출력합니다. 입력이 3 및 Tesla일 때 다음을 출력합니다:
Cars: 3
Wheels: 12
First car: Tesla
Last car: Generic코드는 car.gd에 작성하세요. main.gd에는 제공된 입력/출력 코드가 있으며 수정할 수 없습니다.
직접 해보기
extends Node
func _ready():
# 제공된 입출력 코드: 그대로 유지하세요
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)
이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.
객체 지향 프로그래밍의 모든 레슨
직접 연습해 보세요: 온라인 GDScript 컴파일러