Menu
Coddy logo textTech

클래스 vs 객체

Coddy PHP 여정의 객체 지향 프로그래밍 섹션에 포함된 레슨 — 91개 중 3번째.

클래스와 객체는 서로 다른 목적을 수행합니다. 클래스는 청사진이며, 객체는 그 청사진으로부터 만드는 것입니다.

다음은 선언된 속성을 가진 클래스의 예입니다:

<?php
class Dog {
    public $name;
    public $breed;
}

public 키워드는 이러한 속성들이 클래스 외부에서 접근될 수 있음을 의미합니다. public에 대해서는 속성(Properties) 레슨에서 더 자세히 배울 것입니다.

이제 Dog 클래스에서 객체를 생성합니다:

$dog1 = new Dog();
$dog2 = new Dog();

객체는 프로퍼티에 대해 개별적인 값을 가질 수 있습니다:

$dog1->name = "Nicky";
$dog1->breed = "Siberian Husky";

$dog2->name = "Teemon";
$dog2->breed = "Shu'ali";

-> 연산자는 객체의 속성에 접근하는 데 사용됩니다.

각 객체의 데이터를 출력합니다:

echo $dog1->name . " is a " . $dog1->breed . "\n";
echo $dog2->name . " is a " . $dog2->breed . "\n";

출력:

Nicky is a Siberian Husky
Teemon is a Shu'ali

주요 차이점: Dog 클래스는 모든 개가 공유하는 구조를 정의하며, 객체 $dog1$dog2는 고유한 속성 값을 가진 구체적이고 개별적인 개를 나타냅니다.

challenge icon

챌린지

쉬움

Student 클래스에서 두 개의 학생 객체를 생성하고 그 속성을 설정하도록 코드를 완성하세요.

  • student.php: Student 클래스를 포함하고 있습니다 (수정 불가)
  • driver.php: 객체를 생성하고 속성을 설정합니다

다음 값을 설정하세요:

  • $student1: name은 "Alice", grade는 "A"
  • $student2: name은 "Bob", grade는 "B"

치트 시트

클래스는 객체의 구조와 동작을 정의하는 청사진이며, 객체는 해당 클래스에서 생성된 인스턴스입니다.

public 키워드를 사용하여 속성을 가진 클래스를 정의합니다:

<?php
class Dog {
    public $name;
    public $breed;
}

new 키워드를 사용하여 클래스에서 객체를 생성합니다:

$dog1 = new Dog();
$dog2 = new Dog();

-> 연산자를 사용하여 객체 속성에 접근하고 설정합니다:

$dog1->name = "Nicky";
$dog1->breed = "Siberian Husky";

$dog2->name = "Teemon";
$dog2->breed = "Shu'ali";

속성에 접근하여 값을 읽습니다:

echo $dog1->name . " is a " . $dog1->breed;

직접 해보기

<?php
require_once 'student.php';

// TODO: 두 개의 학생 객체를 생성합니다.


// TODO: student1의 속성을 설정합니다 (이름: "Alice", 성적: "A")


// TODO: student2의 속성을 설정합니다 (이름: "Bob", 성적: "B")


// 학생 정보 출력
echo $student1->name . " has grade " . $student1->grade . "\n";
echo $student2->name . " has grade " . $student2->grade . "\n";
quiz icon실력 점검

이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.

객체 지향 프로그래밍의 모든 레슨