如何使用一个类中的int并将其与其他类中的int进行比较?

时间:2013-01-17 18:38:09

标签: java eclipse

我正在尝试制作老虎机游戏。我搜索过其他论坛,但他们似乎都在使用int的方式与我尝试使用它们的方式略有不同

我有4个课程,这是一个简单的版本:

import java.util.*;
public class ExampleCode {

    public static void main(String[] args) {

        int a = 0;
        int b = 0;
        int c = 0;

        SlotLeft left = new SlotLeft();
        SlotMid mid = new SlotMid();
        SlotRight right = new SlotRight();

        left.left(a);
        mid.mid(b);
        right.right(c);

        if(a==b){
            System.out.println("text");
        }
        if(a==c){
             System.out.println("different text");
        }
        if(b==c){
            System.out.println("More text");
        }
        if(a==b&&a==c&&b==a&&b==c&&c==a&&c==b){
            System.out.println("last text");
        }
    }
}


//left class
import java.util.*;
public class SlotLeft {
    public void left(int a) {
        int 1;
    }
}
//mid class
import java.util.*;
public class SlotMid {
    public void mid(int b) {
        int b = 1;
    }
}

//right class
import java.util.*;
public class SlotRight {
    public void right(int c) {
        int c = 1;
    }        
}

括号可能搞砸了,但这不是我关注的问题。我试图在三个类中设置某些int,然后能够在主类中给它们这个值并比较这三个数字。有什么建议吗?

编辑:尝试使其更加明确,对不起相对较新的Java。

2 个答案:

答案 0 :(得分:0)

为每个插槽使用数组而不是类:

public static final int SLOT_LEFT = 0 ;
public static final int SLOT_MID = 1 ;
public static final int SLOT_RIGHT = 2 ;

int[] slots = new int[3];

设置广告位的值:

slots[SLOT_MID] = 1;

您还可以将所有内容集成到一个类

class SlotManager {
    public static final int SLOT_LEFT = 0 ;
    public static final int SLOT_MID = 1 ;
    public static final int SLOT_RIGHT = 2 ;

    int[] slots = new int[3];

    public void setSlot(int slotId, int value) {
       slots[slotId] = value;
    }


}

答案 1 :(得分:0)

直接为传递给方法的参数赋值不会在调用方法中更改它。换句话说:

public class Test {
    public static void main(String[] args) {
        int i = 0;
        foo(i);
        System.out.println(i); // Prints "0", not "1"
    }

    public void foo(int i) {
        i = 1;
    }
}

这会打印0,而不是1。同样,直接赋值不会更改调用方法中的值。相反,做这样的事情:

public class Test {
    public static void main(String[] args) {
        int i = foo();
        System.out.println(i); // Prints "1"
    }

    public int foo() {
        return 1;
    }
}