0

基本上我正在使用三重字符串在java中设计一个老虎机并且我遇到了一个小问题,到目前为止我有:

class TripleString {

    public static final int MAX_LEN = 20;

    private String string1;    
    private String string2;    
    private String string3;

    TripleString()    
    {
        string1 ="";    
        string2 ="";    
        string3 ="";    
    }

    public void setTripleString (String str1, String str2, String str3) {    
        string1 = str1;    
        string2 = str2;    
        string3 = str3;    
    }

    public void setStrings(String s1, String s2, String s3){    
        String str1 = s1; String str2 = s2; String str3 = s3;     
    }

    public String getstr1(){    
        return str1();    
    }

    public String getStr2(){    
        return str2();    
    }

    public String getstr3(){    
        return str3();    
    }

    private boolean vaildString( String str ) {    
        if (str.length() >0 && str.length() <= MAX_LEN) {           
            return true;    
        }    
        else {
            return false;    
        }    
    }    
}

我现在遇到的问题是,当我尝试返回 str1、2 和 3 时,我收到一条错误消息,提示“str1 方法未定义用于类型 TripleString()”有谁知道我该如何解决这个问题?

编辑:这是老虎机类的另一部分,称为三重字符串,我用来定义字符串,而不是整个程序。我还没有开始 getBet() 部分

4

2 回答 2

1

在这个方法中

public void setStrings(String s1, String s2, String s3){

    String str1 = s1; String str2 = s2; String str3 = s3;

}

您正在定义和设置三个字符串,然后离开setStrings方法的范围,导致字符串消失。

实际上,您可能想要做的是:

public void setStrings(String s1, String s2, String s3){

    string1 = s1; 
    string2 = s2; 
    string3 = s3;
}

无论如何你已经在这里做了:

public void setTripleString (String str1, String str2, String str3) {  
    string1 = str1;   
    string2 = str2;  
    string3 = str3;  
}

和这个:

public String getstr1(){    
    return str1();    
}

public String getStr2(){    
    return str2();    
}

public String getstr3(){    
    return str3();    
}

应该是这样的:

public String getstring1(){    
    return string1;    
}

public String getString2(){    
    return string2;    
}

public String getstring3(){    
    return string3;    
}
于 2013-02-22T22:41:31.603 回答
1

应该像更改“return str1();”一样简单 “返回 str1;”。末尾的括号表示您要返回通过调用 str1() 方法返回的值。但是 str1 不是方法,它是一个字符串。

然而,这些是未声明的。您应该返回 string1 因为那是您实际声明的内容。我会改变你的吸气剂的外壳以保持一致。

所以基本上:

public String getStr1(){    
    return string1;    
}

public String getStr2(){    
    return string2;    
}

public String getStr3(){    
    return string3;    
}
于 2013-02-22T22:42:04.387 回答