이 글의 목표
PHP
1, public
public
2、protected
3、private
(一)、数据访问的3种方式
1、Public
:公有的类成员
可以在任何地方访问,具体可以被哪些访问了:
● 定义该类的类(自身)
● 该类的子类
● 其他类
2、Protected
:受保护的类成员
● 定义该类的类(自身)
● 该类的子类
3、Private
2,
protected
에서 세 가지 데이터 액세스 방법의 정의와 기능을 숙지하세요. 3,
private
(1), 3가지 데이터 액세스 방법
1.
Public
: Public 클래스 멤버
는 어디에서나, 특히 액세스할 수 있는 항목에 액세스할 수 있습니다.
● 이 클래스를 정의하는 클래스(self)
● 이 클래스의 하위 클래스 ● 다른 클래스
2. Protected
: 보호되는 클래스 멤버
● 이 클래스를 정의하는 클래스( Self) ● 이 클래스의 하위 클래스 3. Private
: Private 클래스 멤버
● 본인만 액세스할 수 있습니다.
요약: 제약 능력이 위에서 아래로 증가합니다. 
위의 텍스트 설명만으로는 아직 간단하게 이해하기가 다소 어려우므로 이론적 + 실제적인 방식으로 이해해야 합니다. 그런 다음 특정 코드를 통해 이러한 세 가지 유형의 데이터 액세스를 이해해야 합니다. ? 각각의 특성은 무엇입니까? 마지막으로 바인딩 기능을 이해해 보겠습니다. (2) 특정 코드
설명: 모든 사람이 객체 지향을 더 잘 이해할 수 있도록 기사를 작성할 때 얕은 것부터 깊은 것까지, 쉬운 것부터 어려운 것까지 특정 규칙을 따르려고 노력하므로 각각을 씁니다. 기사는 이전 기사와 관련이 있습니다. 예를 들어 다음 코드 사례에서는 이전 기사의 코드를 확장하고 확장했습니다. 
사례 1: public의 정의를 알고, 3곳에서 접근 가능함을 증명하세요. (1. 자신이 정의한 클래스에서, 2. 서브클래스에서, 3. 외부에서)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 | <?php
class Human{
public $name = "" ;
public $height = "" ;
public $weight = "" ;
public function eat( $food ){
echo $this ->name. "在吃" . $food . "<br/>" ;
}
}
class Anchors extends Human{
public $name = "" ;
public $stageName = "" ;
public function __construct( $name , $stageName ){
$this ->name = $name ;
$this ->stageName = $stageName ;
}
public function singing(){
echo "我是女主播,我会唱歌<br/>" ;
}
}
class NbaPlayer extends Human{
public $team = "" ;
public $playerName = "" ;
public function __construct( $name , $height , $weight , $team , $playerName ){
$this ->name = $name ;
$this ->height= $height ;
$this ->weight = $weight ;
$this ->team = $team ;
$this ->playName = $playerName ;
echo "构造函数执行了,当前对象是{$this->name}<br/>" ;
}
public function run(){
echo "跑步中<br/>" ;
}
public function jump(){
echo "跳跃<br/>" ;
}
public function dribble(){
echo "运球<br/>" ;
}
public function pass(){
echo "传球<br/>" ;
}
public function shoot(){
echo "投篮<br/>" ;
}
public function dunk(){
echo "扣篮<br/>" ;
}
}
$jordon = new NbaPlayer( "乔丹" , "1.98米" , "98公斤" , "公牛" , "23" );
echo "名称= " . $jordon ->name. "<br/>" ;
?>
|
로그인 후 복사
연산 효과는 다음과 같습니다.

