PHP 객체 지향 프로그래밍에서의 비공개 속성
객체 외부에서 읽고 쓸 수 있는 속성을 공개(public) 속성이라고 합니다. 반면 클래스 내부에서만 접근할 수 있는 비공개(private) 속성도 존재합니다.
비공개 속성의 이름은 접근 제어자
private를 사용하여 선언해야 합니다.
한번 해봅시다:
<?php
class User {
private $name;
}
?>
이제 우리의 속성에 데이터를 기록해 보겠습니다. 예를 들어, 클래스 생성자 내에서 이 작업을 수행할 수 있습니다:
<?php
class User {
private $name;
public function __construct($name) {
$this->name = $name;
}
}
?>
이제 우리 속성의 값을 반환하는 메서드를 만들어 보겠습니다:
<?php
class User {
private $name;
public function __construct($name) {
$this->name = $name;
}
public function show() {
return $this->name;
}
}
?>
사용자 이름을 매개변수로 전달하여 클래스의 객체를 생성해 보겠습니다:
<?php
$user = new User('john');
?>
클래스 외부에서 직접 우리의 속성에 접근하려고 하면 오류가 발생합니다:
<?php
echo $user->name; // 오류
?>
반면 우리의 메서드를 호출하면 이 속성을 읽을 수 있습니다:
<?php
echo $user->show(); // 'john' 출력
?>
Employee 클래스에
세 가지 비공개 속성: 이름, 급여,
나이를 만드세요.
생성자 매개변수로 이러한 속성들의 값을 전달하세요.
직원의 데이터를 출력하는 메서드를 만드세요.