关闭。这个问题需要更加突出重点。它目前不接受答案。
**想改进这个问题吗?**通过编辑这篇文章更新这个问题,使它只关注一个问题。
上个月关门了。
改进这个问题
好吧,我几天前就开始学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,并且不需要。甚至一个物体?
1条答案
按热度按时间mrphzbgm1#
我认为你误解了课堂的运作方式,你/你老师的命名习惯也不太好。
首先
oName
在构造函数中为String
中的那个attack
是指pokemon对象本身。所以在attack
你正在访问口袋妖怪的hpNow
属性并从中减去一个数字,而不是字符串。当你使用
new
关键字创建一个对象时,您在类中创建的所有方法都可以被该特定对象访问。对象是pokemon类的特定示例。如果你有两个物体Pokemon pikachu = new Pokemon(...)
Pokemon charmander = new Pokemon(...)
你可以这样做charmander.attack(pikachu)