【PHP】 public · protected · private 적당히 결정하지 않았습니까?
메소드 앞에 붙인다 public·protected·private
적당히 결정하는 사람 없습니까?
네, 저입니다.
「이것은 아무데도 어디에서도 부르지 않는 생각이 들고 private로 좋을까.」
「으음 이것 후에 다른 곳에서 사용할 것 같네... 아니 미묘하다..
네, 저입니다.
그래서 이번에는 소위 액세스 한정자에 대해,
「가독성」이라고 하는 시점으로부터, 다시 생각하고 싶습니다.
우선, 안녕하세요.
· public ... 어디서나 액세스 가능
・private・・・상속처의 서브 클래스로부터 액세스 가능
· protected ... 그 클래스에서만 액세스 가능
네요.
그것은 알고 있습니다. 그것은 모두 알고 있습니다! !
알고 있는 것만으로 사용할 수 없다면, 무슨 의미가 있다고 합니까? ! !
하아 하아. . .
뭐야 이건. . .
이야기는 바뀌지만,
『인생』에는 어떻게 해도 바꿀 수 없는 것과 바꿀 수 있는 것이 있습니다.
과거의 위인들도 말하고 있습니다.
백성이야. 바꿀 수 없는 「과거」에 한탄한다면, 바꿀 수 있는 「미래」를 보지 않겠는가.
by 나폴레옹
다른 사람은 바꿀 수 없다. 바꿀 수 있다고 하면, 그것은 「자신」이다.
by 아들러
상대의 「이상」한 곳을 바꾸려고 하지 말고, 마음으로 받아들이자. 그렇다면 그것이 '사랑'으로 바뀌기 때문이다.
by 보라색
죄송합니다 거짓말입니다. 구구도 나오지 않습니다.
그런 느낌으로, 클래스 설계를 할 때도,
바꿀 수 있는 속성과 바꿀 수 없는 속성을
명확하게 정의해 두는 것이 좋습니다.
그럼 「인생」이 아니라 「규동」으로 생각해 봅시다.
◯ 가게의 규동을 부탁하고 카운터에 놓여졌습니다.
이 시점에서 바꿀 수있는 것과 바꿀 수없는 것은 무엇입니까?
"규동을 먹는데 바꿀 수 없는 것"
・밥의 양
・가격
"규동을 먹는데 바꿀 수 있는 것"
・홍생강의 양
・젓가락으로 먹을까, 숟가락으로 먹을까
GyuDon.php
class GyuDon {
private $riceAmount = 200; // ごはんの量
private $price = 350; // 値段
public $beniSyoga = '3袋'; // 紅生姜の量
public $useChopsticks = true; // お箸を使う
}
바꿀 수 없는 것이라고 하는 것은,
바꾸려고하면 화가 난다.
밥의 양을 바꾸자.
main.php
$gyudon = new GyuDon();
$gyudon->riceAmount = 300; // エラーが起きる
모두 상상해보십시오, 쇠고기 덮밥이 나온 후에,
역시 밥을 가득 채워달라고 부탁하면 확실히 싫은 얼굴을 하는군요.
다음으로 홍생강의 양을 늘려 보겠습니다.
main.php
$gyudon = new GyuDon();
$gyudon->beniSyoga = '10袋'; // エラーは起きない
네, 홍생강을 아무리 담아보겠지만, 누구에게도 화나지 않네요.
마지막으로
private, protected, public을 어쨌든,
바꿀 수 있는 것, 바꿀 수 없는 것, 라는 관점에서 결정하도록 하면,
보다 객체 지향을 깊이 이해할 수 있을까요?
그렇다면 모두 홍생강은 상식의 범위 내입니다.
Reference
이 문제에 관하여(【PHP】 public · protected · private 적당히 결정하지 않았습니까?), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/fusekichi/items/449f3e7f6cc901b0334b
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
Reference
이 문제에 관하여(【PHP】 public · protected · private 적당히 결정하지 않았습니까?), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/fusekichi/items/449f3e7f6cc901b0334b텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)