Maison >Java >javaDidacticiel >Essai d'introduction de base Java (8) Version JavaSE - statique statique

Essai d'introduction de base Java (8) Version JavaSE - statique statique

黄舟
黄舟original
2016-12-22 13:08:051374parcourir

Orienté objet (2)

this : représente l'objet. Quel objet représente-t-il ? objet courant.

Lorsque les variables membres et les variables locales portent le même nom, vous pouvez utiliser le mot-clé this pour les distinguer.

Il s'agit d'une référence à l'objet auquel appartient la fonction. (En termes simples : quel objet appelle la fonction où se trouve ceci, cela représente cet objet.)

cela peut également être utilisé pour appeler d'autres constructeurs dans le constructeur. Remarque : Il ne peut être défini que sur la première ligne du constructeur. Parce que l'action d'initialisation doit être effectuée en premier.

Par exemple : personne (Nom de chaîne){this.name = nom;}

personne (Nom de chaîne,int âge){this(nom);this.age = âge;}

Généralement, les objets de cette classe sont utilisés dans les objets de cette classe, et ceci est généralement utilisé.

static :

Caractéristiques : 1.static est un modificateur utilisé pour modifier les membres.

2. Les membres modifiés par static sont partagés par tous les objets.

3. Static existe avant les objets, car les membres statiques existent déjà lors du chargement de la classe.

4. Les membres modifiés par static ont une méthode d'appel supplémentaire, c'est-à-dire qu'ils peuvent être appelés directement par le nom de la classe, par exemple : nom de classe.variable membre.

5. Les données modifiées par statique sont des données partagées, et les données temporelles stockées dans l'objet le sont.

Remarque : les variables membres sont également appelées variables d'instance ; les variables modifiées par static sont appelées variables statiques ou variables de classe.

La différence entre les variables membres et les variables statiques :

1 Les cycles de vie des deux variables sont différents.

Les variables membres existent avec la création de l'objet, et sont recyclées et libérées au fur et à mesure du recyclage de l'objet

Les variables statiques existent avec le chargement de la classe, et disparaissent avec la disparition de la classe ; classe.

2. Les méthodes d'appel sont différentes.

Les variables membres ne peuvent être appelées que par des objets ;

Les variables statiques peuvent être appelées par des objets et des noms de classe (recommandé).

3. Les pseudonymes sont différents.

Les variables membres sont appelées variables d'instance ;

les variables statiques sont appelées variables de classe.

4. Les emplacements de stockage des données sont différents.

Les données des variables membres sont stockées dans l'objet dans la mémoire tas, elles sont donc également appelées données spécifiques à l'objet.

Les données des variables statiques sont stockées dans la zone statique de la zone de méthode (zone de données partagées), elles sont donc également appelées données partagées de l'objet.

Remarques sur l'utilisation statique :

1. Les méthodes statiques ne peuvent accéder qu'aux membres statiques. (Les méthodes non statiques peuvent accéder à la fois aux statiques et aux non statiques) (Remarque : notez que dans le contexte d'une même classe, les méthodes statiques ne peuvent appeler que les membres statiques de cette classe)

2. Méthodes statiques Le this ou les super mots-clés ne peuvent pas être utilisés dans .

3. La fonction principale est statique.

Quand utilise-t-on le statique ?

1.Variables statiques.

Lorsque toutes les variables membres de l'objet d'analyse sont identiques, cette variable membre peut être modifiée statiquement.

Tant que les données sont différentes dans l'objet, ce sont les données uniques de l'objet, qui doivent être stockées dans l'objet et sont non statiques.

S'il s'agit des mêmes données, l'objet n'a pas besoin d'être modifié, il suffit de l'utiliser. Il n'a pas besoin d'être stocké dans l'objet et est défini comme statique.

2. Fonction statique.

Que la fonction soit modifiée statiquement, le seul point de référence est de savoir si la fonction a accès à des données uniques dans l'objet.

Pour faire simple, à partir du code source, si la fonction doit accéder aux variables membres non statiques, si c'est le cas, la fonction est non statique. Sinon, la fonction peut être définie comme statique.

Bien sûr, cette fonction peut également être définie comme non statique, mais non statique doit être appelée par un objet, et cela n'a aucun sens de créer un objet uniquement pour appeler des méthodes non statiques sans accéder à des méthodes uniques. données.

Particularités de la fonction principale :

1 Le format est fixe 2. Il est reconnu et appelé par jvm.

public : Parce que les autorisations doivent être les plus grandes.

statique : Si vous n'avez pas besoin d'un objet, appelez-le simplement directement avec le nom de classe de la fonction principale.

void : La fonction main n'a pas de valeur de retour spécifique.

main : nom de la fonction, pas un mot-clé, juste un nom fixe reconnu par jvm.

String[] args : Il s'agit de la liste des paramètres de la fonction principale. C'est un paramètre de type tableau, et les éléments sont tous de type chaîne. (Peut être transmis lors de l'appel de la fonction principale, par exemple : java mainDemo xx yy zz est un tableau de chaînes avec 3 éléments transmis)

Bloc de code de construction de bloc de code statique bloc de code local :

Bloc de code statique : exécuté au fur et à mesure du chargement de la classe. Et exécuté une seule fois. Fonction : Utilisé pour initialiser la classe.

Bloc de code de construction : exécuté lors de la création de l'objet, et appelé plusieurs fois lors de la création de l'objet. Fonction : Peut être initialisé pour tous les objets. (La différence avec le constructeur : Le constructeur effectue une initialisation ciblée de l'objet correspondant. L'initialisation de l'objet bloc de code de construction est universelle.)

Le rôle des blocs de code locaux : limiter le cycle de vie des variables locales.

La séquence d'appel des trois est la suivante :

class StaticCode
{
    static int num ;
    //静态代码块 (首先执行)
    static
    {
        num = 10;
//      num *=3;
        System.out.println("hahahah");
    }
    StaticCode(){}
 
    static void show()
    {
        System.out.println(num);
    }
}
 
class Person
{
    private String name;
     
     
 
    {//构造代码块。可以给所有对象进行初始化的。(如有调用对象,即其次调用,与局部代码块视情况而定)
 
        System.out.println("constructor code ");
//      cry();
    }
     
    static
    {
        System.out.println("static code");
    }
     
    Person()//是给对应的对象进行针对性的初始化。 
    {
        name = "baby";
//      cry();
    }
    Person(String name)
    {
        this.name  = name;
//      cry();
    }
    public void cry()
    {
        System.out.println("哇哇");
         
    }
 
    public void speak()
    {
        System.out.println("name:"+name);
    }
 
    static void show()
    {
        System.out.println("show run");
    }
}
 
 
class StaticCodeDemo 
{
    static
    {
//      System.out.println("a"); //先执行
    }
    public static void main(String[] args) 
    {
 
//      Person p = null;
//      p.speak();
 
//      Person.show();
//      Person p1 = new Person();
//      p1.speak();
//      Person p2 = new Person("旺财");
//      p2.speak();
//      new Person();
         
 
//      new StaticCode().show();
//      new StaticCode().show();
//      StaticCode.show();
//      System.out.println("b");    //后执行
    }
}

Ce qui précède est l'essai d'introduction de base sur la version Java (8) JavaSE - contenu statique Pour plus de contenu connexe, veuillez payer. attention au site PHP chinois ( www.php.cn) !


Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn