涓涓ず渚?/li> import java.util.Date;
public final class BrokenPerson
{
private String firstName;
private String lastName;
private Date dob;
public BrokenPerson( String firstName, public BetterPerson( String firstName,
String lastName, Date dob) String lastName, Date dob)
{ {
this.firstName = firstName; this.firstName = firstName;
this.lastName = lastName; this.lastName = lastName;
this.dob = dob; //error this.dob = new Date( dob.getTime() ); //correct
} }
public String getFirstName()
{
return this.firstName;
}
public String getLastName()
{
return this.lastName;
}
public Date getDOB() public Date getDOB()
{ {
return this.dob; //error return new Date( this.dob.getTime() );//correct
} }
}
4. jdk鐨勫彲鍙樼被鍜屼笉鍙彉綾?/p>
primitive鍙橀噺: boolean,byte, char, double ,float, integer, long, short
jdk鐨勪笉鍙彉綾伙細jdk鐨刯ava.lang鍖呬腑 Boolean, Byte, Character, Double, Float, Integer, Long, Short, String.
StringBuffer 鍙彉綾?br /> java.util.Date 鍙彉綾?br />
瀵逛簬榪欎釜緋誨垪閲岀殑闂錛屾瘡涓Java鐨勪漢閮藉簲璇ユ悶鎳傘傚綋鐒訛紝濡傛灉鍙槸瀛ava鐜╃帺灝辨棤鎵璋撲簡銆傚鏋滀綘璁や負(fù)鑷繁宸茬粡瓚呰秺鍒濆鑰呬簡錛屽嵈涓嶅緢鎳傝繖浜涢棶棰橈紝璇峰皢浣犺嚜宸遍噸褰掑垵瀛﹁呰鍒椼傚唴瀹瑰潎鏉ヨ嚜浜嶤SDN鐨勭粡鍏歌佽創(chuàng)銆?/span>
闂涓錛?/strong>鎴戝0鏄庝簡浠涔堬紒
String s = "Hello world!";
璁稿浜洪兘鍋氳繃榪欐牱鐨勪簨鎯咃紝浣嗘槸錛屾垜浠埌搴曞0鏄庝簡浠涔堬紵鍥炵瓟閫氬父鏄細涓涓猄tring錛屽唴瀹規(guī)槸“Hello world!”銆傝繖鏍鋒ā緋婄殑鍥炵瓟閫氬父鏄蹇典笉娓呯殑鏍規(guī)簮銆傚鏋滆鍑嗙‘鐨勫洖絳旓紝涓鍗婄殑浜哄ぇ姒備細鍥炵瓟閿欒銆?/span>
榪欎釜璇彞澹版槑鐨勬槸涓涓寚鍚戝璞$殑寮曠敤錛屽悕涓?#8220;s”錛屽彲浠ユ寚鍚戠被鍨嬩負(fù)String鐨勪換浣曞璞★紝鐩墠鎸囧悜"Hello world!"榪欎釜String綾誨瀷鐨勫璞°傝繖灝辨槸鐪熸鍙戠敓鐨勪簨鎯呫傛垜浠茍娌℃湁澹版槑涓涓猄tring瀵硅薄錛屾垜浠彧鏄0鏄庝簡涓涓彧鑳芥寚鍚慡tring瀵硅薄鐨勫紩鐢ㄥ彉閲忋傛墍浠ワ紝濡傛灉鍦ㄥ垰鎵嶉偅鍙ヨ鍙ュ悗闈紝濡傛灉鍐嶈繍琛屼竴鍙ワ細
String string = s;
鎴戜滑鏄0鏄庝簡鍙﹀涓涓彧鑳芥寚鍚慡tring瀵硅薄鐨勫紩鐢紝鍚嶄負(fù)string錛屽茍娌℃湁絎簩涓璞′駭鐢燂紝string榪樻槸鎸囧悜鍘熸潵閭d釜瀵硅薄錛屼篃灝辨槸錛屽拰s鎸囧悜鍚屼竴涓璞°?/span>
闂浜岋細"=="鍜宔quals鏂規(guī)硶絀剁珶鏈変粈涔堝尯鍒紵
==鎿嶄綔絎︿笓闂ㄧ敤鏉ユ瘮杈冨彉閲忕殑鍊兼槸鍚︾浉絳夈傛瘮杈冨ソ鐞嗚В鐨勪竴鐐規(guī)槸錛?/span>
int a=10;
int b=10;
鍒檃==b灝嗘槸true銆?/span>
浣嗕笉濂界悊瑙g殑鍦版柟鏄細
String a=new String("foo");
String b=new String("foo");
鍒檃==b灝嗚繑鍥瀎alse銆?/span>
鏍規(guī)嵁鍓嶄竴甯栬榪囷紝瀵硅薄鍙橀噺鍏跺疄鏄竴涓紩鐢紝瀹冧滑鐨勫兼槸鎸囧悜瀵硅薄鎵鍦ㄧ殑鍐呭瓨鍦板潃錛岃屼笉鏄璞℃湰韜俛鍜宐閮戒嬌鐢ㄤ簡new鎿嶄綔絎︼紝鎰忓懗鐫灝嗗湪鍐呭瓨涓駭鐢熶袱涓唴瀹逛負(fù)"foo"鐨勫瓧絎︿覆錛屾棦鐒舵槸“涓や釜”錛屽畠浠嚜鐒朵綅浜庝笉鍚岀殑鍐呭瓨鍦板潃銆俛鍜宐鐨勫煎叾瀹炴槸涓や釜涓嶅悓鐨勫唴瀛樺湴鍧鐨勫鹼紝鎵浠ヤ嬌鐢?=="鎿嶄綔絎︼紝緇撴灉浼氭槸false銆傝瘹鐒訛紝a鍜宐鎵鎸囩殑瀵硅薄錛屽畠浠殑鍐呭閮芥槸"foo"錛屽簲璇ユ槸“鐩哥瓑”錛屼絾鏄?=鎿嶄綔絎﹀茍涓嶆秹鍙婂埌瀵硅薄鍐呭鐨勬瘮杈冦?/span>
瀵硅薄鍐呭鐨勬瘮杈冿紝姝f槸equals鏂規(guī)硶鍋氱殑浜嬨?/span>
鐪嬩竴涓婳bject瀵硅薄鐨別quals鏂規(guī)硶鏄浣曞疄鐜扮殑錛?/span>
boolean equals(Object o){
return this==o;
}
Object瀵硅薄榛樿浣跨敤浜?=鎿嶄綔絎︺傛墍浠ュ鏋滀綘鑷垱鐨勭被娌℃湁瑕嗙洊equals鏂規(guī)硶錛岄偅浣犵殑綾諱嬌鐢╡quals鍜屼嬌鐢?=浼氬緱鍒板悓鏍風(fēng)殑緇撴灉銆傚悓鏍蜂篃鍙互鐪嬪嚭錛孫bject鐨別quals鏂規(guī)硶娌℃湁杈懼埌equals鏂規(guī)硶搴旇杈懼埌鐨勭洰鏍囷細姣旇緝涓や釜瀵硅薄鍐呭鏄惁鐩哥瓑銆傚洜涓虹瓟妗堝簲璇ョ敱綾葷殑鍒涘緩鑰呭喅瀹氾紝鎵浠bject鎶婅繖涓換鍔$暀緇欎簡綾葷殑鍒涘緩鑰呫?/span>
鐪嬩竴涓嬩竴涓瀬绔殑綾伙細
Class Monster{
private String content;
...
boolean equals(Object another){ return true;}
}
鎴戣鐩栦簡equals鏂規(guī)硶銆傝繖涓疄鐜頒細瀵艱嚧鏃犺Monster瀹炰緥鍐呭濡備綍錛屽畠浠箣闂寸殑姣旇緝姘歌繙榪斿洖true銆?/span>
鎵浠ュ綋浣犳槸鐢╡quals鏂規(guī)硶鍒ゆ柇瀵硅薄鐨勫唴瀹規(guī)槸鍚︾浉絳夛紝璇蜂笉瑕佹兂褰撶劧銆傚洜涓哄彲鑳戒綘璁や負(fù)鐩哥瓑錛岃岃繖涓被鐨勪綔鑰呬笉榪欐牱璁や負(fù)錛岃岀被鐨別quals鏂規(guī)硶鐨勫疄鐜版槸鐢變粬鎺屾彙鐨勩傚鏋滀綘闇瑕佷嬌鐢╡quals鏂規(guī)硶錛屾垨鑰呬嬌鐢ㄤ換浣曞熀浜庢暎鍒楃爜鐨勯泦鍚堬紙HashSet,HashMap,HashTable錛夛紝璇峰療鐪嬩竴涓媕ava doc浠ョ‘璁よ繖涓被鐨別quals閫昏緫鏄浣曞疄鐜扮殑銆?/span>
闂涓夛細String鍒板簳鍙樹簡娌℃湁錛?/span>
娌℃湁銆傚洜涓篠tring琚璁℃垚涓嶅彲鍙?immutable)綾伙紝鎵浠ュ畠鐨勬墍鏈夊璞¢兘鏄笉鍙彉瀵硅薄銆傝鐪嬩笅鍒椾唬鐮侊細
String s = "Hello";
s = s + " world!";
s鎵鎸囧悜鐨勫璞℃槸鍚︽敼鍙樹簡鍛紵浠庢湰緋誨垪絎竴綃囩殑緇撹寰堝鏄撳鍑鴻繖涓粨璁恒傛垜浠潵鐪嬬湅鍙戠敓浜嗕粈涔堜簨鎯呫傚湪榪欐浠g爜涓紝s鍘熷厛鎸囧悜涓涓猄tring瀵硅薄錛屽唴瀹規(guī)槸"Hello"錛岀劧鍚庢垜浠s榪涜浜?鎿嶄綔錛岄偅涔坰鎵鎸囧悜鐨勯偅涓璞℃槸鍚﹀彂鐢熶簡鏀瑰彉鍛紵絳旀鏄病鏈夈傝繖鏃訛紝s涓嶆寚鍚戝師鏉ラ偅涓璞′簡錛岃屾寚鍚戜簡鍙︿竴涓猄tring瀵硅薄錛屽唴瀹逛負(fù)"Hello world!"錛屽師鏉ラ偅涓璞¤繕瀛樺湪浜庡唴瀛樹箣涓紝鍙槸s榪欎釜寮曠敤鍙橀噺涓嶅啀鎸囧悜瀹冧簡銆?/span>
閫氳繃涓婇潰鐨勮鏄庯紝鎴戜滑寰堝鏄撳鍑哄彟涓涓粨璁猴紝濡傛灉緇忓父瀵瑰瓧絎︿覆榪涜鍚勭鍚勬牱鐨勪慨鏀癸紝鎴栬呰錛屼笉鍙瑙佺殑淇敼錛岄偅涔堜嬌鐢⊿tring鏉ヤ唬琛ㄥ瓧絎︿覆鐨勮瘽浼氬紩璧峰緢澶х殑鍐呭瓨寮閿銆傚洜涓篠tring瀵硅薄寤虹珛涔嬪悗涓嶈兘鍐嶆敼鍙橈紝鎵浠ュ浜庢瘡涓涓笉鍚岀殑瀛楃涓詫紝閮介渶瑕佷竴涓猄tring瀵硅薄鏉ヨ〃紺恒傝繖鏃訛紝搴旇鑰冭檻浣跨敤StringBuffer綾伙紝瀹冨厑璁鎬慨鏀癸紝鑰屼笉鏄瘡涓笉鍚岀殑瀛楃涓查兘瑕佺敓鎴愪竴涓柊鐨勫璞°傚茍涓旓紝榪欎袱縐嶇被鐨勫璞¤漿鎹㈠崄鍒嗗鏄撱?/span>
鍚屾椂錛屾垜浠繕鍙互鐭ラ亾錛屽鏋滆浣跨敤鍐呭鐩稿悓鐨勫瓧絎︿覆錛屼笉蹇呮瘡嬈¢兘new涓涓猄tring銆備緥濡傛垜浠鍦ㄦ瀯閫犲櫒涓涓涓悕鍙玸鐨凷tring寮曠敤鍙橀噺榪涜鍒濆鍖栵紝鎶婂畠璁劇疆涓哄垵濮嬪鹼紝搴斿綋榪欐牱鍋氾細
public class Demo {
private String s;
...
public Demo {
s = "Initial Value";
}
...
}
鑰岄潪
s = new String("Initial Value");
鍚庤呮瘡嬈¢兘浼氳皟鐢ㄦ瀯閫犲櫒錛岀敓鎴愭柊瀵硅薄錛屾ц兘浣庝笅涓斿唴瀛樺紑閿澶э紝騫朵笖娌℃湁鎰忎箟錛屽洜涓篠tring瀵硅薄涓嶅彲鏀瑰彉錛屾墍浠ュ浜庡唴瀹圭浉鍚岀殑瀛楃涓詫紝鍙涓涓猄tring瀵硅薄鏉ヨ〃紺哄氨鍙互浜嗐備篃灝辮錛屽嬈¤皟鐢ㄤ笂闈㈢殑鏋勯犲櫒鍒涘緩澶氫釜瀵硅薄錛屼粬浠殑String綾誨瀷灞炴閮芥寚鍚戝悓涓涓璞°?/span>
涓婇潰鐨勭粨璁鴻繕鍩轟簬榪欐牱涓涓簨瀹烇細瀵逛簬瀛楃涓插父閲忥紝濡傛灉鍐呭鐩稿悓錛孞ava璁や負(fù)瀹冧滑浠h〃鍚屼竴涓猄tring瀵硅薄銆傝岀敤鍏抽敭瀛梟ew璋冪敤鏋勯犲櫒錛屾繪槸浼氬垱寤轟竴涓柊鐨勫璞★紝鏃犺鍐呭鏄惁鐩稿悓銆?/span>
鑷充簬涓轟粈涔堣鎶奡tring綾昏璁℃垚涓嶅彲鍙樼被錛屾槸瀹冪殑鐢ㄩ斿喅瀹氱殑銆傚叾瀹炰笉鍙猄tring錛屽緢澶欽ava鏍囧噯綾誨簱涓殑綾婚兘鏄笉鍙彉鐨勩傚湪寮鍙戜竴涓郴緇熺殑鏃跺欙紝鎴戜滑鏈夋椂鍊欎篃闇瑕佽璁′笉鍙彉綾伙紝鏉ヤ紶閫掍竴緇勭浉鍏崇殑鍊鹼紝榪欎篃鏄潰鍚戝璞℃濇兂鐨勪綋鐜般備笉鍙彉綾繪湁涓浜涗紭鐐癸紝姣斿鍥犱負(fù)瀹冪殑瀵硅薄鏄彧璇葷殑錛屾墍浠ュ綰跨▼騫跺彂璁塊棶涔熶笉浼氭湁浠諱綍闂銆傚綋鐒朵篃鏈変竴浜涚己鐐癸紝姣斿姣忎釜涓嶅悓鐨勭姸鎬侀兘瑕佷竴涓璞℃潵浠h〃錛屽彲鑳戒細閫犳垚鎬ц兘涓婄殑闂銆傛墍浠ava鏍囧噯綾誨簱榪樻彁渚涗簡涓涓彲鍙樼増鏈紝鍗砈tringBuffer銆?/span>
闂鍥涳細final鍏抽敭瀛楀埌搴曚慨楗頒簡浠涔堬紵
final浣垮緱琚慨楗扮殑鍙橀噺"涓嶅彉"錛屼絾鏄敱浜庡璞″瀷鍙橀噺鐨勬湰璐ㄦ槸“寮曠敤”錛屼嬌寰?#8220;涓嶅彉”涔熸湁浜嗕袱縐嶅惈涔夛細寮曠敤鏈韓鐨勪笉鍙橈紝鍜屽紩鐢ㄦ寚鍚戠殑瀵硅薄涓嶅彉銆?/span>
寮曠敤鏈韓鐨勪笉鍙橈細
final StringBuffer a=new StringBuffer("immutable");
final StringBuffer b=new StringBuffer("not immutable");
a=b;//緙栬瘧鏈熼敊璇?/span>
寮曠敤鎸囧悜鐨勫璞′笉鍙橈細
final StringBuffer a=new StringBuffer("immutable");
a.append(" broken!"); //緙栬瘧閫氳繃
鍙錛宖inal鍙寮曠敤鐨?#8220;鍊?#8221;(涔熷嵆瀹冩墍鎸囧悜鐨勯偅涓璞$殑鍐呭瓨鍦板潃)鏈夋晥錛屽畠榪嬌寮曠敤鍙兘鎸囧悜鍒濆鎸囧悜鐨勯偅涓璞★紝鏀瑰彉瀹冪殑鎸囧悜浼氬鑷寸紪璇戞湡閿欒銆傝嚦浜庡畠鎵鎸囧悜鐨勫璞$殑鍙樺寲錛宖inal鏄笉璐熻矗鐨勩傝繖寰堢被浼?=鎿嶄綔絎︼細==鎿嶄綔絎﹀彧璐熻矗寮曠敤鐨?#8220;鍊?#8221;鐩哥瓑錛岃嚦浜庤繖涓湴鍧鎵鎸囧悜鐨勫璞″唴瀹規(guī)槸鍚︾浉絳夛紝==鎿嶄綔絎︽槸涓嶇鐨勩?/span>
鐞嗚Вfinal闂鏈夊緢閲嶈鐨勫惈涔夈傝澶氱▼搴忔紡媧為兘鍩轟簬姝?---final鍙兘淇濊瘉寮曠敤姘歌繙鎸囧悜鍥哄畾瀵硅薄錛屼笉鑳戒繚璇侀偅涓璞$殑鐘舵佷笉鍙樸傚湪澶氱嚎紼嬬殑鎿嶄綔涓?涓涓璞′細琚涓嚎紼嬪叡浜垨淇敼錛屼竴涓嚎紼嬪瀵硅薄鏃犳剰璇嗙殑淇敼鍙兘浼氬鑷村彟涓涓嬌鐢ㄦ瀵硅薄鐨勭嚎紼嬪穿婧冦備竴涓敊璇殑瑙e喅鏂規(guī)硶灝辨槸鍦ㄦ瀵硅薄鏂板緩鐨勬椂鍊欐妸瀹冨0鏄庝負(fù)final錛屾剰鍥句嬌寰楀畠“姘歌繙涓嶅彉”銆傚叾瀹為偅鏄緬鍔崇殑銆?/span>
闂浜旓細鍒板簳瑕佹庝箞鏍峰垵濮嬪寲錛?/span>
鏈棶棰樿璁哄彉閲忕殑鍒濆鍖栵紝鎵浠ュ厛鏉ョ湅涓涓婮ava涓湁鍝簺縐嶇被鐨勫彉閲忋?/span>
1. 綾葷殑灞炴э紝鎴栬呭彨鍊煎煙
2. 鏂規(guī)硶閲岀殑灞閮ㄥ彉閲?/span>
3. 鏂規(guī)硶鐨勫弬鏁?/span>
瀵逛簬絎竴縐嶅彉閲忥紝Java铏氭嫙鏈轟細鑷姩榪涜鍒濆鍖栥傚鏋滅粰鍑轟簡鍒濆鍊鹼紝鍒欏垵濮嬪寲涓鴻鍒濆鍊箋傚鏋滄病鏈夌粰鍑猴紝鍒欐妸瀹冨垵濮嬪寲涓鴻綾誨瀷鍙橀噺鐨勯粯璁ゅ垵濮嬪箋?/span>
int綾誨瀷鍙橀噺榛樿鍒濆鍊間負(fù)0
float綾誨瀷鍙橀噺榛樿鍒濆鍊間負(fù)0.0f
double綾誨瀷鍙橀噺榛樿鍒濆鍊間負(fù)0.0
boolean綾誨瀷鍙橀噺榛樿鍒濆鍊間負(fù)false
char綾誨瀷鍙橀噺榛樿鍒濆鍊間負(fù)0(ASCII鐮?
long綾誨瀷鍙橀噺榛樿鍒濆鍊間負(fù)0
鎵鏈夊璞″紩鐢ㄧ被鍨嬪彉閲忛粯璁ゅ垵濮嬪間負(fù)null錛屽嵆涓嶆寚鍚戜換浣曞璞°傛敞鎰忔暟緇勬湰韜篃鏄璞★紝鎵浠ユ病鏈夊垵濮嬪寲鐨勬暟緇勫紩鐢ㄥ湪鑷姩鍒濆鍖栧悗鍏跺間篃鏄痭ull銆?/span>
瀵逛簬涓ょ涓嶅悓鐨勭被灞炴э紝static灞炴т笌instance灞炴э紝鍒濆鍖栫殑鏃舵満鏄笉鍚岀殑銆俰nstance灞炴у湪鍒涘緩瀹炰緥鐨勬椂鍊欏垵濮嬪寲錛宻tatic灞炴у湪綾誨姞杞斤紝涔熷氨鏄涓嬈$敤鍒拌繖涓被鐨勬椂鍊欏垵濮嬪寲錛屽浜庡悗鏉ョ殑瀹炰緥鐨勫垱寤猴紝涓嶅啀嬈¤繘琛屽垵濮嬪寲銆傝繖涓棶棰樹細鍦ㄤ互鍚庣殑緋誨垪涓繘琛岃緇嗚璁恒?/span>
瀵逛簬絎簩縐嶅彉閲忥紝蹇呴』鏄庣‘鍦拌繘琛屽垵濮嬪寲銆傚鏋滃啀娌℃湁鍒濆鍖栦箣鍓嶅氨璇曞浘浣跨敤瀹冿紝緙栬瘧鍣ㄤ細鎶楄銆傚鏋滃垵濮嬪寲鐨勮鍙ュ湪try鍧椾腑鎴杋f鍧椾腑錛屼篃蹇呴』瑕佽瀹冨湪絎竴嬈′嬌鐢ㄥ墠涓瀹氳兘澶熷緱鍒拌祴鍊箋備篃灝辨槸璇達紝鎶婂垵濮嬪寲璇彞鏀懼湪鍙湁if鍧楃殑鏉′歡鍒ゆ柇璇彞涓紪璇戝櫒涔熶細鎶楄錛屽洜涓烘墽琛岀殑鏃跺欏彲鑳戒笉絎﹀悎if鍚庨潰鐨勫垽鏂潯浠訛紝濡傛涓鏉ュ垵濮嬪寲璇彞灝變笉浼氳鎵ц浜嗭紝榪欏氨榪濆弽浜嗗眬閮ㄥ彉閲忎嬌鐢ㄥ墠蹇呴』鍒濆鍖栫殑瑙勫畾銆備絾濡傛灉鍦╡lse鍧椾腑涔熸湁鍒濆鍖栬鍙ワ紝灝卞彲浠ラ氳繃緙栬瘧錛屽洜涓烘棤璁哄浣曪紝鎬繪湁鑷沖皯涓鏉″垵濮嬪寲璇彞浼氳鎵ц錛屼笉浼氬彂鐢熶嬌鐢ㄥ墠鏈鍒濆鍖栫殑浜嬫儏銆傚浜巘ry-catch涔熸槸涓鏍鳳紝濡傛灉鍙湁鍦╰ry鍧楅噷鎵嶆湁鍒濆鍖栬鍙ワ紝緙栬瘧閮ㄩ氳繃銆傚鏋滃湪catch鎴杅inally閲屼篃鏈夛紝鍒欏彲浠ラ氳繃緙栬瘧銆傛諱箣錛岃淇濊瘉灞閮ㄥ彉閲忓湪浣跨敤涔嬪墠涓瀹氳鍒濆鍖栦簡銆傛墍浠ワ紝涓涓ソ鐨勫仛娉曟槸鍦ㄥ0鏄庝粬浠殑鏃跺欏氨鍒濆鍖栦粬浠紝濡傛灉涓嶇煡閬撹鍑轟簨鍖栨垚浠涔堝煎ソ錛屽氨鐢ㄤ笂闈㈢殑榛樿鍊煎惂錛?/span>
鍏跺疄絎笁縐嶅彉閲忓拰絎簩縐嶆湰璐ㄤ笂鏄竴鏍風(fēng)殑錛岄兘鏄柟娉曚腑鐨勫眬閮ㄥ彉閲忋傚彧涓嶈繃浣滀負(fù)鍙傛暟錛岃偗瀹氭槸琚垵濮嬪寲榪囩殑錛屼紶鍏ョ殑鍊煎氨鏄垵濮嬪鹼紝鎵浠ヤ笉闇瑕佸垵濮嬪寲銆?/span>
闂鍏細instanceof鏄粈涔堜笢涓滐紵
instanceof鏄疛ava鐨勪竴涓簩鍏冩搷浣滅錛屽拰==錛?gt;錛?lt;鏄悓涓綾諱笢涓溿傜敱浜庡畠鏄敱瀛楁瘝緇勬垚鐨勶紝鎵浠ヤ篃鏄疛ava鐨勪繚鐣欏叧閿瓧銆傚畠鐨勪綔鐢ㄦ槸嫻嬭瘯瀹冨乏杈圭殑瀵硅薄鏄惁鏄畠鍙寵竟鐨勭被鐨勫疄渚嬶紝榪斿洖boolean綾誨瀷鐨勬暟鎹備婦涓緥瀛愶細
String s = "I AM an Object!";
boolean isObject = s instanceof Object;
鎴戜滑澹版槑浜嗕竴涓猄tring瀵硅薄寮曠敤錛屾寚鍚戜竴涓猄tring瀵硅薄錛岀劧鍚庣敤instancof鏉ユ祴璇曞畠鎵鎸囧悜鐨勫璞℃槸鍚︽槸Object綾葷殑涓涓疄渚嬶紝鏄劇劧錛岃繖鏄湡鐨勶紝鎵浠ヨ繑鍥瀟rue錛屼篃灝辨槸isObject鐨勫間負(fù)True銆?/span>
instanceof鏈変竴浜涚敤澶勩傛瘮濡傛垜浠啓浜嗕竴涓鐞嗚處鍗曠殑緋葷粺錛屽叾涓湁榪欐牱涓変釜綾伙細
public class Bill {//鐪佺暐緇嗚妭}
public class PhoneBill extends Bill {//鐪佺暐緇嗚妭}
public class GasBill extends Bill {//鐪佺暐緇嗚妭}
鍦ㄥ鐞嗙▼搴忛噷鏈変竴涓柟娉曪紝鎺ュ彈涓涓狟ill綾誨瀷鐨勫璞★紝璁$畻閲戦銆傚亣璁句袱縐嶈處鍗曡綆楁柟娉曚笉鍚岋紝鑰屼紶鍏ョ殑Bill瀵硅薄鍙兘鏄袱縐嶄腑鐨勪換浣曚竴縐嶏紝鎵浠ヨ鐢╥nstanceof鏉ュ垽鏂細
public double calculate(Bill bill) {
if (bill instanceof PhoneBill) {
//璁$畻鐢?shù)璇濊处鍗?/span>
}
if (bill instanceof GasBill) {
//璁$畻鐕冩皵璐﹀崟
}
...
}
榪欐牱灝卞彲浠ョ敤涓涓柟娉曞鐞嗕袱縐嶅瓙綾匯?/span>
鐒惰岋紝榪欑鍋氭硶閫氬父琚涓烘槸娌℃湁濂藉ソ鍒╃敤闈㈠悜瀵硅薄涓殑澶氭佹с傚叾瀹炰笂闈㈢殑鍔熻兘瑕佹眰鐢ㄦ柟娉曢噸杞藉畬鍏ㄥ彲浠ュ疄鐜幫紝榪欐槸闈㈠悜瀵硅薄鍙樻垚搴旀湁鐨勫仛娉曪紝閬垮厤鍥炲埌緇撴瀯鍖栫紪紼嬫ā寮忋傚彧瑕佹彁渚涗袱涓悕瀛楀拰榪斿洖鍊奸兘鐩稿悓錛屾帴鍙楀弬鏁扮被鍨嬩笉鍚岀殑鏂規(guī)硶灝卞彲浠ヤ簡錛?/span>
public double calculate(PhoneBill bill) {
//璁$畻鐢?shù)璇濊处鍗?/span>
}
public double calculate(GasBill bill) {
//璁$畻鐕冩皵璐﹀崟
}
鎵浠ワ紝浣跨敤instanceof鍦ㄧ粷澶у鏁版儏鍐典笅騫朵笉鏄帹鑽愮殑鍋氭硶錛屽簲褰撳ソ濂藉埄鐢ㄥ鎬?/span>
]]>