Maison  >  Article  >  Java  >  Est-ce que Java accède aux variables membres ?

Est-ce que Java accède aux variables membres ?

尚
original
2019-11-22 14:23:033496parcourir

Est-ce que Java accède aux variables membres ?

S'il existe des variables membres et des variables locales portant le même nom, les données de la variable locale sont accessibles par défaut dans la méthode Vous pouvez spécifier les données du membre. variable accessible via le mot-clé this . Dans un constructeur, vous pouvez appeler un autre constructeur pour initialiser l'objet.

1. Utilisez ce mot-clé dans la définition de la méthode de la classe pour représenter la référence de l'objet utilisant la méthode

2 Utilisez-le lorsqu'il est nécessaire d'indiquer qui utilise actuellement la méthode.

3. Parfois, cela peut être utilisé pour gérer la situation où les variables membres et les variables paramètres de la méthode ont le même nom

4. cela peut être considéré comme une variable, et son value est une référence à l'objet actuel

Remarque :

Lorsqu'il existe des variables membres et des variables locales portant le même nom, les variables locales sont accessibles à l'intérieur de la méthode ( Java adopte le mécanisme d'accès du "principe de proximité".) Si une variable est accédée dans une méthode et que la variable n'existe qu'en tant que variable membre, le compilateur Java ajoutera le mot-clé this devant la variable.

/*
this关键字调用其他的构造函数要注意的事项:
    1. this关键字调用其他的构造函数时,this关键字必须要位于构造函数中 的第一个语句。
    2. this关键字在构造函数中不能出现相互调用 的情况,因为是一个死循环。

*/ class Student{ int id; //身份证 String name; //名字 //目前情况:存在同名 的成员 变量与局部变量,在方法内部默认是使用局部变量的。 public Student(int id,String name){ //一个函数的形式参数也是属于局部变量。 this(name); //调用了本类的一个参数的构造方法 //this(); //调用了本类无参的 构造方法。 this.id = id; // this.id = id 局部变量的id给成员变量的id赋值 System.out.println("两个参数的构造方法被调用了...");
    } public Student(){
        System.out.println("无参的构造方法被调用了...");
    } public Student(String name){ this.name = name;
        System.out.println("一个参数的构造方法被调用了...");
    }

}


class Demo7 
{ public static void main(String[] args) 
    {
        Student s = new Student(110,"铁蛋");
        System.out.println("编号:"+ s.id +" 名字:" + s.name); /*

        Student s2 = new Student("金胖子");
        System.out.println("名字:" + s2.name);
    */ }
}

Pour plus de connaissances sur Java, veuillez prêter attention au tutoriel de base Java.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

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