php

[php OOP] 3주차(3회차) / php 상속, 상수

namgi 2022. 9. 18. 19:31
반응형

이번회차에선 상속과 상수에 대해 배웠다.


OOP 상속

상속(Inheritance)이란? - 클래스가 다른 클래스에서 파생되는 것

상속된 클래스는 위의 클래스에서 모든 publicprotected 속성과 메서드를 상속, 고유한 속성과 메서드를 가질 수 있다.

 

상속된 클래스는 'extends' 코드를 사용하여 정의한다.

 

먼저 코드부터 봐보자.

<?php
//'Friend'란 클래스 정의
class Friend {
	
  //'$name', '$age' 정의
  public $name;
  public $age;
  public function __construct($name, $age) {
    $this->name = $name;
    $this->age = $age;
  }
	
  //'text' 함수를 보호상태로 둠
  protected function text() {
    echo "이름: {$this->name}<br>나이: {$this->age}";
  }
}

//'Yeji'라는 다른 클래스를 'Friend'클래스에 상속
class Yeji extends Friend {
	
  //'message'함수 정의
  function message() {
    echo "이름과 나이가 어떻게 되나요?<br> ";
	  
    //'message'함수에 보호된 'text'함수 호출
    $this -> text();
  }
}

//변수 'yeji'의 값 지정
$yeji = new Yeji("Yeji", "18");
$yeji->message(); //'message'호출
?>

위와 같이 'name''age'가 속한 클래스 'Friend'가 있다.

 

14번 째 줄에서 함수 'text''protected(보호)'상태로 둔다.

20번 째 줄에서 클래스 'Yeji'를 하나 생성하고, 'extends' 코드로 'Friend' 클래스 상속 시킨다.

클래스 'Yeji'에는 'message' 함수가 들어가있다.

 

'message'함수에서 보호된 'text'함수를 불러온다.

보호되어있는 상태지만, 클래스 'Yeji''Friend' 클래스로 상속 시켰기에,

밑 화면처럼 코드가 실행된다.

OOP 상수

상수는 선언되면 변경할 수 없다.

상수는 클래스 내에서 일부 상수 데이터를 정의해야 하는 경우에 유용하다.

상수는 'const' 코드를 이용해 선언할 수 있다.

상수는 대소문자를 구분하지만, 대문자로 지정하는 것이 좋다.

<?php
//Hello 클래스 지정
class Hello {

  //HELLO_MESSAGE 상수 지정
  const HELLO_MESSAGE = "Hello world!";
}

//클래스이름::상수이름
echo Hello::HELLO_MESSAGE
?>

실행결과는 다음과 같다.


벌써 3회차이다.

이번 회차에선 상속과 상수에 대해 배웠다.

다음회차에서도 OOP에 대해 배울 것이다.

반응형