Was nützt Java das?
Die Rolle dieses Schlüsselworts in Java
1 Dies ruft das aktuelle Attribut auf: Seine Hauptaufgabe besteht darin, wenn die Daten in der Klasse initialisiert werden müssen . Sie können hierdurch Werte zuweisen, anstatt nur eine Variable für die Zuweisung zu definieren, was das Lesen und Verstehen des Codes erleichtert
Zum Beispiel:
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()) } }
2. Diese Aufrufmethoden (gewöhnliche Methoden, Konstruktormethoden)
(1) Gewöhnliche Methoden:
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()) } }
(2) Konstruktormethoden: Der Unterschied zwischen gewöhnlichen Methoden und Konstruktormethoden besteht darin, dass Konstruktormethoden können nach ihrer Erstellung nur einmal verwendet werden, um Daten zu initialisieren, während normale Methoden nach der Erstellung mehrmals aufgerufen werden können.
Wenn Sie die Konstruktormethode verwenden müssen, um denselben wiederholten Inhalt auszugeben, können Sie, wenn Sie das Schlüsselwort this nicht verwenden, nur den folgenden Code verwenden:
Code kopieren
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()) } }
Offensichtlich werden dadurch viele Codezeilen verschwendet. Stattdessen sollte dies zum Aufrufen des Konstruktors verwendet werden. Die Methode lautet wie folgt:
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()) } }
Hinweis: Der Aufruf dazu muss die erste Anweisung sein Konstruktor, sonst tritt ein Fehler auf. Natürlich kann der Konstruktor nicht in einer normalen Methode aufgerufen werden.
Das Wichtigste ist, dass beim Aufrufen dieser Funktion keine Schleife gebildet werden kann, dh kein rekursiver Aufruf ohne Exit.
3. Dies stellt die aktuelle Methode dar
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一样 } }
Während des gesamten Prozesses hat sich die Definition davon nicht geändert, solange ein bestimmtes Objekt eine Methode in dieser Klasse aufruft , zu diesem Zeitpunkt stellt dies das aktuell ausgeführte Objekt dar.
Das obige ist der detaillierte Inhalt vonWas nützt das in Java?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!