在AP CS A Exam中,關(guān)于對象(object)之間的比較,大家需要掌握三種比較方式。
我們先來看前兩種:即,object identity(==、!=) 和 object equality(equals)。
我們在比較兩個(gè)數(shù)值是否相等的時(shí)候,可以使用 == 和 !=,比如:
System.out.println( 1 != 2);
顯示結(jié)果為true。
但是,當(dāng)我們在進(jìn)行object之間的比較的時(shí)候,就不能簡單地使用 == 和 !=了。
比如:
String str1 = “SAT”;
String str2 = “小幫手”;
String str3 = “SAT小幫手”;
System.out.println((str1 + str2) == str3);
顯示結(jié)果為false。
為什么會(huì)這樣呢?原因在于,== 和 != 比較的是兩個(gè)引用型(reference type)變量內(nèi)所存儲的引用(reference),而不是比較其所存儲的對象(object)。
當(dāng)然,有的時(shí)候,如果你使用 == 和 != 來比較兩個(gè)對象,也會(huì)達(dá)到你想要的效果,但是在Java和AP CS A考試中,千萬別這么做!
那么,如果我們想要比較兩個(gè)object是不是一樣,我們應(yīng)該怎么做呢?答案是調(diào)用一個(gè)方法,equals。
我們可以將前面的代碼修改如下:
String str1 = “SAT”;
String str2 = “小幫手”;
String str3 = “SAT小幫手”;
System.out.println((str1 + str2).equals(str3));
這樣顯示結(jié)果就是我們想要的true了。
不知道大家有沒有看過老藝術(shù)家趙本山先生和老藝術(shù)家宋丹丹女士表演的一個(gè)小品,里面有一句經(jīng)典的臺詞——“脫了馬甲我也認(rèn)識你!”這里的equals方法,比較的就是穿著不同馬甲的兩個(gè)objects,雖然馬甲不同,但“內(nèi)核”一樣。
在AP CS A的考試中,equals會(huì)被用來比較兩個(gè)字符串是否一樣,當(dāng)然,我們需要比較的不是它們的馬甲(reference),而是它們的“內(nèi)核”。
第三種比較方式,是專門用于字符串(String)之間的比較的另外一個(gè)method:compareTo。
前面我們說到的equals也可以用來比較兩個(gè)字符串,它的返回值是true或false;但是compareTo的返回值不是boolean值,而是一個(gè)int型數(shù)值,即返回一個(gè)整數(shù)。
如果調(diào)用compareTo之后的返回值是0,則代表這兩個(gè)字符串完全一樣,比如:
String str = “SAT小幫手”;
System.out.println(str.compareTo(“SAT小幫手”));
顯示結(jié)果就是0。
如果調(diào)用compareTo之后的顯示結(jié)果不為0,那就代表這兩個(gè)字符串不完全一樣。
比如:
System.out.println(“A”.compareTo(“B”));
顯示結(jié)果就是-1,因?yàn)閏ompareTo比較的是兩個(gè)字符串的每個(gè)字符在UNICODE中對應(yīng)的數(shù)字,“A”在“B”的前面一個(gè),所以返回值就是-1。
如果調(diào)用System.out.println(“B”.compareTo(“A”)); 結(jié)果就是1了。
因?yàn)榇笮懺赨NICODE中的編碼也不一樣,所以compareTo是區(qū)分大小寫的(case-sensitive)。
最后,大家可以考慮一下以下代碼的顯示值應(yīng)該是哪個(gè)整數(shù):
System.out.println(“SIT”.compareTo(“SAT”));
如果有任何問題,歡迎來找小起子聊天。
AP Computer Science A 考前刷題精講班:
上課時(shí)間:2018年4月14日(周六)、15日(周日)、21日(周六)、22日(周日)
09:00-11:00
上課方式:網(wǎng)絡(luò)直播課,可回看
課時(shí):每次2小時(shí),總計(jì)8小時(shí)
費(fèi)用:2400元(參加過AP CS A 課程的老學(xué)員8折優(yōu)惠)
適合學(xué)員:有AP CS A課程基礎(chǔ),準(zhǔn)備2018年5月份參加AP考試的同學(xué)。
講題范圍:2013年至2017年一共5年的Free Response Questions,共計(jì)18道大題。
增值服務(wù):給所有報(bào)名學(xué)員提供兩套小幫手原創(chuàng)AP CS A模考選擇題,并提供答疑服務(wù)。
以上就是關(guān)于【Object Comparison - AP CS A 考點(diǎn)總結(jié) ⑤】的解答,如需了解學(xué)校/賽事/課程動(dòng)態(tài),可至翰林教育官網(wǎng)獲取更多信息。
往期文章閱讀推薦:
2026 AP大考放榜時(shí)間定了!隱藏成績規(guī)則大變天,手把手教你查/藏/送/復(fù)議!
AP考試迎來史上最大變革!2027年:語言/統(tǒng)計(jì)考綱革新 + 兩門全新科目首考!

? 2026. All Rights Reserved. 滬ICP備2023009024號-1