this關(guān)鍵字
this強(qiáng)調(diào)對(duì)象本身惯殊,它表示當(dāng)前對(duì)象庐完,而當(dāng)前對(duì)象就是指調(diào)用類中方法或?qū)傩缘哪莻€(gè)對(duì)象
下面我用兩個(gè)例子來(lái)說(shuō)明一下this關(guān)鍵字的作用:
沒(méi)有this關(guān)鍵字的例子:
class person1{
private String name;
private int age;
public void Person1(String name,int age){
name = name;
age = age;
}
}
這個(gè)代碼爪模,我們?cè)跇?gòu)造方法中聲明了name參數(shù)和age參數(shù)址遇,但是在形參中也定義了name和age队寇,這時(shí)候就會(huì)出現(xiàn)問(wèn)題吩屹,我們到底是將形參中的name賦給類中的屬性name跪另,還是將類中的屬性name賦給形參中的name,接下來(lái)加上this關(guān)鍵字試試
class person1{
private String name;
private int age;
public void Person1(String name,int age){
this. name = name;
this.age = age;
}
}
此時(shí)this.name和this.age就分別代表類中的name和age祟峦,然后完成賦值操作的話罚斗,就可以知道是形參name和age賦給類中的屬性name和age。
有一點(diǎn)需要注意宅楞,構(gòu)造方法是在實(shí)例化一個(gè)對(duì)象時(shí)被自己調(diào)用的针姿,也就是說(shuō)在類的所有方法里,只有構(gòu)造方法是被優(yōu)先調(diào)用的厌衙,所以使用this調(diào)用的構(gòu)造方法也必須只能放在類中距淫。
static關(guān)鍵字
static關(guān)鍵字可以定義屬性和方法,如果程序中用static方法來(lái)定義屬性的話婶希,此變量稱為靜態(tài)變量榕暇。用static修飾類的屬性后,此屬性就是公共屬性了喻杈。
假如說(shuō)程序有40個(gè)相同的對(duì)象彤枢,那么如果想修改其中一個(gè)屬性,就得一個(gè)一個(gè)挨個(gè)修改筒饰,十分麻煩缴啡。如果將那個(gè)屬性用static來(lái)修飾的話,那個(gè)屬性就是公共屬性了瓷们。舉例說(shuō)一下:
class Person{
String name;
static String city = "中國(guó)";
int age;
public Person(String name,int age){
this.name = name;
this.age = age;
}
public String talk(){
return"我是:"+this.name+"业栅,今年"+this.age+"歲秒咐,來(lái)自"+city;
}
}
public class StaticDemo2 {
public static void main(String[] args){
Person p1 = new Person("張三",20);
Person p2 = new Person("張三",20);
Person p3 = new Person("張三",20);
System.out.println(p1.talk());
System.out.println(p2.talk());
System.out.println(p3.talk());
}
}
final關(guān)鍵字
final是Java中的終結(jié)器,在Java中final可以定義類碘裕,定義方法和定義變量携取。使用final關(guān)鍵字時(shí)要注意:
- final標(biāo)記的類不能被繼承
- final標(biāo)記的方法不能被子類覆蓋
-
final標(biāo)記的變量即為常量,只能賦值一次
我以final標(biāo)記的變量為例帮孔,試試對(duì)它進(jìn)行加1操作 :
instanceof關(guān)鍵字
用instanceof判斷一個(gè)類是否實(shí)現(xiàn)了某個(gè)接口雷滋,也可以判斷一個(gè)實(shí)例化對(duì)象是否屬于一個(gè)類。它的返回值為布爾型