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