我试图了解Java中的静态方法。我之前已经做过基本的python,所以我试图在Python中可视化Java的静态方法。
下面的代码中的静态方法是
class test{
public static void main(String[] args) {
printHello();
}
public static void printHello(){
System.out.println("This is a Java's static method");
}
}
相当于这个吗?
def printhello():
print("It is a printhello function")
class hello():
def printhello(self):
print("It is a printhello method of a instance")
由于可以在不创建对象的情况下访问 static 方法,因此def printhello
将像这样工作。
并且当对象正在使用Java访问静态方法时,python类中提供的instance method
会像这样工作。
如果没有,那么在python中可视化Java静态方法是正确的。
谢谢。
答案 0 :(得分:4)
这里
class Hello:
def printhello(self):
...
您正在传递self
对该方法的引用。这意味着它是一个 instance 方法。
默认情况下, static 方法从不拥有对其包含类的实例的引用。
Python类 static 方法通常是使用@staticmethod
注释定义的,它们不接受self
class Hello:
@staticmethod
def printhello():
...
因此,以上内容将变成Java
class Hello {
public static void printhello() {
...
}
}
Java没有一级功能的概念,因此
def printhello():
print("It is a printhello function")
并不是真正可翻译的,但是它通常是在Python中定义自由/静态函数的惯用方式。
您可能已经理解,回答问题
下面的代码中的静态方法是
...
等于这个吗?
不,一点都不等同。