Mar*_*ars 11 java methods global function
我最近(4天前)开始在JAVA编程.我有一些来自C++和PHP的整体编程经验.我的问题是:我们可以在JAVA中实现一个在所有类中都可用的函数吗?我正在考虑一些全局日志记录功能,我需要在几个地方调用(日志事件,错误等).
想象一下,我有两个类,A和B.我需要在两个类中调用日志功能,但我不想复制整个函数体(我相信可怕的事情),我想要严格地称它(不创建另一个)类,实例化它,然后从实例调用),就像logEvent(someVariable).所以我应该使用一个抽象类C,A和B将扩展,但它们已经是其他类(内置)的扩展.由于不允许多重继承(是吗?),我需要做一些技巧.辛格尔顿也不讨好我.在PHP或C++中,我只是创建具有函数体的单独文件,然后包含它.
这是我想要使用它的方式:
public class A extends SomeClass {
String error = "Error from class A";
logEvent(error);
}
public class B extends SomeOtherClass {
String error = "Error from class B";
logEvent(error);
}
Run Code Online (Sandbox Code Playgroud)
Vya*_*ham 32
在任何类中放置一个静态方法(它可以是一个utils类,或者其他类),然后像这样调用它: ClassName.functionName()
静态方法属于类,而不属于类的实例,因此您无需实例化类来访问该方法
但Java中的所有内容都必须在类中,因此如果没有类名,则无法访问它.
小智 12
你应该使用静态方法:
package xxx;
public class Util{
public static void logEvent(String error){
...
}
}
Run Code Online (Sandbox Code Playgroud)
并导入静态:
import static xxx.Util.*;
public class A extends SomeClass {
String error = "Error from class A";
logEvent(error);
}
Run Code Online (Sandbox Code Playgroud)