我在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的书,但仍然不了解一些基础知识......
答案 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");
}
}
}