问:这是两个代码块:
公共类PezDispenser {
私有字符串mCharacterName;
公共PezDispenser(String nameOfCharacter){
mCharacterName = nameOfCharacter;
}
public String getCharacterName(){
return mCharacterName;
}
}
和
公共类PezDispenser {
private String mCharacterName =“ Yoda”;
公共PezDispenser(String nameOfCharacter){
mCharacterName = nameOfCharacter;
}
public String getCharacterName(){
return mCharacterName;
}
}
<=“ Yoda”>在代码中是否起作用?该代码在没有<=“ Yoda”>的情况下运行。
答:区别在于底部代码将继续返回“ yoda”,因为它是固定的mCharacterName。但是在未定义mCharacterName的顶级代码中,您可以将其更改为所需的任何内容。在视频中,当他更改Example.java中的代码时;代码行显示:PezDespenser分配器= new Pezdespenser(“ donatello”); 它使我们可以将名称更改为donatello;但是如果用户想要其他东西,例如海绵球,米奇等,我们将有能力做到这一点。希望能帮助到你!
答:在第一个示例中,私有字段mCharacterName被声明,但未设置或初始化。因此,在创建或实例化PezDispenser对象时,PezDispenser构造函数(与其类具有相同的名称)将要求您传入String参数。但是通过这种方式,您可以将mCharacterName值更改或修改为所需的任何字符名称(在PezDispenser类的实例中)
在第二个示例中,您已经声明并初始化了私有成员变量mCharacterName的值。这样,您已经将mCharacterName值硬编码为“ Yoda”
希望能有所帮助。