gpt4 book ai didi

java - Java 静态方法可以可视化为 python 中的函数 + 具有相同名称(作为函数)的实例方法吗?

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:00:25 24 4
gpt4 key购买 nike

我想了解 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类中提供的实例方法就是这样工作的。

如果不是,什么是 java 静态方法在 python 中的正确可视化。

谢谢。

最佳答案

这里

class Hello:
def printhello(self):
...

您正在将 self 引用传递给该方法。这意味着它是一个实例方法。
默认情况下,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 中定义自由/静态函数的一种更惯用的方式。


你可能已经理解了,回答你的问题

Is the static method in the code below
...
equivalent to this?

不,它根本不等价。

关于java - Java 静态方法可以可视化为 python 中的函数 + 具有相同名称(作为函数)的实例方法吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55329714/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com