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



我在Intellij中的Java文件夹中有2个类(我的意思是两个不同的文件):

main.class fields.class

in fields.class 我只想保存我在应用程序上测试的所有字段(名称,姓氏,tel等)。例如:

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

in 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");
        }
    }

我想每次都需要一个方法并调用此方法。

我的问题:我不知道如何调用方法等equalsMethod 在我的 main.class.class 中,并从 fields.classs.classs.class <<

我正在读赫伯特·席尔特(Herbert Schildt)的书,但仍然不了解一些基本知识...

调用方法取决于其状态。有两种方法:实例和类方法。实例方法只能使用一个实例调用,而类方法可以在类上调用(是否启用)。

首先。

定义:

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的信息。

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

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");
        }   
    }
}

最新更新