我正在尝试理解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")
由于静态方法可以在不创建对象的情况下访问,def printhello
的工作方式如下所示。
当一个对象访问Java语言中的静态方法时,python类中提供的instance method
将像这样工作。
如果不是,那么在python中实现java静态方法的可视化是正确的。
谢谢。
发布于 2019-03-25 08:13:44
这里
class Hello:
def printhello(self):
...
您正在向该方法传递一个self
引用。这意味着它是一个实例方法。
默认情况下,静态方法从不拥有对其包含类的实例的引用。
Python类静态方法通常是使用@staticmethod
注解定义的,它们不接受self
class Hello:
@staticmethod
def printhello():
...
因此,上面的代码在Java中就变成了
class Hello {
public static void printhello() {
...
}
}
Java没有第一级函数的概念,所以这是
def printhello():
print("It is a printhello function")
并不是真正可翻译的,但它通常是在Python中定义自由/静态函数的一种更常用的方法。
正如你可能已经理解的,回答你的问题
是下面代码中的静态方法
..。
等同于这个吗?
不,它根本不是等同的。
https://stackoverflow.com/questions/55329714
复制相似问题