트레이트 – 13.메소드 가시성 변경

메소드 가시성(visibility) 변경 트레이트는 재사용 유닛을 의미하므로 지정자는 조합된 클래스의 컨텍스트에서 쉽게 변경할 수 있어야 합니다. 이에 따라, 트레이트 메소드에 별칭을 부여할 때 메소드의 가시성 지정자(visibility modifier; 접근제한자)도 변경할 수…

Continue Reading트레이트 – 13.메소드 가시성 변경

가시성 – 7.객체 상속에서의 가시성 변경

객체 상속에서의 가시성 변경(changing visibility in object inheritance) 메소드, 프로퍼티 및 상수의 가시성을 완화할 수 있습니다. 예를 들어, protected 메소드를 public으로 완화하여 표시할 수 있지만, public 프로퍼티를 private로 제한하여 표시할…

Continue Reading가시성 – 7.객체 상속에서의 가시성 변경

가시성 – 6.다른 객체로부터의 가시성

다른 객체로부터의 가시성(visibility from other objects) 동일한 유형의 객체는 동일한 인스턴스가 아니더라도 private 및 protected된 멤버에 상호간에 접근할 수 있습니다. 이는 해당 객체 상호간에 객체 내부의 구현된 특정 세부 사항에…

Continue Reading가시성 – 6.다른 객체로부터의 가시성

가시성 – 5.상수 가시성

상수 가시성(constant visibility) PHP 7.1.0부터 클래스 상수는 public, private 또는 protected로 정의될 수 있습니다. 명시적으로 가시성을 지정하지 않고 선언된 상수는 public으로 정의됩니다. private 또는 protected의 가시성(visibility)을 선언하게 되면 정의된 클래스…

Continue Reading가시성 – 5.상수 가시성

가시성 – 1.정보 은닉

정보 은닉(information hiding; data hiding) 관련된 구성요소(상수, 프로퍼티, 메소드)들을 캡슐화(encapsulation)시켜 하나의 객체로 정의하였을 때, 정보 은닉은 객체가 가지고 있는 데이터(상수, 프로퍼티, 메소드)를 외부에서 임의로 접근하지 못하도록 숨겨놓는 기능입니다. 캡슐 내부의…

Continue Reading가시성 – 1.정보 은닉

PHP5 객체모델 – 07.추상클래스

추상클래스는 객체가 가지는 특성들을 추상화시켜 놓았을 뿐 아직 인스턴스화될 수 없는 클래스입니다. "객체지향 개념" 카테고리의 "추상클래스" 문서를 참조하셔서 먼저 추상클래스가 무엇인지를 이해하시기 바랍니다. 추상클래스(abstract class) 위의 예제의 출력결과는 아래와 같습니다.…

Continue ReadingPHP5 객체모델 – 07.추상클래스

PHP5 객체모델 – 01.가시범위

유효범위(scope)와 가시범위(visibility) "www.php.net >> online document > Classes and Objects(PHP5)"를 보면 "Visibility"라는 항목에 PPP 접근제한자(Private/Protected/Public access modifier)를 설명하고 있습니다. 그래서 우선 "visibility"라는 용어부터 이해하고 넘어가도록 하겠습니다. 거의 모든 국내서적에서 "visibility"를…

Continue ReadingPHP5 객체모델 – 01.가시범위

클래스를 사용해야 하나 – 4.스코프(scope)

모듈화 프로그래밍에서 우리는 함수를 이용하여 모듈화를 할 수 있다는 것을 알았습니다. 그런데 함수를 이용한 모듈화에는 한계가 있습니다. 하나의 함수 내에서 사용할 변수는 얼마든지 정의하여 사용할 수 있습니다. 즉 지역변수지요. 그런데…

Continue Reading클래스를 사용해야 하나 – 4.스코프(scope)