클래스 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는 고유한 속성 값을 가진 구체적이고 개별적인 개를 나타냅니다.
챌린지
쉬움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";
이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.
객체 지향 프로그래밍의 모든 레슨
8매직 메서드
매직 메서드 소개__toString 및 __debugInfo__get, __set, __isset, __unset__call 및 __callStatic__clone 및 객체 복제__serialize 및 __unserialize요약 - 커스텀 컬렉션