2016-12-30 90 views
-3
// 1 
private Player player; 
// 2 
Player player = new Player(); 

我想知道這兩個陳述之間的區別。謝謝。這兩個對象的聲明有什麼區別?

+1

後面的一個可能是一個局部變量和一個類字段,第一個不能 – SomeJavaGuy

+1

一個是聲明,另一個是帶初始化的聲明。就像凱文說的那樣,有一些範圍/訪問的區別。一個是私人的,另一個使用「默認」。 – AxelH

回答

0

1),而使用私有訪問修飾符(還沒有創建對象)

2)使用默認的訪問修飾符,並創建一個變量球員和實例因此調用Player對象聲明類型的球員,一個名爲播放器變量構造(創建型播放器的對象)

當你需要稍後通過在程序

0

Player player;構造值1通常僅使用聲明Player類的參考player其不作爲任何地方指向它是一個未初始化的,只有在你指定了一些東西之後才能使用。

Player player = new Player();聲明瞭一個參考player其指向新創建Player對象,並將其初始化。

當然,還有一些作爲@AxelH在評論中提到的範圍/訪問區別。第一個是private,另一個是default

private access modifier 

私人修飾符指定了成員只能在自己的類訪問。

default access modifier 

如果一個類沒有修飾符(默認值,也稱包私有),只在其自己的包是可見的(包名爲相關類組)

參考:Java docs