Heim  >  Artikel  >  Backend-Entwicklung  >  Über Kapselung und Vererbung von PHP-Klassen

Über Kapselung und Vererbung von PHP-Klassen

墨辰丷
墨辰丷Original
2018-06-07 10:39:101125Durchsuche

In diesem Artikel wird hauptsächlich die Kapselung und Vererbung von PHP-Klassen vorgestellt. Ich hoffe, dass er für alle hilfreich ist.

Kapselung

Kapseln Sie Mitgliedsmethoden und Mitgliedsattribute in Klassen, verbergen Sie die Details der Attribut- und Methodenimplementierung und beschränken Sie den Zugriff auf Klassenmitglieder durch öffentliche, geschützte, private, usw. Berechtigungen und Daten sind intern geschützt und können nur über autorisierte Mitgliedsmethoden betrieben werden. Mitglieder sind so weit wie möglich gekapselt.

Öffentlich: Auf eine Methode oder Eigenschaft kann in jedem Bereich zugegriffen werden. Wenn für eine Eigenschaft oder Methode kein Zugriffsmodifikator angegeben ist, ist sie standardmäßig öffentlich.
geschützt: Auf diese Klasse und Unterklassen kann zugegriffen werden, externe Objekte können jedoch nicht aufgerufen werden.
private: kann nur in dieser Klasse aufgerufen werden und kann nicht von Unterklassen oder externen Objekten aufgerufen werden. Als privat gekennzeichnete Methoden oder Attribute können in geerbten Klassen neu definiert werden, und jede Klasse kann nur ihre eigenen definierten privaten Methoden sehen.

Diese drei Modifikatoren sollten hinsichtlich des Umfangs von groß nach klein sortiert werden: öffentlich → geschützt → privat. Der Grund, warum sie im Geltungsbereich liegen, liegt darin, dass die Klasse einige Eigenschaften und Methoden kapselt bestimmt die „Sichtbarkeit“ der Daten, sodass wir die definierten Eigenschaften und Methoden nicht nach Belieben außerhalb der Klasse ändern, sondern nur aufrufen können. Dies ist der Vorteil der Kapselung und verbessert auch die Sicherheit.
Wir geben ein Codebeispiel:

 class myClass{ 
  public $public="Public";    //public属性
  protected $protected="Protected"; //protected属性
  private $private="Private";   //private 属性
  function say_Hello() {    //public属性 
  //只是举例说明,自行添加内容
  } 
 
 $obj=new myClass(); 
 echo $obj->public; 
 //echo $obj->protected; 
 //echo $obj->private;

Durch die Ausführung des obigen Beispiels erhalten wir ein „Öffentlich“, aber wenn Sie den Kommentar von //echo $obj->private entfernen ; erhalten Sie die folgende Fehlermeldung:

Schwerwiegender Fehler: Auf die geschützte Eigenschaft myClass::$protected in E:apachehtdocsexamplefile.php in Zeile 13 kann nicht zugegriffen werden.

Sie können sehen, dass wir nicht nach Belieben auf die Attributdefinitionen einer Klasse zugreifen können. Wir wissen nicht, welche Mitglieder sich „außerhalb“ dieser Klasse befinden, da diese Mitglieder möglicherweise nicht für andere Klassen verfügbar sind. Wenn wir auf als „privat“ definierte Attribute zugreifen oder diese ändern müssen, können wir natürlich auch die von PHP bereitgestellten Systemmethoden verwenden: _get() und _set().

Vererbung

Sie können eine Klasse erben lassen und die Mitgliedseigenschaften und -methoden einer anderen vorhandenen Klasse verwenden. Die geerbte Klasse wird als übergeordnete Klasse oder Basisklasse bezeichnet Klasse ist eine Unterklasse. Die Vererbungsbeziehung wird über das Schlüsselwort „extends“ implementiert. Um eine Erbschaft zu erhalten, muss man im Allgemeinen eine „Wurzel“ haben. Man kann sich vorstellen, dass, wenn man in der Zukunft einen Sohn oder eine Tochter zur Welt bringt, diese „Dinge (Eigenschaften und Methoden)“ bekommen. von Ihnen, so dass Ihre „Nachkommen“ diejenigen sind, die einige der Eigenschaften von Ihnen (der Quelle) besitzen.

„Stammklasse“ generieren (Elternklasse oder Basisklasse) Syntax: Klassenvater{
}

„Nachkomme“ (Unterklasse) generieren Syntax: Klasse Sohn erweitert Vater{
}

PHP erweitert Beispielcode für die Klassenvererbung:

class father{ 
 protected $name; 
 function __construct($name){  //构造函数 
  $this->name=$name; 
 } 
 
 function work(){ 
  echo "{$this->name}我在工作;
 } 
 function __destruct(){}  //析构函数
} 
 
class son extends father{  //继承父类
 function play(){ 
  echo "{$this->name}我在玩游戏;
 }  
} 
 
 $my_father=new father(“爸爸”);  //创建父类对象
 $my_father->work(); 

 $my_son=new son(“儿子”); 
 $my_son->work(); 
 $my_son->play();

Analyse: In der übergeordneten Klasse Vater definieren wir allgemeine Attribute und Methoden und dann Unterklassen definieren. Möglicherweise stellen Sie fest, dass die Unterklasse keine Konstruktoren und Destruktoren enthält, da die Unterklasse alle Methoden der übergeordneten Klasse erbt. Sie können also $my_son->work(); aufrufen. Dies ist die Vererbung der PHP-Klasse. Beachten Sie auch: PHP kann keine mehrstufige Vererbung haben, wie zum Beispiel: Klasse A erweitert B erweitert C. Eine solche Vererbung ist in PHP ungültig. In PHP gibt es nur eine Einzelvererbung, keine Mehrfachvererbung. Zur „Implementierung“ der Mehrfachvererbung sind andere Methoden erforderlich in Verkleidung.

Zusammenfassung: Das Obige ist der gesamte Inhalt dieses Artikels, ich hoffe, dass er für das Studium aller hilfreich sein wird.

Verwandte Empfehlungen:

Zwei Methoden zur zufälligen Generierung von Zahlen in PHP

Analyse von Beispielen dafür, wie PHP den Null-Uhr-Zeitstempel erhält des Tages

PHP-Datenexport-Fallanalyse

Das obige ist der detaillierte Inhalt vonÜber Kapselung und Vererbung von PHP-Klassen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn