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

Use constructor of an object inside an 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 英雄:

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();
}

主要class:

package guiaPOO;

import Personagens.*;

public class main {
    public static void main( String [] args) {
        Heroi Player = new Heroi();

        /* This Doesnt Work */
        Player.Axe.setAtaque();
    }
}

我在 class Heroi 中作为对象创建的 weapon(Arma) 在尝试在 main 中访问或修改它时甚至没有出现。

抱歉英语不好。

Player.Axe.setAtaque(); 您还没有将参数传递给 setAtaque 方法。它应该类似于 Player.Axe.setAtaque(5);

如果您不指定 publicprotectedprivate,class 的成员将获得所谓的 包访问权限.

因为 Axe 具有包访问权限,所以只能从包含它的包 (Personagens) 中访问它。

只需在字段声明前加上public,像这样:

public Mochila Backpack = new Mochila();
public Cinto Belt = new Cinto();
public Bracelete Bracelet = new Bracelete();
public Arma Axe = new Arma();

并且可以通过任何代码访问它们。 (当然,如果您希望它们中的一些可从任何代码访问,则不要将其添加到这些字段)