2013-10-16 54 views
1

我很努力地理解聲明和調用類的概念以及它們之間的變量流量。 在我現在的代碼中,我相信有幾個問題,但現在的主要方法是main方法不能使用其他方法返回的值,我相信我有其餘的權利。 代碼:如何從同一個類中的另一個方法調用變量,以及調用該方法?

import java.util.*; 
import java.io.*; 

class Uke63{ 
    public static void main(String[]args){ 

     char c='t'; 
     String tekst="Jabba the Hutt var en stygg fyr"; 

     forekommer(c, tekst); 

     System.out.println(retval.forekommer); 

    } 

    static boolean forekommer(char c, String tekst){ 

     boolean retval=tekst.contains(c); 
     return retval; 
    } 
} 

而且在編譯的時候我得到的錯誤:(我看到它沒有找到的價值,但我需要如何使它發現,特定的值一定的幫助。)

[email protected]:~/Programmering/Ukeoppgaver$ javac Uke63.java 
Uke63.java:12: error: cannot find symbol 
    System.out.println(retval.forekommer); 
        ^
    symbol: variable retval 
    location: class Uke63 
Uke63.java:18: error: method contains in class String cannot be applied to given types; 
    boolean retval=tekst.contains(c); 
         ^
    required: CharSequence 
    found: char 
    reason: actual argument char cannot be converted to CharSequence by method invocation conversion 
2 errors 
+0

的錯誤是來幫助你,閱讀它們! – jmoreira

+2

你究竟在哪裏得到了使用這種語法的概念? 'System.out.println(retval.forekommer);' –

回答

5

修改代碼以這種

import java.util.*; 
import java.io.*; 

class Uke63{ 
    public static void main(String[]args){ 

    char c='t'; 
     String tekst="Jabba the Hutt var en stygg fyr"; 

    System.out.println(forekommer(c, tekst)); 

    } 

    static boolean forekommer(char c, String tekst){ 

    boolean retval=tekst.contains(c); 
    return retval; 
    } 
} 

在原代碼中的問題:您試圖訪問(在forekommer聲明的局部變量主)方法,是不可能的。

+0

算法師解決這個問題的方式是正確的,它可以讓您感到很自在:http://www.java-made-easy.com/variable-scope。 html –

+0

啊,謝謝!它真的幫助:) – Makri

1

問題是,在你的主要方法中,你無法訪問「retval」。 在你調用forekommer方法之後,你需要將結果賦給一個局部變量。 例如:

boolean someVarName =forekommer(c, tekst); 
System.out.println(someVarName); 
0

在這裏你去,精一些問題的答案,並在這裏取得的代碼編譯和運行。

public class Uke63{ 
    public static void main(String[]args){ 
     CharSequence c= "t"; 
     String tekst="Jabba the Hutt var en stygg fyr"; 
     System.out.println(forekommer(c, tekst)); 
    } 

    private static boolean forekommer(CharSequence c, String tekst){ 
     return tekst.contains(c); 
    } 
} 
-1
public class Basics { 

    public static void main(String[] args) { 
     CharSequence c = "t"; 
     String tekst="Jabba the Hutt var en stygg fyr"; 
     boolean x = forekommer(c, tekst); 
     System.out.println(x); 
    } 

    static boolean forekommer(CharSequence c, String tekst){ 
     CharSequence x = c; 
     boolean retval = tekst.contains(x); 
     return retval; 
    } 

} 
+0

雖然這段代碼可以解決這個問題,[包括解釋](http://meta.stackexchange.com/questions/114762/explaining-entirely-code-based-answers)真的有助於改善您的帖子的質量。請記住,您將來會爲讀者回答問題,而這些人可能不知道您的代碼建議的原因。 – DimaSan

相關問題