특정 유형의 객체를 생성하기 위한 템플릿입니다.
클래스는 객체를 사용한 프로그래밍을 보다 쉽게 만듭니다. 예를 들어, Frog
클래스는 개구리처럼 행동하는 객체를 생성할 수 있습니다. 클래스를 사용하여 생성된 각 객체를 그 클래스의 인스턴스라고 합니다. 클래스의 모든 인스턴스는 동일한 유형입니다. Frog
클래스의 인스턴스를 생성하는 예는 다음과 같습니다 : let fifi = new Frog(50, 50, 20);
fifi
는 Frog
클래스의 인스턴스를 참조합니다. 키워드 new
는 new Frog()
문에서 Frog
클래스의 생성자를 호출하는 데 사용됩니다. 전체적으로 새로운 Frog
객체가 생성되어 변수 fifi
에 할당되었습니다. 클래스는 템플릿이므로 하나 이상의 인스턴스를 생성하는 데 사용할 수 있습니다:
// First Frog instance. let frog1 = new Frog(25, 50, 10); <p>// Second Frog instance. let frog2 = new Frog(75, 50, 10); </p>
간단한 Frog
클래스는 다음과 같이 선언할 수 있습니다:
class Frog { constructor(x, y, size) { // This code runs once when an instance is created. this.x = x; this.y = y; this.size = size; } <p> show() { // This code runs once when myFrog.show() is called. textAlign(CENTER, CENTER); textSize(this.size); text('🐸', this.x, this.y); }</p> <p> hop() { // This code runs once when myFrog.hop() is called. this.x += random(-10, 10); this.y += random(-10, 10); } } </p>
클래스 선언은 class
키워드로 시작하며, 그 다음에 Frog
같은 클래스 이름과 중괄호 {}
가 따릅니다. 클래스 이름은 PascalCase
를 사용해야 하며 이름에 공백이 있으면 안 됩니다. 예를 들어, 클래스 이름을 각 단어 사이에 공백이 있는 Kermit The Frog
로 지정하면 SyntaxError
가 발생합니다. 중괄호 {}
사이의 코드는 클래스를 정의합니다. 클래스에 속한 함수를 메소드라고 합니다. constructor()
,show()
, 그리고 hop()
는 매개변수를 받을 수 있고 값도 반환할 수 있습니다. 함수와 같지만 function
키워드를 사용하지 않습니다.
constructor()
는 클래스의 인스턴스가 생성될 때 한 번 호출되는 특별한 메소드입니다. new Frog()
문은 Frog
클래스의 constructor()
메소드를 호출합니다.
클래스 정의는 인스턴스의 템플릿입니다. 키워드 this
는 인스턴스의 데이터와 메소드를 참조합니다. 예를 들어, 각 Frog
인스턴스는 this.x
와 this.y
에 고유한 좌표를 저장합니다. show()
메소드는 그 좌표를 사용하여 개구리를 그립니다. hop()
메소드는 호출될 때 그 좌표를 업데이트합니다. Frog
인스턴스가 생성되면, 점 연산자 .
를 사용하여 다음과 같이 데이터와 메소드를 업데이트 할 수 있습니다:
// Draw a lily pad. fill('green'); stroke('green'); circle(fifi.x, fifi.y, 2 * fifi.size); <p>// Show the Frog. fifi.show();</p> <p>// Hop. fifi.hop(); </p>