freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

java基礎(chǔ)就業(yè)培訓(xùn)教程第二章張孝祥(編輯修改稿)

2025-07-22 06:59 本頁(yè)面
 

【文章內(nèi)容簡(jiǎn)介】 調(diào)用程序需要函數(shù)的返回結(jié)果,我們要用下面這樣的格式調(diào)用定義的函數(shù)::變量 = 函數(shù)名(實(shí)參1,實(shí)參2,….)如上面int area = getArea(3,5)。語(yǔ)句。對(duì)于有返回值的函數(shù)調(diào)用,我們也可以在程序中直接使用返回的結(jié)果,如這一句:(second Acreage is + getArea(2,4))。 我們還可以在函數(shù)的中間使用return 語(yǔ)句提前返回,如打印矩形面積的函數(shù),首先應(yīng)檢查傳入的參數(shù)(即寬度和高度)是否為負(fù)數(shù),為負(fù)則提前返回。,如下:程序清單:public class Func4{ public static int getArea(int x,int y) { if(x=0|y=0) return 1。 return x*y。 } public static void main(String [] args) { int area = getArea(3,5)。 (first Acreage is + area)。 (second Acreage is + getArea(2,4))。 getArea(6,10)。 }}這樣的程序?qū)魅氲膮?shù)值進(jìn)行了檢查控制,明顯要專(zhuān)業(yè)得多,也是軟件編碼規(guī)范中的一個(gè)起碼要求。很多程序錯(cuò)誤都是由非法參數(shù)引起的,我們應(yīng)該充分理解并有效地使用類(lèi)似上面的方式來(lái)防止此類(lèi)錯(cuò)誤。Java中所有函數(shù)都包含在類(lèi)里面,在Java的一個(gè)類(lèi)中定義的函數(shù)也叫這個(gè)類(lèi)的方法(method),本書(shū)中提到的函數(shù)就是方法,方法就是函數(shù)。下面我們來(lái)看一下函數(shù)的參數(shù)傳遞過(guò)程,如圖:前面講過(guò),Java程序運(yùn)行時(shí)虛擬機(jī)會(huì)先找到這個(gè)程序的main函數(shù),接著從main函數(shù)里面取出一條一條代碼來(lái)執(zhí)行,當(dāng)執(zhí)行到int area=getArea(3,5)。這個(gè)語(yǔ)句時(shí),程序會(huì)跳轉(zhuǎn)到getArea(int x,int y)這個(gè)函數(shù)的內(nèi)部去執(zhí)行,先把實(shí)參(3,5)分別賦值給形式參數(shù)(int x,int y),然后返回x*y的結(jié)果(return x*y。),接著回到main里面,把結(jié)果賦值給整型變量area。這就是函數(shù)的參數(shù)傳值整個(gè)過(guò)程。amp。多學(xué)兩招:形式參數(shù)x和y就相當(dāng)于函數(shù)getArea中定義的兩個(gè)局部變量,在函數(shù)被調(diào)用時(shí)創(chuàng)建,并以傳入的實(shí)參作為初始值,函數(shù)調(diào)用結(jié)束時(shí)也就被釋放了,不會(huì)影響到主程序中其他的x和y(如果有的話),因?yàn)樗鼈儗儆诓煌饔糜蛑械淖兞?,它們是互不相干的變量。函?shù)的重載就是在同一個(gè)類(lèi)中允許同時(shí)存在一個(gè)以上的同名函數(shù),只要它們的參數(shù)個(gè)數(shù)或類(lèi)型不同即可。在這種情況下,該函數(shù)就叫被重載(overloaded)了,這個(gè)過(guò)程稱(chēng)為函數(shù)的重載(method overloading)。如下面的程序:程序清單:public class Test{ public static void main(String [] args) { int isum。 double fsum。 isum=add(3,5)。 isum=add(3,5,6)。 fsum=add(,)。 } public static int add(int x,int y) { reutrn x+y。 } public static int add(int x,int y,int z) { return x+y+z。 } public static double add(double x,double y) { return x+y。 }}Java的編譯器很聰明,能夠根據(jù)調(diào)用函數(shù)時(shí)所傳遞的參數(shù)的個(gè)數(shù)和類(lèi)型選擇相應(yīng)的函數(shù)。重載函數(shù)的參數(shù)列表必須不同,要么是參數(shù)的個(gè)數(shù)不同,要么是參數(shù)的類(lèi)型不同。重載函數(shù)的返回值類(lèi)型可以相同,也可以不同。思考一下:如果兩個(gè)方法的參數(shù)類(lèi)型和個(gè)數(shù)完全一樣,返回值類(lèi)型不同,行不行呢?如果你是Java的設(shè)計(jì)者,而且你的用戶在程序里編寫(xiě)了這樣的兩個(gè)方法,在調(diào)用時(shí),你能根據(jù)他所傳遞的參數(shù)來(lái)為他選擇到底該用那個(gè)嗎?顯然沒(méi)有辦法吧!那就是不能這樣做唄!學(xué)編程不需要死記硬背,靠的是動(dòng)腦筋來(lái)思考,這樣的學(xué)習(xí)才能做到舉一反三、觸類(lèi)旁通。 Java中的運(yùn)算符運(yùn)算符是一種特殊符號(hào),用以表示數(shù)據(jù)的運(yùn)算、賦值和比較。一般由一至三個(gè)字符組成,但Java將其視為一個(gè)符號(hào)。運(yùn)算符共分以下幾種:l 算術(shù)運(yùn)算符l 賦值運(yùn)算符l 比較運(yùn)算符l 邏輯運(yùn)算符l 移位運(yùn)算符 算術(shù)運(yùn)算符 加減乘除的四則運(yùn)算相信讀者都很熟悉了,在此不再贅述,這里給出一個(gè)表來(lái)供讀者參考:算術(shù)運(yùn)算符運(yùn)算符運(yùn)算范例結(jié)果+正號(hào)+33負(fù)號(hào)b=4。b。4+加5+510減642*乘3*412/除5/51%取模5%50++自增(前)a=2。b=++a。a=3。b=3++自增(后)a=2。b=a++。a=3。b=2自減(前)a=2。b=aa=1。b=1 自減(后)a=2。b=aa=1。b=2+字符串相加He+lloHello“+”除字符串相加功能外,還能把非字符串轉(zhuǎn)換成字符串,條件是該表達(dá)式中至少有一個(gè)字符串對(duì)象,如: x+123。的結(jié)果是x123 。M腳下留心:l 由于Java運(yùn)算符有從左到右的優(yōu)先順序,這里請(qǐng)?zhí)貏e注意一下++a和a++以及a和a的區(qū)別,b=++a是a先自增,a自己變了后才賦值給b,而b=a++是先賦值給b,a后自增。l 如果對(duì)負(fù)數(shù)取模,可以把模數(shù)負(fù)號(hào)忽略不記,如:5%2=1。但被模數(shù)是負(fù)數(shù)就另當(dāng)別論了。l 對(duì)于除號(hào)“/”,它的整數(shù)除和小數(shù)除是有區(qū)別的:整數(shù)之間做除法時(shí),只保留整數(shù)部分而舍棄小數(shù)部分。猜一下這三句代碼的結(jié)果:int x=3510。x=x/1000*1000。(x),再運(yùn)行一下,看看結(jié)果。再想一下為什么?你猜想的結(jié)果可能是3510,但實(shí)際運(yùn)行結(jié)果是3000,其實(shí)很簡(jiǎn)單,在程序運(yùn)行到表達(dá)式“x/1000”的時(shí)候,它的結(jié)果是3。amp。多學(xué)兩招:讀者在日常的編程當(dāng)中,盡量多讀一些別人優(yōu)秀的源程序,積累一些好的算法,這樣對(duì)你以后的工作會(huì)有很大幫助。如下面的留言板分頁(yè)問(wèn)題,和走馬燈問(wèn)題,有的程序員可能會(huì)用到一大堆的if else和for語(yǔ)句來(lái)判斷和循環(huán),作者在這里給出兩個(gè)經(jīng)典的算法。 思考題1:某個(gè)培訓(xùn)中心要為新到的學(xué)員安排房間,假設(shè)共有x個(gè)學(xué)員,每個(gè)房間可以住6人,讓你用一個(gè)公式來(lái)計(jì)算他們要住的房間數(shù)(千萬(wàn)不要像向我以前的有些學(xué)員開(kāi)玩笑,說(shuō)男生和女生是不能分在一塊的,我們就不在這考慮了)?答案:(x+5)/6。這種算法還可用在查看留言板的分頁(yè)顯示上: 其中x是總共的留言數(shù),6是每頁(yè)顯示的留言數(shù),結(jié)果就是總共有多少頁(yè)。 思考題2:假設(shè)你要讓x的值在0至9之間循環(huán)變化,請(qǐng)寫(xiě)出相應(yīng)的程序代碼。答案:int x=0。while(true){x = (x+1)%10。}這樣,x的取值總在0與9之間循環(huán)。 賦值運(yùn)算符如下表:賦值運(yùn)算符運(yùn)算符運(yùn)算范例結(jié)果=賦值a=3。b=2。a=3。b=2。+=加等于a=3。b=2。a+=b。a=5。b=2。=減等于a=3。b=2。a=b。a=1。b=2。*=乘等于a=3。b=2。a*=b。a=6。b=2。/=除等于a=3。b=2。a/=ba=1。b=2。%=模等于a=3。b=2。a%=ba=1。b=2。注:在JAVA里可以把賦值語(yǔ)句連在一起,如: x = y = z = 5 。在這個(gè)語(yǔ)句中,所有三個(gè)變量都得到同樣的值5。還可以把x = x + 3簡(jiǎn)寫(xiě)成x += 3,所有運(yùn)算符都可以此類(lèi)推,看多了,寫(xiě)多了就習(xí)慣了。 比較運(yùn)算符比較運(yùn)算符的結(jié)果都是boolean型的,也就是要么是true,要么是false,如下表:比較運(yùn)算符運(yùn)算符運(yùn)算范例結(jié)果==相等于4==3False!=不等于4!=3True小于43False大于43True=小于等于4=3False=大于等于4=Falseinstanceof檢查是否是類(lèi)的對(duì)象Hello instanceof StringTureM腳下留心:比較運(yùn)算符“==”不能誤寫(xiě)成“=”,特別是在C/C++中,如果你少寫(xiě)了一個(gè)“=”,那就不是比較了,整個(gè)語(yǔ)句變成了賦值語(yǔ)句,所以有經(jīng)驗(yàn)的人干脆寫(xiě)成int x=5。if(3==x)這種樣式,將常量放在“==”前面,萬(wàn)一不小心而少寫(xiě)了一個(gè)“=”,就變成了給常量賦值,編譯器報(bào)錯(cuò)。對(duì)于Java,則不用這樣處心積慮,即使寫(xiě)成if(x =3),編譯器也會(huì)報(bào)錯(cuò),因?yàn)镴ava的條件判斷只接受布爾值,要么是true,要么是false。不過(guò),也不能掉以輕心,如果你正好定義了一個(gè)布爾變量b,比如b=false。然后用if(b = true)。這一句,編譯器就不會(huì)報(bào)錯(cuò)了,顯然與你的愿望背道而馳。 邏輯運(yùn)算符邏輯運(yùn)算符用于對(duì)boolean型結(jié)果的表達(dá)式進(jìn)行運(yùn)算,運(yùn)算的結(jié)果都是boolean型,如下表:邏輯運(yùn)算符運(yùn)算符運(yùn)算范例結(jié)果amp。AND(與)falseamp。truefalse|OR(或)false|truetrue^XOR(異或)true^falsetrue!Not(非)!truefalseamp。amp。AND(短路)falseamp。amp。truefalse||OR(短路)false||truetrue“amp?!焙汀癮mp。amp?!钡膮^(qū)別在于,如果使用前者連接,那么無(wú)論任何情況,“amp?!眱蛇叺谋磉_(dá)式都會(huì)參與計(jì)算。如果使用后者連接,當(dāng)“amp。amp。”的左邊為false,則將不會(huì)計(jì)算其右邊的表達(dá)式。請(qǐng)看下面的例子:public class TestAnd{ public static void main(String[] args) { int x=0。 int y=0。 if(x!=0 amp。amp。 y==y/x) (y = +y)。 }}上面例子中,由于while語(yǔ)句的判斷條件中的第一個(gè)布爾表達(dá)式是不成立的,程序就不會(huì)判斷第二個(gè)布爾表達(dá)式的值,這就是“短路”。如果兩個(gè)表達(dá)式之間用“amp?!眮?lái)連接,而且恰好又碰到上面所示的特殊情況,程序運(yùn)行時(shí)就會(huì)出錯(cuò)。OR運(yùn)算符叫邏輯或,由“|”或“||”連接兩個(gè)布爾表達(dá)式,只要運(yùn)算符兩邊任何一個(gè)布爾表達(dá)式為真,該組合就會(huì)返回true值。“|”和“||”的區(qū)別與“amp?!焙汀癮mp。amp?!钡膮^(qū)別一樣。XOR運(yùn)算符叫做異或,只有當(dāng)“^”連接的兩個(gè)布爾表達(dá)式的值不相同時(shí),該組合才返回true值。如果兩個(gè)都是true或都是false,該組合將返回false值。 我們知道,任何信息在計(jì)算機(jī)中都是以二進(jìn)制的形式保存的,“amp?!?、“|”和“^”除了可以作為邏輯運(yùn)算符,也可以做為位算符,它們對(duì)兩個(gè)操作數(shù)中的每一個(gè)二進(jìn)制位都進(jìn)行運(yùn)算。只有參加運(yùn)算的兩位都為1,amp。運(yùn)算的結(jié)果才為1,否則就為0。只有參加運(yùn)算的兩位都為0,|運(yùn)算的結(jié)果才為0,否則就為1。只有參加運(yùn)算的兩位不同,^運(yùn)算的結(jié)果才為1,否則就為0。除了這些位運(yùn)算操作外,我們還可以對(duì)數(shù)據(jù)按二進(jìn)制位進(jìn)行移位操作,Java的移位運(yùn)算符有三種: 左移 右移 無(wú)符號(hào)右移左移很簡(jiǎn)單,就不用多說(shuō)了,右移則有些道道要講了。對(duì)于C語(yǔ)言來(lái)說(shuō),無(wú)符號(hào)位的整數(shù)右移時(shí),左邊移空的高位都會(huì)填入0。有符號(hào)的數(shù)右移時(shí),如果最高位為0,左邊移空的高位都會(huì)填入0,但對(duì)最高位為1時(shí),左邊移空的高位是填入0還是1,要取決于所在的計(jì)算機(jī)系統(tǒng),有的系統(tǒng)填入0,也有的系統(tǒng)是填入1,這也是C語(yǔ)言不跨平臺(tái)的一個(gè)小的方面。Java語(yǔ)言是跨平臺(tái)的,不能像C語(yǔ)言有這樣的二義性,對(duì)Java來(lái)說(shuō),有符號(hào)的數(shù)據(jù)(Java語(yǔ)言中沒(méi)有無(wú)符號(hào)的數(shù)據(jù)類(lèi)型)用“”移位時(shí),如果最高位是0,左邊移空的高位就填入0,如果最高位是1,左邊移空的高位就填入1。同時(shí),Java也提供了一個(gè)新的移位運(yùn)算符“”,不管通過(guò)“”移位的整數(shù)最高為是0還是1,左邊移空的高位填入0。為了讓讀者能夠親身感受到這“”和“”的區(qū)別,我們編寫(xiě)一個(gè)程序,來(lái)查看其輸出結(jié)果。程序清單:public class ShiftTest{public static void main(String [] args){ int x=0x80000000。 int y=0x80000000。x=x1。y=y1。(“0x800000001 = ” + (x))。(“0x800000001 = ” + (y))。}}運(yùn)行結(jié)果如下:0x800000001 = c00000000x800000001 = 40000000在上面的程序中,我們用0x80000000這個(gè)十六進(jìn)制表示的整數(shù)來(lái)作為我們的用例數(shù)據(jù),因?yàn)槲覀兒苋菀卓闯鏊亩M(jìn)制形式1000,0000, 0000, 0000, 0000, 0000, 0000, 0000。為了直觀,對(duì)移位后的結(jié)果,我們也用十六進(jìn)制來(lái)顯示。0xc0000000的二進(jìn)制形式為1100,0000, 0000, 0000, 0000, 0000, 0000, 0000。0x40000000的二進(jìn)制形式為01
點(diǎn)擊復(fù)制文檔內(nèi)容
公司管理相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖片鄂ICP備17016276號(hào)-1