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;

}

3つの文字列を定義して設定し、メソッドのスコープを離れて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

「returnstr1();」を変更するのと同じくらい簡単にする必要があります。「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 に答える