在对象内使用对象的构造函数

时间:2015-03-18 01:22:09

标签: java object

我试图使用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对象在尝试访问或修改主要内容时甚至无法显示。

抱歉英语不好。

2 个答案:

答案 0 :(得分:1)

如果您未指定publicprotectedprivate,则班级成员将获得所谓的包访问权

由于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);