À propos des méthodes Java statiques et non statiques

Je vais toucher Java, alors ne l'oubliez pas (si vous faites une erreur, je l'apprécierais si vous pouviez commenter) Si vous n'êtes pas familier avec les méthodes statiques et non statiques, juste pour référence ...

Si vous êtes un débutant en premier lieu, pourquoi ne pas ajouter de la statique à la méthode comme magie? Je n'ai pas compris le sens et l'ai écrit pour le moment! Lol Regardez d'abord les deux codes ci-dessous.

-Méthodes statiques et non statiques

1. méthode statique

A.java


class A {
    public static void main(String[] args){
        calc(); //Appelez la méthode calc
    }
    
    static void calc(){ //calc est une méthode statique
        //Traitement des calculs
    }
}

2. Méthode non statique

A.java


class A {
    public static void main(String[] args){
        calc(); //Appelez la méthode calc
    }
    
    void calc(){ //calc est une méthode non statique
        //Traitement des calculs
    }
}

Les deux programmes essaient d'appeler la méthode calc à partir de la méthode principale. Cependant, si le programme utilise le mauvais statique, il sera compilé. "Les méthodes non statiques ne peuvent pas être référencées à partir d'un contexte statique" J'obtiens l'erreur.

Pourquoi ai-je une telle erreur? ** La méthode statique (main) ne peut pas accéder directement à la méthode non statique (calc) dans la même classe (A) </ font> ** Parce que c'est censé l'être.

Voyons maintenant comment vous pouvez appeler des méthodes dans la même classe.

-Comment appeler une méthode

Il existe deux manières principales d'appeler une méthode dans une classe.

1. Ajoutez statique à la méthode et exécutez-la (méthode statique)

C'est comme décrit dans [1. méthode statique] ci-dessus. Si vous ajoutez statique à une méthode, ce sera une méthode partagée au sein de la classe, elle sera donc accessible depuis d'autres méthodes.

2. Créez une instance de la classe et exécutez-la via l'instance (méthode non statique)

C'est difficile à comprendre avec des mots, je vais donc le montrer également dans le code.

A.java


class A {
    public static void main(String[] args){
        A a = new A(); //Créez une instance appelée
        a.calc(); //Appel de la méthode calc de l'instance a
    }
    
    void calc(){ //calc est une méthode non statique
        //Traitement des calculs
    }
}

N'est-il pas possible d'accéder à des méthodes non statiques dans la même classe à partir de méthodes statiques? Certaines personnes ont peut-être pensé. Cette méthode appelle la méthode ** calc via ** instance a en créant une instance a de classe A dans la méthode main. Par conséquent, vous n'y accédez pas directement, mais vous y accédez ** indirectement **, vous pouvez donc l'appeler.

· À la fin

Je vous serais reconnaissant de bien vouloir comprendre les méthodes statiques et non statiques. Peut-être que la raison pour laquelle les débutants en Java écrivent de la statique lors de l'écriture d'une méthode est d'éviter une erreur lorsqu'elle est appelée depuis la méthode principale! Lol static peut être attaché à une variable. J'écrirai un article sur les variables statiques la prochaine fois.

Merci d'avoir lu pour moi jusqu'à la fin. Natsu.

Recommended Posts

À propos des méthodes Java statiques et non statiques
Vérifier le comportement statique et public dans les méthodes Java
[Java] Zone de pile et zone statique
[Java] Classe générique et méthode générique
[Java] À propos de String et StringBuilder
À propos de la méthode Pluck et de la méthode ID
Méthodes Java et surcharges de méthodes
Méthode de classe variable de classe Java
À propos du package Java et de l'importation
Méthodes et classes abstraites Java
Méthodes Java
Java statique
À propos de Biocontainers fastqc et Java
À propos des méthodes equals () et hashcode ()
[Java débutant] À propos de l'abstraction et de l'interface
Méthodes Java
À propos de statique
Etudier Java 8 (méthode StaticIF et Default)
Java Generics (définit les classes et les méthodes)
Pensez aux différences entre les fonctions et les méthodes (en Java)
A propos des types primitifs et des types de référence Java
Ceci et cela à propos de Base64 (Java)
Modificateur final et modificateur statique de l'historique d'apprentissage JAVA
Programmation Java (classes et instances, méthodes principales)
[À propos de JDBC qui connecte Java et SQL]
Cours et méthodes abstraits d'histoire d'apprentissage JAVA
Programmation Java (clause statique et "variables de classe")
À propos de l'interface Java
Méthodes de classe Java
[Java] À propos des fonctionnalités de Java 12
Histoire statique Java
[Java] À propos des tableaux
À propos des méthodes singulières
Quelque chose à propos de java
Où est Java
À propos de la méthode de HttpServlet ()
À propos des fonctionnalités Java
Fonctions et méthodes
À propos des threads Java
Interface [Java]
À propos de la classe Java
Java et JavaScript
À propos des tableaux Java
XXE et Java
À propos de l'héritage Java
À propos de l'interface, interface java
À propos de Java Var
À propos des méthodes Ruby
À propos de Java Literal
À propos des commandes Java
[Java] Résumé personnel des classes et méthodes (basique)
À propos des types de données Java (en particulier des types primitifs) et des littéraux
[Swift vs Java] Comprenons le statique et le final
Comment accéder aux méthodes et champs Java Private
À propos de la sortie du journal Java
À propos de l'interface fonctionnelle Java
Java, à propos d'un tableau à deux dimensions
À propos de la division de classe (Java)
À propos de [Java] [StreamAPI] allMatch ()