2011-03-15 66 views
1

我做搜索雖然簡短,但是真的不知道什麼我問。只需將我的腳放入Java和OOP即可。的Java類聲明的解釋

藉此聲明:

SomeClass myClass = new SomeClass();

在PHP(這是我與大多數經驗),你只是做:

$myClass = new SomeClass

那麼,爲什麼不同? SomeClass的「前綴」是做什麼的,在PHP中是沒有必要的。

我是正確的,在第一個例子中,我聲明一個類類型的「SomeClass的」,大致相同的方式,你會宣稱:int myInt;

希望這是有道理的。謝謝。

編輯也沒有試圖進入一個PHP/Java的辯論,只是PHP是一種我熟悉的語言!

回答

3

總之是的。

你是說你想SomeClass類型的變量myClass,並初始化爲new SomeClass()

更長Explination的價值:

的原因,你做的是,它可以讓編譯器,IDE和無論其他什麼都知道myClassSomeClass

簡短的例子:

public class SomeClass(){ 

    public int SomeInt = 0; 
    public string SomeString = ""; 

    public SomeClass(string initialString) 
    { 
     SomeString = initialString; 
    } 

    public SomeClass(int initalValue) 
    { 
     SomeInt = initialValue; 
    } 
} 

現在你可以創建一個SomeClass的和做的事情來初始化它的一部分。

//Initialize a new instance of SomeClass with someString set to test 
SomeClass setSomeString = new SomeClass("test"); 
//Initialize a new instance of SomeClass with SomeInt set to 4 
SomeClass setSomeInt = new SomeClass(4); 

或者你可以只是做 //初始化SomeClass的一個新的實例,然後設置的值 SomeClass的MyClass的=新SomeClass的(); myClass.SomeInt = 4; myClass.SomeString = test; 當然這是一個非常簡單的例子,但它顯示了你在做什麼以及你可以用它做什麼。

因爲它指出了這個被稱爲靜態類型,因爲你必須聲明的對象類型是在編譯時什麼。 PHP使用動態類型,這意味着它在運行時確定對象的類型。

在Java中;不過,您可以使用var關鍵字使其動態確定對象類型。

3

Java是一種 '強類型語言'。 PHP不是。在這句話

去搜索,你將有娛樂時間瞭解什麼是好的,壞的,冷漠的這一點。你會發現任何3個人有5個意見。

0

什麼該行正在做的是創造型SomeClass的變量。換句話說,您正在創建SomeClass類的實例,它與聲明一個類不同。一個類聲明如下:

public class SomeClass { 

} 
0

不同之處在於Java是靜態類型的,而PHP是動態類型的。

這(簡而言之)意味着java爲了能夠調用給定對象上的方法,編譯器必須知道該對象的類型。它會告訴你是否允許你調用該方法。

在PHP中,此檢查是在運行時(稍後)執行的,因此不需要編譯器(不是有任何)來執行任何檢查。

1

在那裏您正在聲明SomeClass類型的新變量myClass,然後將該類的新對象賦值爲new SomeClass()

也許這是更清晰的寫這樣的區別。

// Declares myClass to be of type SomeClass but without initializing it. 
SomeClass myClass; 
// Creates a new object of the class SomeClass and asigns it to myClass 
myClass = new SomeClass(); 

正如bmargulies所說,java是一種強類型語言,您必須在使用它之前聲明變量的類型。這允許編譯器在編譯時進行類型檢查,在許多情況下可以防止編程錯誤。