这两个对象语句之间有什么区别?

时间:2016-12-30 06:25:05

标签: java

// 1
private Player player;
// 2
Player player = new Player();

我想知道这两个陈述之间的区别。感谢。

2 个答案:

答案 0 :(得分:0)

1)使用私有访问修饰符(尚未创建对象)时声明一个名为Player类型的变量

2)使用默认访问修饰符并创建一个变量播放器并实例化它,从而调用Player对象构造函数(创建一个类型为player的对象)

当您需要稍后在程序

中传递构造函数值时,通常会使用

1

答案 1 :(得分:0)

Player player;仅声明类player的引用Player,它不会指向任何位置,因为它未初始化,并且在您为其指定内容之前无法使用。

Player player = new Player();声明引用player,它指向新创建的Player对象并初始化。

是的,当然,评论中提到的@AxelH存在一些范围/访问差异。第一个声明为private,另一个声明为default

private access modifier
  

private修饰符指定只能在自己的类中访问该成员。

default access modifier
  

如果一个类没有修饰符(默认的,也称为包私有),它只在它自己的包中可见(包是相关类的命名组)

参考:Java docs