2013-02-22 2 views
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()« Кто-нибудь знает, как я могу это исправить?

EDIT: это еще одна часть класса игрового автомата, называемая тройной строкой, которую я использую для определения строк, а не всей программы. Я не начал getBet() части еще

+0

str1() это не метод, поэтому он не определен. Попробуйте вернуть «str1», а не «str1()». (И я не просмотрел весь код, просто говорю, ваше сообщение об ошибке связано с тем, что вы пытаетесь вернуть метод.) –

+0

попробовал, он говорит, что он не может разрешить «str1» как переменную – eflam117

ответ

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;  
} 
+0

им не полностью что вы подразумеваете, определяя их как членов. Как мне это сделать? – eflam117

+0

Уже отредактировал мой ответ. У вас больше проблем, чем просто неправильное задание. –

+0

к сожалению, когда я это делаю, он говорит мне, что метод возвращаемой строки не определен для тройной строки, что означает, что он не использует значения из метода заданных строк в качестве ожидаемого id – eflam117

1

Должно быть так же просто, как изменить «return str1();» «вернуть str1;». В скобках в конце говорилось, что вы хотите вернуть значение, возвращаемое вызовом метода str1(). Но str1 не является методом, это будет String.

Однако они не обнародованы. Вы должны возвращать string1, потому что это то, что вы на самом деле объявили. И я изменил бы корпус ваших геттеров, чтобы они были последовательными.

Так в основном:

public String getStr1(){  
    return string1;  
} 

public String getStr2(){  
    return string2;  
} 

public String getStr3(){  
    return string3;  
} 
Смежные вопросы