Eu estou tentando compreender os métodos estáticos em Java. Eu fiz um python básico antes, então eu estou tentando visualizar método estático do Java em Python.
É o método estático no código abaixo
class test{
public static void main(String[] args) {
printHello();
}
public static void printHello(){
System.out.println("This is a Java's static method");
}
}
equivalente a isso?
def printhello():
print("It is a printhello function")
class hello():
def printhello(self):
print("It is a printhello method of a instance")
Como estáticos métodos podem ser acessados sem a criação de objetos, def printhello
iria trabalhar assim.
E quando um objeto está acessando método estático em Java, o instance method
fornecido na classe python iria trabalhar assim.
Se não, qual seria a visualização direito de método estático de um java em python.
Obrigado.
Aqui
class Hello:
def printhello(self):
...
você está passando uma self
referência ao método. Isto significa que é um exemplo de método.
A estática método nunca é dono de uma referência a uma instância de sua classe que contém por padrão.
Python classe estáticos métodos são definidos, normalmente, usando a @staticmethod
anotação, e eles não aceitamself
class Hello:
@staticmethod
def printhello():
...
Assim, o acima se tornaria, em Java
class Hello {
public static void printhello() {
...
}
}
Java não tem o conceito de funções de primeiro nível, de modo que este
def printhello():
print("It is a printhello function")
não é realmente traduzível, mas é geralmente uma maneira mais idiomática de definição de funções livres / estáticos em Python.
Como você deve ter entendido, respondendo à sua pergunta
É o método estático no código abaixo
...
equivalente a isso?
Não, não é equivalente a todos.