Je suis en train de comprendre les méthodes statiques en java. Je l'ai fait un python de base avant, donc je suis en train de visualiser méthode statique de Java en Python.
La méthode statique dans le code ci-dessous
class test{
public static void main(String[] args) {
printHello();
}
public static void printHello(){
System.out.println("This is a Java's static method");
}
}
équivalent à cela?
def printhello():
print("It is a printhello function")
class hello():
def printhello(self):
print("It is a printhello method of a instance")
Comme statiques méthodes sont accessibles sans création d'objets, def printhello
fonctionnerait comme ça.
Et quand un objet accède méthode statique en Java, la instance method
condition serait dans la classe de python fonctionne comme ça.
Sinon, quelle serait la visualisation à droite de la méthode en python statique d'un java.
Merci.
Ici
class Hello:
def printhello(self):
...
vous passez une self
référence à la méthode. Cela signifie qu'il est un exemple méthode.
Une statique méthode possède jamais une référence à une instance de classe contenant par défaut.
Classe Python statiques méthodes sont définies, généralement, en utilisant l' @staticmethod
annotation, et ils n'acceptentself
class Hello:
@staticmethod
def printhello():
...
Ainsi, le ci-dessus deviendrait, en Java
class Hello {
public static void printhello() {
...
}
}
Java ne pas le concept de fonctions de premier niveau, cette
def printhello():
print("It is a printhello function")
est pas vraiment traduisible, mais il est généralement une façon plus idiomatiques de définir les fonctions libres / statiques en Python.
Comme vous l'avez compris, répondre à votre question
La méthode statique dans le code ci - dessous
...
équivalent à cela?
Non, ce n'est pas du tout équivalent.