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

标签 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;
    }

}

英雄级:

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 中访问或修改它时甚至不会显示。

抱歉英语不好。

最佳答案

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

由于 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/

相关文章:

java - 在BroadcastReceiver中使用callbackContext

java - 如何阻止编译器将未初始化的对象读取为错误

PHP - 通过对象数组中的键查找对象,更新其值

java - 如何创建 oracle.sql.ARRAY 对象?

php - 如何从 PHP 扩展返回 C++ 对象数组

javascript - 对对象中的方法和属性使用相同的变量

javascript - 是否有类似的方法来创建没有原型(prototype)的数组?

ScrollPaneSkin 的 JavaFX 实例失败

java - hibernate :无法在类上找到适当的构造函数 - HQL

java - mergeDelayError() 之后 Observable.take() 是如何工作的?