萬盛學電腦網

 萬盛學電腦網 >> 網絡編程 >> php編程 >> php OOP 中private 與public區別教程

php OOP 中private 與public區別教程

在過去的一頁我開始解釋了面向對象的重要性和如何創建一個基本對象。在此及以後,我們會敲定許多細節。

類變量和能見度
在班級,我們首先確定我們的變數。在這種情況下,我們的第一個變量是$名稱。方便的特點, PHP5 (不PHP4 )是增加能見度的控制。我們$名稱變目前的能見度私有化。私人能見度意味著該變量只能可通過內部的方法的類(如setName和getName ) 。如果我們設置變量的可見市民,我們的變量可以訪問外部(不包括方法) 。最後的能見度設置一個變量的保護,這意味著變量訪問是有限的,家長和繼承類,我們將在以後討論。

在PHP4 ,公眾是唯一的選擇知名度和公共變量宣布使用無功而不是公眾。讓我們來看看如何變能見度工程,增加了$位置變量設置為公眾能見度:

/* instantiate object */
$kirupa = new User;

/* access private variables via methods, then try without methods */
$kirupa->setName( 'Kirupa' );
echo $kirupa->getName().'<br />'; // Kirupa
echo $kirupa->name.'<br />';  // breaks our code

/* access public variables without methods will work */
$kirupa->location = 'MIT';
echo $kirupa->location.'<br />'; // MIT

class User {
 private $name;  // must be accessed with methods.
    // not available in PHP4
      
 public $location; // can be accessed without methods
    // var $location; in PHP4
 
 function setName( $val ) {
  $this->name = $val;
  return;
 }
 
 function getName() {
  return $this->name;
 }
}

因此,該變量的能見度你應該選擇哪一個?答案是,它取決於。一般情況下,您應該利用私人罰款。私營企業是特別有用,因為它支持封裝-能夠隱藏數據,只有使它可以通過特定接口。在面向對象,一個接口代表的功能給特定的對象。

正如我們設置一個變量的知名度,我們也可以設定知名度的方法。默認情況下,如果我們不成立的知名度我們的方法,他們將被設置為公共。為了時間,我們將不會深入的例子不同的方法知名度。繼續了解一個重要和有用的方法,構造。

注意:此為:在方法方面,我們提到級變量和使用其他方法$這一- “ 。這可以看出內setName和getName方法。 $這是一個預設的變量時創建實例,使一個對象引用本身。

請注意有關命名約定:雖然成立[ PropertyName ]和
獲得[ PropertyName ]很受歡迎的方法,因為它們的名字很容易理解,他們並不需要。您可以名稱這些方法無論你想要的。

構造方法
現在是一個很好的時間來看看構造方法。該構造是一個方法,將自動被運行時對象實例。在PHP5 ,我們的方法稱為“魔術方法” (即__construct , __destruct ,和其他一些) ,其中從兩個底線。在PHP4 ,構造方法將得到相同的名稱的階級本身。因此,在PHP4 ,如果我們有一類名為用戶,我們的構造方法也將被命名用戶(不__construct ) 。記住,你不必調用構造方法明確,因為它會自動運行一個實例時,該類別建立。這裡有一個構造中的行動:

$kirupa = new User;
echo $kirupa->getJob().'<br />'; // Engineer

class User {
 private $job;
 
 function __construct() { // function User() in PHP4
  $this->job = 'Engineer';
 }
 
 /* job methods */
 function getJob() {
  return $this->job;
 }
}

現在,你可能會開始看到的好處之一對象-許多代碼在於背景。我們可以包括文件包含我們的班級隱藏重型代碼甚至更多。由於命名約定的類和方法是相當自我解釋,我們不會需要不斷回顧我們列入檔案。繼續閱讀,了解如何,我們可以用陣列來加快我們的進程。
copyright © 萬盛學電腦網 all rights reserved