Maison > Java > JavaBase > le corps du texte

A quoi ça sert en Java

藏色散人
Libérer: 2019-11-13 11:29:12
original
4502 Les gens l'ont consulté

A quoi ça sert en Java

A quoi sert Java ceci ?

Le rôle de ce mot-clé en java

1 cela appelle l'attribut current : son rôle principal est lorsque les données de la classe doivent être initialisées. . Vous pouvez attribuer des valeurs via cela au lieu de simplement définir une variable à affecter, ce qui est plus propice à la lecture et à la compréhension du code

Par exemple :

class Book{//定义书的类
    private String name;//书本名字
    private int price;//书本价格
    public Book(String name,int price){ //使用this对类的数据进行初始化
        this.name = name;        
     this.price = price;
    }
    /*public Book(String n,int p){ //若不使用this关键字只能这样进行赋值,不利于将变量与属性统一起来
        name = n;
        price = p;
    }*/
    public String getInfo(){
        return "书籍:" + name + ",价格:" + price;
    }
}
public class ThisDemo{
    public static void main(String args[]){
        System.out.printIn(new Book("Java",89.9).getInfo())
    }
}
Copier après la connexion

2. . cet appel Méthodes (méthodes ordinaires, méthodes constructeur)

(1) Méthodes ordinaires :

class Book{//定义书的类
    private String name;//书本名字
    private int price;//书本价格
    public Book(String name,int price){//使用this对类的数据进行初始化
        this.name = name; 6         this.price = price;
        this.print();//调用本类普通方法,虽然可以不用使用this也可以进行本类普通方法的调用,但是好的习惯最好应该加上,目的是可以区分方法的定义来源
    }
    public String getInfo(){
        return "书籍:" + name + ",价格:" + price;
    }
    public void print(){
        System.out.printIn("***********");
    }
}
public class ThisDemo{
    public static void main(String args[]){
        System.out.printIn(new Book("Java",89.9).getInfo())
    }
}
Copier après la connexion

(2) Méthodes constructeur : La différence entre les méthodes ordinaires et les méthodes constructeur est que les méthodes constructeur ne peuvent que être utilisée après leur création une fois, utilisée pour initialiser les données, tandis que les méthodes ordinaires peuvent être appelées plusieurs fois après la création.

Lorsque vous devez utiliser la méthode constructeur pour générer le même contenu répété, si vous n'utilisez pas ce mot-clé, vous ne pouvez utiliser que le code suivant :

Copier le code

class Book{//定义书的类
    private String name;//书本名字
    private int price;//书本价格
    public Book(){//无参构造
        System.out.printIn("*************");
    }
    public Book(String name){//一参构造
        System.out.printIn("*************");
        this.name = name;
    }
    public Book(String name,int price){//二参构造
        System.out.printIn("*************");
        this.name = name;
        this.price = price;
        }
    public String getInfo(){
        return "书籍:" + name + ",价格:" + price;
    }
}
public class ThisDemo{
    public static void main(String args[]){
        System.out.printIn(new Book("Java",89.9).getInfo())
    }
}
Copier après la connexion

Évidemment, cela gaspille beaucoup de lignes de code. Au lieu de cela, cela devrait être utilisé pour appeler le constructeur. La méthode est la suivante :

class Book{//定义书的类
    private String name;//书本名字
    private int price;//书本价格
    public Book(){//无参构造
        System.out.printIn("*************");
    }
    public Book(String name){//一参构造
        this();//调用本类中的无参构造
        this.name = name;
    }
    public Book(String name,int price){//二参构造
        this(name);//调用本类中的一参构造
        this.price = price;
        }
    public String getInfo(){
        return "书籍:" + name + ",价格:" + price;
    }  

}
public class ThisDemo{
    public static void main(String args[]){
        System.out.printIn(new Book("Java",89.9).getInfo())
    }
}
Copier après la connexion

Remarque : l'appel à this doit être la première instruction du constructeur. , sinon une erreur se produira. Bien sûr, il ne peut pas appeler le constructeur dans une méthode normale.

La chose la plus importante est que l'appel de ceci ne peut pas former de boucle, c'est-à-dire qu'il ne peut pas former un appel récursif sans sortie.

3. ceci représente la méthode actuelle

class Book{
    
    public void fun(){
        System.out.printIn("FUN方法"+this);
    }
    }
}
public class ThisDemo{
    public static void main(String args[]){
        Book b1 = new Book();
        System.out.printIn("MAIN方法"+b1);
        b1.fun();//有b1调用fun方法(this = b1)
        //两个输出结果的地址一样,代表着此时this代表着b1
        System.out.printIn("*************")
        Book b2 = new Book();
        System.out.printIn("MAIN方法"+b2);
        b2.fun();//此时输出结果和b2一样
    }
}
Copier après la connexion

Tout au long du processus, la définition de this n'a pas changé tant qu'un certain objet appelle une méthode dans cette classe. , à ce moment, cela représente l'objet en cours d'exécution.

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!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal