2010-12-04 151 views
2

今天我開始研究一個小的Java應用程序。我有一些PHP OOP的經驗,大多數原則是一樣的。雖然我認爲,它應該適用於兩種方式。這個關鍵字在Java和PHP中

但是,例如,關鍵字this使用不同,因爲我的理解。 在Java

class Params 
{ 
    public int x; 
    public int y; 

    public Params(int x, int y) 
    { 
     this.x = x; 
     this.y = y; 
    } 

    public void display() 
    { 
     System.out.println("x = " + x); 
     System.out.println("y = " + y); 
    } 
} 

public class Main 
{ 
    public static void main(String[] args) 
    { 
     Params param = new Params(4, 5); 
     param.display(); 
    } 
} 

在PHP中的同一時間,它是需要做出同樣的事情

<?php 

class Params 
{ 
    public $x; 
    public $y; 

    public function __construct($x, $y) 
    { 
     $this->x = $x; 
     $this->y = $y; 
    } 

    public void display() 
    { 
     echo "x = " . $this->x . "\n"; 
     echo "y = " . $this->y . "\n"; 
    } 
} 

class Main 
{ 
    public function __construct() 
    { 
     $param = new Params(4, 5); 
     $param->display(); 
    } 
} 

$main = new Main(); 

?> 

我只是想問問有沒有在this關鍵字一些其他方面的差異?

因爲我看到,在Java中它用於返回修改對象的實例,並且如果我傳遞具有相同名稱的參數作爲類中的屬性。然後分配值,我需要清楚地顯示什麼是參數和什麼是類屬性。例如,如上圖所示:this.x = x;

+2

請參閱http://stackoverflow.com/questions/577575/using-the-keyword-this-in-java – user187291 2010-12-04 14:34:15

+0

因此,我看到它與PHP`this`關鍵字使用情況非常不同。或者更好地說句法? – Eugene 2010-12-04 14:51:11

+0

可能重複[在類中的PHP在這裏發生了什麼?](http://stackoverflow.com/questions/3845769/what-is-going-on-here-in-php-with-classes) – EJP 2010-12-05 00:26:08

回答

3

在Java中,你並不總是需要說'這個'Java會解決它。唯一需要說明的是當局部變量與實例變量名稱相同時,在這種情況下,如果您不這樣說,Java將使用局部變量.var

但您仍然可以這樣說。即使在Java中沒有必要,也可以更好地理解代碼。

3

是,在PHP「this」關鍵字的工作原理相同,在Java中&沒有其他差別