/////////////////////////2016-11-7//////////////////////////
int test(){
1.請(qǐng)說明一個(gè)JAVA類中主要包含哪幾個(gè)元素?并說明每種元素的作用。
? ? JAVA類中主要包含屬性舔亭、方法轻庆、構(gòu)造方法工闺、塊以及內(nèi)部類么翰。屬性用來定義對(duì)象的數(shù)據(jù)董瞻;方法用來定義對(duì)象的行為捏境;構(gòu)造方法可以用來創(chuàng)建對(duì)象孽尽;塊能夠用來在類加載時(shí)執(zhí)行操作或者在每次實(shí)例化前執(zhí)行通用操作窖壕;內(nèi)部類作為類的一個(gè)成員存在,能夠訪問外部類的屬性和方法杉女。
2.請(qǐng)說明構(gòu)造方法的作用和特征
? ? 構(gòu)造方法的作用是用來創(chuàng)建對(duì)象瞻讽,使用new關(guān)鍵字調(diào)用。構(gòu)造方法的名字必須與類的名字相同熏挎,并且大小寫敏感速勇,同時(shí)構(gòu)造方法不能聲明返回值類型,可以使用任意一種訪問修飾符坎拐,但是不能使用其他修飾符進(jìn)行修飾烦磁,如static、final哼勇、abstract等修飾符都不可以修飾構(gòu)造方法都伪。
3.請(qǐng)列舉Java語言中的權(quán)限訪問修飾符,并說明每種權(quán)限的含義积担。
下表為Java訪問控制符的含義和使用情況
? ? ? ? ? ? ? ? ? ? ? ? ? 類內(nèi)部 ? ??本包內(nèi)? ? 類 ? ?外部包
?public ? ? ? ? ? ? ? ? ?√ ? ? ? ? ? ? ?√ ? ? ? ? ??√ ? ? ? ? ?√
protected ? ? ? ? ? ?√ ? ? ? ? ? ? ?√ ? ? ? ? ??√ ? ? ? ? ?×
default(默認(rèn))?√ ? ? ? ? ? ? ?√ ? ? ? ? ??× ? ? ? ? ?×
private ? ? ? ? ? ? ? ?√ ? ? ? ? ? ? ?× ? ? ? ? ? ?× ? ? ? ? ?×
4.什么叫引用類型陨晶,引用類型和基本數(shù)據(jù)類型有什么區(qū)別?
? ? ?Java語言中除了基本數(shù)據(jù)類型之外的類型帝璧,都稱為引用類型先誉。引用類型就是類的類型,所有的對(duì)象都是引用類型的烁,包括數(shù)組對(duì)象褐耳。引用類型必須使用new調(diào)用構(gòu)造方法進(jìn)行賦值,引用類型的變量擁有自己的屬性和方法撮躁,可以使用圓點(diǎn)調(diào)用自己的屬性和方法漱病。基本數(shù)據(jù)類型直接使用=號(hào)進(jìn)行賦值把曼,且沒有自己的屬性和方法杨帽,往往都在聲明屬性或方法時(shí)使用。
5.請(qǐng)說明Java語言中的值傳遞規(guī)則嗤军。
? ? ?基本數(shù)據(jù)類型傳遞的是值注盈,引用類型傳遞的是引用,即虛地址叙赚。
6.使用static修飾屬性或方法后老客,屬性和方法有什么特征僚饭?
? ? ?static修飾屬性或方法后,屬性和方法不在屬于某個(gè)特定的對(duì)象胧砰,而是所有共享鳍鸵,也可以說是static成員不依賴某個(gè)對(duì)象,在類加載時(shí)就被初始化尉间。Static修飾的屬性或方法偿乖,可以直接使用類名調(diào)用,而不用先實(shí)例化對(duì)象再調(diào)用哲嘲。
7.使用final修飾屬性后贪薪,屬性有什么特征?
? ? ?fianl修飾屬性后眠副,屬性就成為一個(gè)常量画切。常量只要被賦值,就不能被改變囱怕。
8.繼承有什么作用霍弹,Java語言中的繼承有什么特點(diǎn)?
? ? ?繼承主要為了能夠重復(fù)使用父類中的成員娃弓。Java語言中的繼承是單繼承庞萍,也就是說一個(gè)類最多只能繼承一個(gè)父類。
9.什么是方法覆蓋(override)?并說明方法覆蓋與方法重載(overload)的區(qū)別忘闻。
? ? ?覆蓋是發(fā)生在繼承關(guān)系的子類中,當(dāng)子類要修改從父類繼承的某個(gè)方法的方法體時(shí)恋博,就可以在子類中聲明一個(gè)與父類同名齐佳、同參數(shù)并且同返回值類型的方法,這就是方法覆蓋债沮。而重載與繼承沒有關(guān)系炼吴,指的是在一個(gè)類中可以同時(shí)聲明多個(gè)同名但不同參數(shù)的方法,稱為重載疫衩。
10.請(qǐng)說明什么是抽象類硅蹦?抽象類有什么作用?
? ? ?抽象類是不能實(shí)例化的類闷煤,使用abstract修飾童芹。抽象類往往用來做父類使用,定義一些子類的共同屬性或行為鲤拿。
11.請(qǐng)說明抽象方法的含義假褪,并說明抽象類與抽象方法的關(guān)系。
? ? ?抽象方法是沒有方法體的方法近顷,使用abstract修飾生音。抽象類中不一定有抽象方法宁否,但是有抽象方法的類一定是抽象類。
12.說明super關(guān)鍵字的兩種用法缀遍。
? ? ? super():表示調(diào)用父類中的構(gòu)造方法:又如super(10);表示調(diào)用父類中的具有一個(gè)整型參數(shù)的構(gòu)造方法慕匠。第二種用法是在子類中調(diào)用父類中的成員,如super.f()域醇;意思是調(diào)用父類中的f()方法台谊。
13.說明什么情況下使用this關(guān)鍵詞?
? ? ?第一種情況是當(dāng)我們想要調(diào)用當(dāng)前對(duì)象的屬性或者方法時(shí)候歹苦,可以通過this關(guān)鍵字來調(diào)用青伤;第二種情況是當(dāng)我們想調(diào)用當(dāng)前對(duì)象的其它構(gòu)造函數(shù)的時(shí)候,可以使用this關(guān)鍵字
14.final類與final方法有什么作用殴瘦?
? ? ?final類是不能夠被繼承的類狠角,稱為終極類,如String類就是final類蚪腋,不能有子類丰歌。final修飾方法后,是終極方法屉凯,不能被子類覆蓋立帖,但是可以被子類繼承使用。
15.簡要說明Object類有什么特點(diǎn)悠砚?
? ? ?Object類是所有類的直接或間接的父類晓勇。
16.Object類中的toString方法有什么用?
? ? ?toString方法可以把對(duì)象作為字符串返回灌旧。
17.簡要說明Object類中的equals方法和hashCode方法绑咱。
? ? ?Object類中的equals方法用來比較兩個(gè)引用值,hashCode用來返回引用的內(nèi)地址的十六進(jìn)制數(shù)值枢泰。在Set以及Map集合中描融,判斷兩個(gè)元素是否重復(fù)時(shí),往往需要使用這兩個(gè)方法衡蚂。這兩個(gè)方法往往被子類覆蓋窿克,覆蓋的規(guī)則是:如果存在x和y兩個(gè)對(duì)象,調(diào)用x.equals(y)返回true時(shí)毛甲,那么調(diào)用hashCode方法的返回值也該相同年叮;如果x.equals(y)返回false時(shí),那么調(diào)用hashCode方法返回的值可能相同玻募,也可能不同谋右。
18.接口有什么特點(diǎn),與抽象類有什么區(qū)別补箍?
? ? ?接口的特點(diǎn)是不能定義變量改执,而且所有方法都是抽象方法啸蜜。而抽象類中可以有變量,也不強(qiáng)制必須有抽象方法辈挂。
19.類繼承父類與類實(shí)現(xiàn)接口衬横,有什么區(qū)別?
? ? ?類繼承父類只是單繼承终蒂,也就是一個(gè)子類最多只有一個(gè)父類蜂林;而類實(shí)現(xiàn)接口可以多實(shí)現(xiàn),
就是一個(gè)子類可以同時(shí)實(shí)現(xiàn)多個(gè)接口拇泣,并覆蓋所有接口中的所有抽象方法噪叙。
20.組合和繼承各有什么特點(diǎn)?什么情況下使用組合霉翔,什么情況下使用繼承睁蕾?
? ? ?繼承,父類與子類之間存在is-a的關(guān)系债朵,子類可以調(diào)用父類的方法子眶,創(chuàng)建子類時(shí),無需再創(chuàng)建父類;組合體現(xiàn)的是整體與部分序芦,擁有關(guān)系臭杰,即has-a的關(guān)系,是通過對(duì)現(xiàn)有的對(duì)象進(jìn)行拼裝(組合)產(chǎn)生新的谚中、復(fù)雜的功能.因?yàn)榻M合更加安全渴杆、靈活、高效宪塔,所以在同等情況下将塑,推薦使用組合。
21.說出至少3中Java面向?qū)ο蟮脑O(shè)計(jì)原則
1.單一職責(zé)原則
2.里氏替換原則
2.依賴倒置原則
4.接口隔離原則
5.迪米特法則
6.開閉原則
7.組合/聚合復(fù)用原則
22.說出3個(gè)你了解的設(shè)計(jì)模式蝌麸,并用一兩句話描述模式的應(yīng)用場景
1.工廠方法模式:創(chuàng)建一個(gè)工廠類,對(duì)實(shí)現(xiàn)了同一接口的一些類進(jìn)行實(shí)例的創(chuàng)建艾疟。
2.單例模式:保證一個(gè)對(duì)象在整個(gè)程序中只有一個(gè)實(shí)例存在来吩。
3.適配器模式:將某一個(gè)類的接口轉(zhuǎn)換成客戶端期望的另一個(gè)接口表示,目的是消除兼容問題蔽莱。
4.代理模式:創(chuàng)建一個(gè)代理類弟疆,替原對(duì)象進(jìn)行一些操作。
5.觀察者模式:當(dāng)一個(gè)對(duì)象發(fā)生變化時(shí)盗冷,其它依賴該對(duì)象的對(duì)象會(huì)接收到通知怠苔。
6.迭代子模式:順序訪問聚集中的對(duì)象。
7.命令模式:使命令的發(fā)出者和執(zhí)行者之間解藕仪糖,實(shí)現(xiàn)請(qǐng)求和執(zhí)行分開柑司。
}