我试图使用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;
}
}
Class Heroi:
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
对象在尝试访问或修改主要内容时甚至无法显示。
抱歉英语不好。
答案 0 :(得分:1)
如果您未指定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();
可以从任何代码访问它们。 (当然,如果您希望其中一些不可以从任何代码访问,那么不要将它添加到这些字段中)
答案 1 :(得分:0)
Player.Axe.setAtaque();
您尚未将参数传递给setAtaque
方法。它应该类似于Player.Axe.setAtaque(5);