回顧
14.3 匿名內(nèi)部類
14.4 匿名對象
學(xué)習(xí)小結(jié)
14.5 this關(guān)鍵字的使用
this 表示當(dāng)前對象猖凛,即調(diào)用類中方法或?qū)傩缘哪莻€對象岂膳。
范例 14-13:在構(gòu)造方法中聲明與方法同名參數(shù)
class Person{
private String name;
private int age;
public Person(String name, int age){
name = name;
age = age;
}
}
范例 14-14:this關(guān)鍵字的使用范例1
class Person{
private String name;
private int age;
public Person(String name, int age){
this.name = name;
this.age = age;
}
}
范例 14-15:this關(guān)鍵字的使用范例2
package com.Javastudy2;
/**
* @author Y.W.
* @date 2018年3月13日 下午10:37:48
* @Description TODO this關(guān)鍵字的使用范例2
*/
public class P369_14_15 {
public static void main(String[] args) {
Person32 p = new Person32("張三", 25);
System.out.println(p.talk());
}
}
class Person32 {
private String name;
private int age;
public Person32(String name, int age) {
this.name = name;
this.age = age;
}
public String talk() {
return "我是:" + name + ",今年:" + age + "歲纳猫!";
}
}
運行結(jié)果:
運行結(jié)果
范例 14-16:利用This判斷兩個對象是否想等
package com.Javastudy2;
/**
* @author Y.W.
* @date 2018年3月13日 下午10:37:48
* @Description TODO 利用This判斷兩個對象是否想等
*/
public class P370_14_16 {
public static void main(String[] args) {
Person33 p1 = new Person33("張三", 30);
Person33 p2 = new Person33("張三", 30);
System.out.println(p1.compare(p2) ? "相等婆咸,是同一個人!" : "不相等芜辕,不是同一個人尚骄!");
}
}
class Person33 {
String name;
int age;
Person33(String name, int age) {
this.name = name;
this.age = age;
}
boolean compare(Person33 p) {
if (this.name.equals(p.name) && this.age == p.age) {
return true;
} else {
return false;
}
}
}
運行結(jié)果:
運行結(jié)果
想用某一個構(gòu)造方法調(diào)用另一個構(gòu)造方法,可以用this實現(xiàn):
this()
范例 14-17:用this調(diào)用構(gòu)造方法
package com.Javastudy2;
/**
* @author Y.W.
* @date 2018年3月13日 下午10:37:48
* @Description TODO 用this調(diào)用構(gòu)造方法
*/
public class P371_14_17 {
public static void main(String[] args) {
new Person34("張三", 25);
}
}
class Person34 {
String name;
int age;
Person34() {
System.out.println("1.public Person()");
}
Person34(String name, int age) {
// 調(diào)用本類無參構(gòu)造方法
this();
this.name = name;
this.age = age;
System.out.println("2.public Person(String name, int age)");
}
}
運行結(jié)果:
運行結(jié)果
14.6 static 關(guān)鍵字的使用
14.6.1 使用static定義屬性
用static定義屬性侵续,則此變量稱為靜態(tài)變量倔丈。
范例 14-18:靜態(tài)屬性的聲明引例
package com.Javastudy2;
/**
* @author Y.W.
* @date 2018年3月13日 下午11:29:13
* @Description TODO 靜態(tài)屬性的聲明引例
*/
public class P373 {
public static void main(String[] args) {
Person35 p1 = new Person35("張三", "中國", 25);
Person35 p2 = new Person35("李四", "中國", 30);
Person35 p3 = new Person35("王五", "中國", 35);
System.out.println(p1.talk());
System.out.println(p2.talk());
System.out.println(p3.talk());
}
}
class Person35 {
String name;
String city;
int age;
public Person35(String name, String city, int age) {
this.name = name;
this.city = city;
this.age = age;
}
public String talk() {
return "我是:" + this.name + ",今年:" + this.age + "歲状蜗,來自:" + this.city;
}
}
運行結(jié)果:
運行結(jié)果
范例 14-19:static關(guān)鍵字的使用
package com.Javastudy2;
/**
* @author Y.W.
* @date 2018年3月13日 下午11:29:13
* @Description TODO static關(guān)鍵字的使用
*/
public class P374_14_19 {
public static void main(String[] args) {
Person36 p1 = new Person36("張三", 25);
Person36 p2 = new Person36("李四", 30);
Person36 p3 = new Person36("王五", 35);
System.out.println("修改之前信息:" + p1.talk());
System.out.println("修改之前信息:" + p2.talk());
System.out.println("修改之前信息:" + p3.talk());
System.out.println("********修改之后信息:********");
// 修改后信息
p1.city = "美國";
System.out.println("修改之后信息:" + p1.talk());
System.out.println("修改之后信息:" + p2.talk());
System.out.println("修改之后信息:" + p3.talk());
}
}
class Person36 {
String name;
static String city = "中國";
int age;
public Person36(String name, int age) {
this.name = name;
this.age = age;
}
public String talk() {
return "我是:" + this.name + "需五,今年:" + this.age + "歲,來自:" + this.city;
}
}
運行結(jié)果:
運行結(jié)果
思考
上面其中一例中轧坎,this()的調(diào)用本類中的無參構(gòu)造方法宏邮。
記于2018年3月13日23:53:19
Yvan