객체 지향 프로그래밍(OOP, Object-Oriented Programming)

객체 지향 프로그래밍에서는 모든 데이터를 객체(object)로 취급하며, 객체가 바로 프로그래밍의 중심이 됩니다.

이로 인해 코드의 관리가 쉬워지고, 적은 노력으로도 손쉽게 코드를 변경, 유지 관리할 수 있게 됩니다.

객체 지향 프로그래밍이 가지는 특징은 다음과 같습니다.

  1. 추상화(abstraction)

  2. 캡슐화(encapsulation)

  3. 정보 은닉(data hiding)

  4. 상속성(inheritance)

  5. 다형성(polymorphism)

상속(inheritance)

PHP에서는 extend 키워드를 사용하여 상속을 정의합니다.

static 키워드

클래스를 정의할 때 static 키워드를 사용한 프로퍼티와 메소드는 해당 클래스의 인스턴스를 생성하지 않아도 접근할 수 있게 됩니다.

이러한 프로퍼티와 메소드를 정적 멤버(static member)라고 합니다.

이러한 정적 멤버의 특징은 다음과 같습니다.

  1. static 키워드로 선언된 정적 프로퍼티는 인스턴스화된 객체에서는 접근할 수 없습니다.

  2. static 키워드로 선언된 정적 메소드는 인스턴스화된 객체에서도 접근할 수 있습니다.

  3. 정적 메소드 내에서는 $this 의사 변수를 사용할 수 없습니다.