我正在尝试使用 class Axe(Arma)
的构造函数表示为 Player(Heroi)
内的对象,但只是做 Player.Axe.setAtaque()
不起作用,请帮助我!
package Items;
public class Arma extends Item {
private int ataque;
public int getAtaque() {
return ataque;
}
public void setAtaque (int attack) {
this.ataque = attack;
}
}
英雄级:
package Personagens;
import Items.*;
public class Heroi extends Personagem{
Mochila Backpack = new Mochila();
Cinto Belt = new Cinto();
Bracelete Bracelet = new Bracelete();
Arma Axe = new Arma();
}
主类:
package guiaPOO;
import Personagens.*;
public class main {
public static void main( String [] args) {
Heroi Player = new Heroi();
/* This Doesnt Work */
Player.Axe.setAtaque();
}
}
weapon(Arma)
我在类 Heroi
中创建了一个对象当尝试在 main 中访问或修改它时甚至不会显示。
抱歉英语不好。
最佳答案
如果您不指定 public
、protected
或 private
,类的成员将获得所谓的包访问权限。
由于 Axe
具有包访问权限,因此只能从包含它的包 (Personagens
) 中访问它。
只需在字段声明前面添加 public
即可,如下所示:
public Mochila Backpack = new Mochila();
public Cinto Belt = new Cinto();
public Bracelete Bracelet = new Bracelete();
public Arma Axe = new Arma();
并且可以通过任何代码访问它们。 (当然,如果您希望其中一些无法从任何代码中访问,则不要将其添加到这些字段中)
关于java - 在对象内部使用对象的构造函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29112643/