如何从另一个Java文件中获取值?
第一个Java文件:如何从另一个Java文件中获取值?,java,oop,Java,Oop,第一个Java文件: public class Swordsman extends Beginner { public String attFunc; public String attSkill; private String nickname; private int power; private int result; public void setnickname(String nickname) { this.nickn
public class Swordsman extends Beginner {
public String attFunc;
public String attSkill;
private String nickname;
private int power;
private int result;
public void setnickname(String nickname) {
this.nickname = nickname;
}
public void setpower(int power) {
this.power = power;
}
public Swordsman(int p, String nm) {
setnickname(nm);
setpower(p);
/*nickname=nm;
*power=p;
*/
}
public String nickname() {
return nickname;
}
public int power() {
return power;
}
public int result() {
if (power >= bpower) {
result = 1;
} else if (power < bpower) {
result = 0;
}
}
}
public class Boss {
public int bpower(){
return bpower;
}
}
编译错误:
.\Swordsman.java:32: error: cannot find symbol
}else if(power<bpower){
\browsman.java:32:错误:找不到符号
}else if(power我在理解这个问题上有很多困难。你似乎缺乏java的基本概念以及面向对象编程
我会尝试解释:
- 您有一个类
剑客
,可以实例化该类来创建剑客对象。这些对象只能看到自身的内容
- 您有一个类
Boss
,它完全独立。并且可以实例化以创建Boss对象
- 如果您想访问存储在Boss对象中的任何值,通常会使用getter和setter方法。您已经有了这些方法(即getter)。请注意,您通常希望按照约定将这些方法命名为
getBpower()
。您在某些方法上这样做了,但在其他方法上忘记了
- 要真正能够使用该方法,您需要将类导入到目标类中,如
import Boss;
,然后您需要从某处获取该对象的实例(通过将其作为参数传递或通过重新创建它,如Boss currentBoss=new Boss();
然后您可以访问您的值,如currentBoss.getBpower();
- 但是,Boss类没有bpower的setter,也没有构造函数,您可以在其中将一些默认值设置为bpower。因此,当前的Boss类完全没有用处,因为bpower不能具有有效的int值
- 在架构方面也有很大的改进空间。你正在开始一个
神类
。你的剑客类开始做一些你可能不希望它做的事情。比如计算一场战斗的结果
- 顺便说一句:一个好习惯是根据方法所做的事情来命名方法。因此,
result
听起来像一个属性名(名词),而它是一个方法(动词)。因此,getResult()
会有一定的意义,甚至更好的做法是boolean isfighttagainstenemysuccessful(敌人)
- 然而,在将战斗逻辑编码到你的角色类中时,你可能需要三思而后行。在所有角色都继承自的普通类(这里是初学者)中,这是最好的
- 或者,您甚至可以创建一个singleton
FightingMachine
类,该类提供一些实用方法,如boolean FightingMachine.isCharacterWinningAgainstBenefy(角色,敌人)
- 经验法则:如果你将一种能力编码到一个看起来令人惊讶的类中,那么它可能是错误的。对于rpg来说,我认为它的外壳是某种游戏状态。它可以控制和存储环境、角色和敌人,并在需要时发起战斗。而不是另一个到处乱跑
我的实际建议是在编写角色扮演游戏之前先学习java的概念。这样你会有更多的乐趣。我保证!“在编写代码之前先学习java的概念[…]”这可以写在这么多的问题下:D.答案很好,顺便说一句。我完全理解从做某事开始而不是通过一些“枯燥”的教程和课程工作的冲动,但这通常意味着事后获得乐趣并完成一些事情。