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

正文內容

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

2025-07-22 06:59 本頁面
 

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