如何在java中处理不同的对象?

kse8i1jr  于 2021-07-11  发布在  Java
关注(0)|答案(1)|浏览(381)

关闭。这个问题需要更加突出重点。它目前不接受答案。
**想改进这个问题吗?**通过编辑这篇文章更新这个问题,使它只关注一个问题。

上个月关门了。
改进这个问题
好吧,我几天前就开始学java了,我没走太远。。。我遇到了一个关于不同对象和构造函数的问题。所以对于这个小项目,我需要使用bluej,因为这是学校用的。这不是我们在学校的代码,但这是一个普遍的问题,代码是相似的。假设我们有:

public class Pokemon {

    public String name;
    public String type;
    public int hpNow;
    public int hpMax;

    public void Pokemon(String oName, String oType, int oHpNow, int oHpMax) {
        name=oName;
        type=oType;
        hpNow=oHpNow;
        hpMax=oHpMax;
    }
}

所以我听说了new操作符,或者关键字,不确定,现在应该创建一个新对象了,但是在bluej中,你可以在主菜单中通过调用构造函数来实现。我们现在想创建一个攻击方法(一个简单的方法,忽略类型和内容),我们在我的类中所做的如下:

public void attack(Pokemon oName) {
    oName.lpNow=oName.lpNow-ap;
}
//and then some kind of System.out.println(); stuff

所以。。。我不明白的是,对于不同的物体我该怎么做?我的意思是我有一个pokemon(不确定它是否是一个对象),它使用直接在类行下分配的变量,还有一个使用构造函数中的变量。我通过oname使用第二个对象。然后是一些东西。如果我现在使用构造函数创建第三个对象,我将如何使用该对象?我的意思是我可能还会用在我身上。后面是什么,但我已经用它来做第二个了??是第一个使用名称而不是oname作为例子的pokemon,并且不需要。甚至一个物体?

mrphzbgm

mrphzbgm1#

我认为你误解了课堂的运作方式,你/你老师的命名习惯也不太好。
首先 oName 在构造函数中为 String 中的那个 attack 是指pokemon对象本身。所以在 attack 你正在访问口袋妖怪的 hpNow 属性并从中减去一个数字,而不是字符串。
当你使用 new 关键字创建一个对象时,您在类中创建的所有方法都可以被该特定对象访问。对象是pokemon类的特定示例。如果你有两个物体
Pokemon pikachu = new Pokemon(...) Pokemon charmander = new Pokemon(...) 你可以这样做 charmander.attack(pikachu)

相关问题