this應用總結
阿新 • • 發佈:2017-07-30
構造方法 void int 構造 兩個 main person bsp hang
1、使用this調用本類中的屬性
1 class Person{ 2 private String name; 3 private int age; 4 public Person(String name,int age){ 5 this.name = name; 6 this.age = age; 7 } 8 public String getInfo(){ 9 return name + ";;;;" + age; 10 } 11 } 12 13 public class ThisDemo02 {14 public static void main(String[] args) { 15 Person per1 = new Person("zhangsan", 30); 16 System.out.println(per1.getInfo()); 17 } 18 19 }
輸出結果為:zhangsan;;;;30
2、使用this調用構造方法
如果一個類中有多個構造方法,也可以利用this關鍵字互相調用;
註意:構造方法是在實例化對象時被自動調用的,也就是說在類中的所有方法中,只有構造方法是被優先調用的,所以使用this調用構造方法必須也只有放在構造方法的第一行。
1 class Person{ 2 private String name; 3 private int age; 4 public Person(){ 5 System.out.println("一個新的Person對象被實例化。"); 6 } 7 public Person(String name,int age){ 8 this(); 9 this.name = name; 10 this.age = age; 11 } 12 public String getInfo(){13 return name + ";;;;" + age; 14 } 15 } 16 17 public class ThisDemo02 { 18 public static void main(String[] args) { 19 Person per1 = new Person("zhangsan", 30); 20 System.out.println(per1.getInfo()); 21 } 22 }
輸出結果為:
一個新的Person對象被實例化。
zhangsan;;;;30
3、this表示當前對象
1 class Person{ 2 public String getInfo(){ 3 System.out.println("Person類" + this); 4 return null; 5 } 6 } 7 8 public class ThisDemo02 { 9 public static void main(String[] args) { 10 Person per1 = new Person(); 11 Person per2 = new Person(); 12 System.out.println("main方法" + per1); 13 per1.getInfo(); 14 System.out.println("....................." ); 15 System.out.println("main方法" + per2); 16 per2.getInfo(); 17 } 18 }
輸出結果為:
[email protected]
[email protected]
.....................
[email protected]
[email protected]
4、判斷對象是否相等
方法一、
1 class Person{ 2 private String name; 3 private int age; 4 public Person(String name,int age){ 5 this.setName(name); 6 this.setAge(age); 7 } 8 public String getName() { 9 return name; 10 } 11 public void setName(String name) { 12 this.name = name; 13 } 14 public int getAge() { 15 return age; 16 } 17 public void setAge(int age) { 18 this.age = age; 19 } 20 21 } 22 23 public class ThisDemo02 { 24 public static void main(String[] args) { 25 Person per1 = new Person("zhangsan",30); 26 Person per2 = new Person("zhangsan",30); 27 if(per1.getName().equals(per2.getName()) && per2.getAge() == per2.getAge()){ 28 System.out.println("兩個對象相等"); 29 }else{ 30 System.out.println("兩個對象不相等"); 31 } 32 } 33 }
輸出結果為:兩個對象相等
this應用總結