如何在2种方法中使用int

时间:2015-12-07 17:26:11

标签: java int constants setter getter

我在方法中创建了一个名为Strength的int。看起来有点像这样:

System.Runtime

和第二种方法:

public void Stats(){
    int Strength = (int) Math.ceil(Math.random()*10);
    int Stamina = (int) Math.ceil(Math.random()*10);
    int Speed = (int) Math.ceil(Math.random()*10);
    int Charisma = (int) Math.ceil(Math.random()*10);

这会产生错误。 Eclipse说我应该创建一个名为Strength的常量,但我不想这样做,因为我希望它能够改变。

我基本上只想在其他方法和其他类中使用int Strength。我该怎么做?

感谢。

2 个答案:

答案 0 :(得分:1)

首先,我建议您更改变量名称,以便以小写字母开头,例如力量,耐力。这使得区分对象和变量更容易。你甚至可以遵循匈牙利表示法作为命名惯例。

当强度变量在函数Stats()中声明时,它只存在于其中,因此无法在其他地方引用,这就是为什么它建议你创建一个新的常量。

相反,在类的顶部,您应该声明整个类共有的变量。它们也应该是私有的,然后您提供通过getter和setter修改它们的权限。例如:

public class MyClass {

private int strength;
private int stamina;
...

    public void Stats() {
        strength = (int) Math.ceil(Math.random()*10);
        stamina = (int) Math.ceil(Math.random()*10);
        ...
    }

    public void getStrength() {
        return strength;
    }

    public int setStrength(int s) {
        strength = s;
    }

}

另外,如果按照建议声明变量,在许多IDE中都有一个选项可以自动创建可以节省时间的getter和setter。

答案 1 :(得分:0)

您应该创建类属性,以便可以访问所有(非静态)类方法。调整代码以遵守Java代码约定(变量和方法名称必须以小写字符开头)。

public class MyClass {

    private int strength;
    private int stamina;
    private int speed;
    private int charisma;

    public void stats(){
        strength = (int) Math.ceil(Math.random()*10);
        stamina = (int) Math.ceil(Math.random()*10);
        speed = (int) Math.ceil(Math.random()*10);
        charisma = (int) Math.ceil(Math.random()*10);
    }

    public int getStrength(){
        return strength;
    }

}