사례 2: protected의 정의를 알고, 2곳에서 접근 가능함을 증명합니다. (1. 자신이 정의한 클래스에서, 2. subclass)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 | <?php
class Human{
public $name = "" ;
public $height = "" ;
public $weight = "" ;
protected $addr = "长沙" ;
public function eat( $food ){
echo $this ->name. "在吃" . $food . "<br/>" ;
}
public function getAddrInHuman(){
echo "Human 自身类中的add=" . $this ->addr. "<br/>" ;
}
}
class Anchors extends Human{
public $name = "" ;
public $stageName = "" ;
public function __construct( $name , $stageName ){
$this ->name = $name ;
$this ->stageName = $stageName ;
}
public function singing(){
echo "我是女主播,我会唱歌<br/>" ;
}
public function eat( $food ){
echo "我是女主播,我是边唱歌边吃{$food}<br/>" ;
}
}
class NbaPlayer extends Human{
public $team = "" ;
public $playerName = "" ;
public function __construct( $name , $height , $weight , $team , $playerName ){
$this ->name = $name ;
$this ->height= $height ;
$this ->weight = $weight ;
$this ->team = $team ;
$this ->playName = $playerName ;
echo "构造函数执行了,当前对象是{$this->name}<br/>" ;
}
public function getAddrInNbaPlayer(){
echo "在NbaPlayer子类中addr=" . $this ->addr. "<br/>" ;
}
}
$jordon = new NbaPlayer( "乔丹" , "1.98米" , "98公斤" , "公牛" , "23" );
$jordon ->getAddrInHuman();
$jordon ->getAddrInNbaPlayer();
echo "在类外部访问addr=" . $jordon ->addr. "<br/>" ;
?>
|
로그인 후 복사
연산 효과는 다음과 같습니다.
사례 3: private의 정의를 알고, 한 곳에서만 접근할 수 있음을 증명하세요(1. 자신이 정의한 클래스)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 | <?php
class Human{
public $name = "" ;
public $height = "" ;
public $weight = "" ;
private $isHungry = true;
public function getPrivateInfo(){
return "private 变量 isHungry=" . $this ->isHungry. "<br/>" ;
}
}
class Anchors extends Human{
public $name = "" ;
public $stageName = "" ;
public function __construct( $name , $stageName ){
$this ->name = $name ;
$this ->stageName = $stageName ;
}
public function singing(){
echo "我是女主播,我会唱歌<br/>" ;
}
public function eat( $food ){
echo "我是女主播,我是边唱歌边吃{$food}<br/>" ;
}
}
class NbaPlayer extends Human{
public $team = "" ;
public $playerName = "" ;
public function __construct( $name , $height , $weight , $team , $playerName ){
$this ->name = $name ;
$this ->height= $height ;
$this ->weight = $weight ;
$this ->team = $team ;
$this ->playName = $playerName ;
}
public function getIsHungryInNbaPlayer(){
echo "在NbaPlayer子类中isHungry=" . $this ->isHungry. "<br/>" ;
}
}
$jordon = new NbaPlayer( "乔丹" , "1.98米" , "98公斤" , "公牛" , "23" );
echo "私有变量isHungry =" . $jordon ->isHungry . "<br/>" ;
echo $jordon ->getPrivateInfo();
$jordon ->getIsHungryInNbaPlayer();
?>
|
로그인 후 복사
작동 효과는 다음과 같습니다.
요약:
1. Public: Public 클래스 멤버
어디에서나 액세스할 수 있으며, 특히 액세스할 수 있는 항목은
● 이 클래스를 정의하는 클래스(자체)
● 이 클래스의 하위 클래스
● 다른 클래스
2. 보호됨: 보호된 클래스 멤버 )
● 자체 및 해당 하위 클래스에서 액세스 가능
3.
● Only It은 자신만 접근할 수 있습니다
4. 외부에서 private 클래스 멤버에 접근할 수 있도록 클래스에 public 메소드를 정의한 후 public 메소드에 private 클래스 멤버를 반환하면 됩니다
자, 이제 모든 사람이 데이터 액세스에 대해 잘 알고 있어야 합니다. 이제 우리가 배운 내용을 적용하고 배운 지식을 사용하여 다음 문제를 해결해 보겠습니다. 그런 다음 답변을 살펴보세요🎜🎜질문: NBA 선수들은 일반적으로 다른 사람들에게 자신의 실명을 알리고 싶어하지 않습니다. 예를 들어 나는 분명히 40살인데 다른 사람들은 나를 38살로 생각하길 바랍니다🎜🎜생각합니다. .. ...🎜🎜🎜답변: 🎜🎜코드는 다음과 같습니다. 🎜
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 | <?php
class Human{
public $name = "" ;
public $height = "" ;
public $weight = "" ;
}
class Anchors extends Human{
public $name = "" ;
public $stageName = "" ;
public function __construct( $name , $stageName ){
$this ->name = $name ;
$this ->stageName = $stageName ;
}
public function singing(){
echo "我是女主播,我会唱歌<br/>" ;
}
public function eat( $food ){
echo "我是女主播,我是边唱歌边吃{$food}<br/>" ;
}
}
class NbaPlayer extends Human{
public $team = "" ;
public $playerName = "" ;
private $age = "40" ;
public function __construct( $name , $height , $weight , $team , $playerName ){
$this ->name = $name ;
$this ->height= $height ;
$this ->weight = $weight ;
$this ->team = $team ;
$this ->playName = $playerName ;
echo "构造函数执行了,当前对象是{$this->name}<br/>" ;
}
public function run(){
echo "跑步中<br/>" ;
}
public function jump(){
echo "跳跃<br/>" ;
}
public function dribble(){
echo "运球<br/>" ;
}
public function pass(){
echo "传球<br/>" ;
}
public function shoot(){
echo "投篮<br/>" ;
}
public function dunk(){
echo "扣篮<br/>" ;
}
public function getAge(){
$age = $this ->age-2;
echo $this ->name. "的age=" . $age . "<br/>" ;
}
}
$jordon = new NbaPlayer( "乔丹" , "1.98米" , "98公斤" , "公牛" , "23" );
$jordon ->getAge();
?>
|
로그인 후 복사
🎜실행 효과는 다음과 같습니다. 🎜🎜🎜🎜🎜요약: 🎜🎜🎜1. PHP의 액세스, 공개, 보호, 비공개 🎜🎜2. 세 가지 데이터 액세스 방법의 특징을 알아보세요🎜
위 내용은 PHP 객체 지향의 세 가지 데이터 액세스 방법에 대한 자세한 설명(코드 예)의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!