我正在开发一个小型RPG项目,我无法用其他方法打印一个数字。
这里是主要的:
///////// SMTMain /////////
//Note: this is a parody game and not to be meant for actual retail purposes.
// SMTMain.java
import java.util.Scanner;
public class SMTMain
{
public static void main( String[] args )
{
Scanner scan = new Scanner(System.in);
SMTBattle battle = new SMTBattle();//runs the battle method, works fine.
SMTStats stats = new SMTStats();
//battle.battle(); commented out battle until i can get stats working
System.out.print(stats.pcstats(str));
//error, cannot find symbol ^
} // end main
} // end class SMTMain
包含所有统计信息的文件:
///////// SMTStats /////////
// SMTStats.java
import java.util.Scanner;
public class SMTStats
{
Scanner input = new Scanner( System.in );
////////Main Stats///////////////
private int lvl; //level
private double str; //strength
private double agi; //agility
private double itl; //intellect
private double wis; //wisdom
private double lk; //luck
//////Main Stats end/////////////
///////stats that are influenced by main stats or gear/////////
private double hp; // health
private double mp; //mana
private double arm; //armor
private double atk; //attack
private double crit; //critical
private double hit; //chance to hit
private double def; //defense
private double dge; //dodge
////////stats etc. ends//////////////////////////////////
double pcstats; //player character function
public double pcstats() //player character stats
{
//int lvl = 1; //worried about just str currently
double str = 10.0;
/*agi = 10;
itl = 10;
wis = 10;
lk = 10;
hp = 30;
mp = 30;
arm = 30;
atk = 1.2 * str;
crit = (1.5 * lk) / 2;
hit = 1.5 * (agi * 2);
def = arm / str;
dge = (agi * 1);*/
return pcstats;
}
} // end class SMTStats
我尝试使用谷歌搜索我的错误,但我无法找到问题的答案,而且我仍然对java编程很新,我希望所有人都能引导我走向正确的方向。
答案 0 :(得分:2)
Java试图找到一些名为 str 的变量。但 SMTMain 没有名为 str 的变量。 SMTMain 类可以&#t;""""您在另一个类中声明的内容( SMTStats )。
变量 stats 是类 SMTStats 的对象(所谓的类实例)。 在 SMTStats 类中还需要一个方法(Object的功能)。 通常,您制作所谓的 getter 和 setter 方法。
SMTStats 中str的getter:
public int getStr() {
return str;
}
方法getStr()将变量str返回 SMTMain 。
SMTStats 中str的setter:
public void setStr(double newStr) {
str = newStr;
}
方法setStr设置 SMTMain 的变量。
在课程 SMTMain 中,您现在可以从 SMTStats 打印变量str:
System.out.print(stats.getStr());
getter方法的名称暗示了你想要/返回的变量。
一个不错的 java教程(第25章是面向对象的编程):
http://chortle.ccsu.edu/java5/index.html