[英]How do I call for variables from another method in same class, as well as call upon the method?
我正在努力理解聲明和調用類的概念以及它們之間的變量通信。 在我現在擁有的代碼中,我相信有幾個問題,但是現在的主要問題是主方法無法使用另一種方法返回的值,我相信其余部分都正確。 編碼:
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;
}
}
我嘗試編譯時遇到的錯誤是:(我確實看到它找不到值,但是我需要一些有關如何使其找到特定值的幫助。)
makri@Marius-samlap:~/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
修改您的代碼為此
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;
}
}
原始代碼中的問題:您正在嘗試訪問main中的forekommer()方法中聲明的局部變量。
問題是在您的主要方法中,您無權訪問“ retval”。 調用前叉方法之后,需要將結果分配給局部變量。 例如:
boolean someVarName =forekommer(c, tekst);
System.out.println(someVarName );
在這里,您可以細化這里的一些答案,並使代碼得以編譯和運行。
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);
}
}
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;
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.