如何从同一个类中的另一个方法调用变量,以及调用该方法?

时间:2013-10-16 18:30:28

标签: java variables methods call

我正在努力理解声明和调用类的概念以及它们之间的变量流量。 在我现在的代码中我认为有几个问题,但现在的主要问题是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;
    }
}

我在尝试编译时遇到的错误:(我确实看到它找不到值,但是我需要一些帮助才能找到特定的值。)

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

4 个答案:

答案 0 :(得分: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;
    }
}

原始代码中的问题:您正在尝试访问main中forekommer()方法中声明的局部变量,这是不可能的。

答案 1 :(得分:1)

问题是在您的main方法中,您无法访问“retval”。 调用forekommer方法后,需要将结果分配给局部变量。 例如:

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

答案 2 :(得分: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);
    }
}

答案 3 :(得分:-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;
    }

}