我创建了一个应该创建Swords的类,但我只是遇到了一堆错误......
package swords;
public class Sword {
public static void main(String [ ] args){
public int numberOfSwords=0;
public static void newSword(String nameSword, int damageSword){
numberOfSwords++;
}
}
}
我想,当我输入newSword(Overpowered Sword, 1000000)
时,将int numberOfSwords
增加1,剑的实际创建将在稍后出现:D
但是我遇到了很多错误:
在package swords;
- 无法解析java.lang.Object类型。它是从所需的.class文件间接引用的。
在public class Sword {
- 默认构造函数未定义隐式超级构造函数Object()。必须定义显式构造函数
在public static void main(String [ ] args){
- 字符串无法解析为类型
在public int numberOfSwords=0;
- 参数numberOfSwords的非法修饰符;只允许决赛
public static void newSword(String nameSword, int damageSword){
处的最终错误 - 此行的多个标记
- 令牌“,”的语法错误;预期
- 令牌上的语法错误“(”,;;
- void是变量newSword的无效类型
- 无法将字符串解析为类型
- 令牌上的语法错误“)”,;预期
我希望你能帮助我!
编辑:我正在运行Linux Mint,所以我不知道它是否可能是我的系统的东西,因为我尝试了给定的代码,但得到相同的错误!我正在调查^ ^ 编辑2:我刚刚运行了一个命令告诉我我没有安装JDK,我想我发现了问题:P我将来会更加关注需求,对不起......编辑3:显然我安装了JDK,所以我不知道问题是什么...建议非常感谢!
答案 0 :(得分:2)
试试这个
public class Sword{
public Sword(string name, int damage){
this.name = name;
this.damage = damage;
++swordsCreated;
}
public string getName(){ return name; }
public int getDamage(){ return damage; }
private string name;
private int damage;
public static int getCountOfSwordsCreated(){ return countOfSwordsCreated; }
private static int countOfSwordsCreated;
}
在Game.java中
public class Game{
public static void main(string [] args)
{
Sword mySword = new Sword("Overpowered Sword", 1000000);
System.out.println(mySword.getName());
}
}
答案 1 :(得分:1)
我不确定你想要什么,这样的事情?
package swords;
public class Sword {
public static int numberOfSwords = 0;
public static void main(String[] args) {
newSword("Overpowered Sword", 1000000);
}
public static void newSword(String nameSword, int damageSword) {
numberOfSwords++;
}
}
答案 2 :(得分:0)
也许这会有所帮助。
package swords;
class Sword {
private static int numberOfSwords = 0;
public static void main(String[] args) {
newSword("Overpowered Sword", 100);
}
public static void newSword(String nameSword, int damageSword) {
numberOfSwords++;
}
}
注意:强>
将变量保密并将函数公开是一种很好的做法。因此,公共函数是访问变量的唯一可能方式,从而确保安全性。
确保将代码保存为剑文件夹中的Sword.java
答案 3 :(得分:0)
您的代码主要有两个问题:
首先,您尝试将long值传递给函数的整数参数。
接下来,在main()方法中声明并初始化numberOfSwords,因此它是一个局部变量。您需要将其设置为全局,以便从newSword()方法访问它。
以下代码段在我的NetBeans IDE 7.3中完美运行。我认为这对你有用。
快乐编码!!! :):)
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package sword;
/**
*
* @author Jack Sparrow
*/
public class Sword {
/**
* @param args the command line arguments
*
*/
public static void main(String[] args) {
// TODO code application logic here
newSword("Overpowered Sword",1000000);
}
public static void newSword(String nameSword, long damageSword)
{
int numberOfSwords = 0;
if ((nameSword == ("Overpowered Sword")) && (damageSword == 1000000))
{
numberOfSwords++;
System.out.println(numberOfSwords);
}
else
{
System.out.println("Error!");
}
}
}
答案 4 :(得分:0)
确保您的JAVA_HOME / JDK引用有效路径。如果找不到有效的java,则会产生与java.lang相关的错误。