如何调用比较另一个类(包)的两个字符串的方法?

时间:2017-09-01 13:39:11

标签: java intellij-idea methods call packages

我在intellij的java文件夹中有两个类(我的意思是两个不同的文件):

Main.class 和 的 Fields.class

Fields.class 中,我只想保存我在应用上测试的所有字段(姓名,姓氏,电话等)。例如:

String a1 = "Tom";
String b1 = "James";

Main.class 中,我编写代码并尝试调用某些方法。例如,我想编写从 Fields.class 中编译2个字符串的方法。我的结果在这里:

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

    String var1;
    String var2;

    class equalsM {
          void equalsMethod(String a1, String b2) {
            if (a1.equals(b1)) System.out.println("OK");
            else System.out.println("Bad");
        }
    }

我想写一个方法,每次需要时调用这个方法..

我的问题:我不知道如何在 Main.class 中调用 equalsMethod 方法,并比较 Fields.class <中的字符串/ p>

我正在阅读Herbert Schildt的书,但仍然不了解一些基础知识......

2 个答案:

答案 0 :(得分:0)

调用方法取决于其状态。有两种方法:实例和类方法。实例方法只能用实例调用,而类方法可以在类上调用(实例化或不实例化)。

首先

定义时:

class equalsM {
    void equalsMethod(String a1, String b2) {
        if (a1.equals(b1)) System.out.println("OK");
        else System.out.println("Bad");
    }
}

使用实例方法equalsMethod定义类。要调用它,您需要实例化该类:

equalsM i = new equalsM();
i.equalsMethod("foo","bar");

这可能不是你所期望的,因为将某个类似于函数的东西实例化是不必要的。您可能需要一个静态方法,例如:

class equalsM {
    static void equalsMethod(String a1, String b2) {
        if (a1.equals(b1)) System.out.println("OK");
        else System.out.println("Bad");
    }
}

在这种情况下调用它可能只是:

equalsM.equalsMethod("foo","bar");

第二

不要使用内部类来满足这种需求,在外面定义你的equalsM类并按照建议使用它。

第三

拼写你的类,就像许多约定中所建议的那样:EqualsM(首字母大写)。

评论说,你的设计非常糟糕,我建议你阅读一下基本的OOP。

答案 1 :(得分:0)

如果您不需要定义内部类,则可以使用静态方法执行代码,也可以使用其他人建议的上述示例。

public class Main {

    public static void main(String[] args) {

        Fields field = new Fields();

        String var1 = field.a1;
        String var2 = field.b1;
        equalsMethod(var1,var2);
    }

    private static void equalsMethod(String var1, String var2) {
        if (var1.equals(var2)) {
            System.out.println("OK");
        }
        else {
            System.out.println("Bad");
        }   
    }
}