Java 如何调用比较另一个类(包)中两个字符串的方法?
我在intellij的java文件夹中有两个类(我指的是两个不同的文件): Main.class和 字段。类 在字段.class中,我只想保存我在应用程序上测试的所有字段(姓名、姓氏、电话等)。例如:Java 如何调用比较另一个类(包)中两个字符串的方法?,java,intellij-idea,methods,call,packages,Java,Intellij Idea,Methods,Call,Packages,我在intellij的java文件夹中有两个类(我指的是两个不同的文件): Main.class和 字段。类 在字段.class中,我只想保存我在应用程序上测试的所有字段(姓名、姓氏、电话等)。例如: String a1 = "Tom"; String b1 = "James"; 在Main.class中,我编写代码并尝试调用一些方法。例如,我想编写一个方法,用于比较Fields.class中的两个字符串。我的结果如下: public class Main { public static vo
String a1 = "Tom";
String b1 = "James";
在Main.class中,我编写代码并尝试调用一些方法。例如,我想编写一个方法,用于比较Fields.class中的两个字符串。我的结果如下:
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,并比较字段中的字符串。class
我正在读赫伯特·席尔德的书,但仍然不懂一些基本知识 调用方法取决于其状态。有两种方法:实例方法和类方法。实例方法只能与实例一起调用,而类方法可以在类上调用(实例化或非实例化) 首先 定义时:
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");
}
}
}
equalsMethod方法不是主类的方法。它是在主类的主方法中定义的局部内部类equalsM的方法。直接在主类中定义方法。将其设置为静态,因为它是一个纯实用方法,不需要访问Main的任何实例的状态。也将其公开,使其在任何地方都可见,并使用Main.equalsM(…)从任何地方调用它。这是Java入门书籍或Java教程中所涵盖的基本内容。在提问之前先读一遍。谢谢,但是我想使用Main.java中Fields.java的数据。这并不能解决我的问题。如果它不能解决问题,那就意味着你做错了什么。但是你没有发布你的尝试,所以不可能说出什么。你也不可能在这么短的时间内阅读并消化我链接的Java教程。所以退一步,读一读。仔细地写:static void equalsMethod(字符串a1,字符串b1){if(a1.equals(b1))System.out.println(“OK”);else System.out.println(“Bad”)}我得到了一个错误。无法解析符号a1、B1,谢谢。但是如何在Main.java项目中使用Fields.java中的数据呢?如何调用我的方法并使用Fields.java中的数据?不可能吗?