Java Dieses Schlüsselwort Erklärung
this 关键字用来表示当前对象本身,或当前类的一个实例,通过this 可以调用本对象的所有方法和属性。 Zum Beispiel:
public class Demo{ public int x = 10; public int y = 15; public void sum(){ // Fetch member variables through this point int z = this.x + this.y; System.out.println("x + ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: ::::::::::::::::::::::::::::::::::: Y = " + z);} public static void main (String [] args) {Demo obj = neu Demo ();
Auslaufergebnisse:
x + y = 25
上面的程序中,obj 是Demo 类的一个实例,this 与obj 等价,执行int z = this.x + this.y;,就相当于执行int z = obj.x + obj.y;。
Hinweis: Dies ist nur nach der Unterrichtsfindung sinnvoll.
Verwenden Sie dies, um Variablen mit demselben Namen zu unterscheiden
Wenn eine Mitgliedsvariable mit Variablen innerhalb einer Methode dupliziert wird, hoffen Sie, Mitgliedervariablen innerhalb der Methode aufzurufen. Nur dies kann zu diesem Zeitpunkt verwendet werden, zum Beispiel:
public class Demo{ public String name; public int age; public Demo(String name, int age){ this.name = name; this.age = age; } public void sa y(){ System.out.println("Website The name is "+ name + ", it has been established" + age + "year"); } public static void main(String[] args) { Demo obj = new Demo("WeChatyuan", 3); obj.say ();
Auslaufergebnisse:
Der Name der Website ist Wixueyuan, das seit 3 Jahren gegründet wird.
Der Umfang der formalen Parameter ist die gesamte Methodenkörper und eine lokale Variable.在Demo()中,形参和成员变量重名,如果不使用this,访问到的就是局部变量name和age,而不是成员变量。 In Say () verwenden wir dies nicht, da der Umfang der Mitgliedsvariable die gesamte Instanz ist. Dies kann natürlich hinzugefügt werden:
public void sagt () {System.out.println ("Der Name der Website ist" + this.name + ", es wurde festgelegt" + this.age + "Jahr");}
Java assoziiert alle Mitgliedsvariablen und Mitgliedermethoden mit dieser standardmäßig. Daher ist dies in einigen Fällen überflüssig.
Initialisieren Sie das Objekt als Methodenname
Das heißt, es ist gleichbedeutend mit dem Aufrufen anderer Konstrukteure dieser Klasse, die als erster Satz des Konstruktors verwendet werden müssen. Beispiele sind wie folgt:
public class Demo{ public String name; public int age; public Demo(){ this("WeChatyuan", 3); } public Demo(String name, int age){ this.name = name ; this.age = age; } public void says(){ System.out.println("The name of the website is " + name + ", it has been established" + age + "year"); } public static void main(String[] args) { Demo obj = neue Demo ();
Auslaufergebnisse:
Der Name der Website ist Wixueyuan, das seit 3 Jahren gegründet wird.
Es ist erwähnenswert:
Ein weiterer Konstruktor wird im Konstruktor aufgerufen, und die Anrufaktion muss an der Startposition platziert werden.
Ein Konstruktor kann innerhalb einer anderen Methode als einem Konstruktor nicht aufgerufen werden.
Innerhalb eines Konstruktors kann nur ein Konstruktor aufgerufen werden.
上述代码涉及到方法重载,即Java允许出现多个同名方法,只要参数不同就可以。 Nachfolgende Kapitel werden erklärt.
Als Parameter bestanden
Wenn eine Methode in einigen vollständig getrennten Klassen aufgerufen werden muss und ein Verweis auf das aktuelle Objekt als Parameter übergeben wird. Zum Beispiel:
public class Demo {public void main (String [] args) {b b = neu B (neu A ()); Objekt public void print () {System.out.println ("Hallo aus A!"); A.Print ();
Auslaufergebnisse:
Hallo aus A! Hallo von B!
Anonyme Objekte sind Objekte ohne Namen. If the object is used only once, it can be used as an anonymous object. In the code, new B(this).print(); is equivalent to ( new B(this) ).print(); first create a non -EXISTENTE ERFORGEL über neues B (this) Das Objekt des Namens, dann rufen Sie seine Methode auf.
Java方法重载<br />在Java中,同一个类中的多个方法可以有相同的名字,只要它们的参数列表不同就可以,这被称为方法重载(method overloading)。
参数列表又叫参数签名,包括参数的类型、参数的个数和参数的顺序,只要有一个不同就叫做参数列表不同。
Überladung ist ein grundlegendes Merkmal von objektorientiertem.
Sehen wir unten ein detailliertes Beispiel.
public class Demo{ // A normal method without parameter void test(){ System.out.println("No parameters"); } // Overload the above method and bring an integer parameter void test( int a){ System.out .println ("a:" + a); b); } // Overload the above method and bring a double precision parameter double test(double a){ System.out.println("double a: " + a ); return a*a; } public static void main(String args []) {Demo obj = neue Demo ();
Auslaufergebnisse:
Keine Parametera: 2a und B: 2 3Double A: 2.0
通过上面的实例,读者可以看出,重载就是在一个类中,有相同的函数名称,但形参不同的函数。 Das Ergebnis der Überladung kann die Arten von Code und Methoden für einen Programmblock minimieren.
veranschaulichen:
Regeln für die Überlastung von Methoden:
Implementierung der Methodenüberlastung:
方法名称相同时,编译器会根据调用方法的参数个数、参数类型等去逐个匹配,以选择对应的方法,如果匹配失败,则编译器报错,这叫做重载分辨。