// 1
private Player player;
// 2
Player player = new Player();
我想知道这两个陈述之间的区别。感谢。
答案 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。