java外文翻譯模板 畢業(yè)設(shè)計(jì) 畢業(yè)設(shè)計(jì)外文資料翻譯--有效的Java:編程語言指南
日期:2023-03-11 12:39:36 / 人氣: 514 / 發(fā)布者:成都翻譯公司
外文資料翻譯譯文;2.外文原文指導(dǎo)教師評(píng)語:原文所涉及內(nèi)容與課題有關(guān)聯(lián),翻譯難度適中。譯文格式符合規(guī)范,按時(shí)完成了外文翻譯任務(wù)。簽名:2015年10月14日1.外文資料翻譯譯文有效的Java:編程語言指南第六章方法本章討論方法設(shè)計(jì)的幾個(gè)方面:如何看待參數(shù)和返回值,如何設(shè)計(jì)方法簽名,以及如何記錄的方法。項(xiàng)目24:需要時(shí)進(jìn)行防御拷貝有一件事讓Java編程語言,使用樂趣的是,它是一個(gè)安全語言。畢業(yè)設(shè)計(jì)外語信息翻譯學(xué)院:專業(yè)班級(jí):學(xué)生姓名:學(xué)生證:指導(dǎo)教師:外語來源:JoshuaBloch.EffectiveJava[M].London:AddisonWesley,2001. 附件:1.外語翻某言材料;2. 外語原版導(dǎo)師點(diǎn)評(píng):原文內(nèi)容與主題相關(guān),翻譯難度適中。學(xué)生的譯文在用法上基本準(zhǔn)確,譯文內(nèi)容與原文意思基本相符。翻譯格式符合規(guī)范,按時(shí)完成外文翻譯任務(wù)。簽名:2015 年 10 月 14 日 1. Effective Java:編程語言指南第六章方法本章討論方法設(shè)計(jì)的幾個(gè)方面:如何處理參數(shù)和返回值,如何設(shè)計(jì)方法簽名,以及如何記錄方法。本章中的大部分材料都適用于構(gòu)造和方法。與第 5 章一樣,本章的重點(diǎn)是易用性、健壯性和靈活性。第 23 項(xiàng):檢查參數(shù)的有效性。大多數(shù)方法和構(gòu)造對(duì)于引入它們的參數(shù)的值都有一定的限制。例如,索引值為負(fù)的情況并不少見,并且對(duì)象引用必須為非空。您應(yīng)該在方法主體的開頭清楚地記錄所有此類限制和檢查以強(qiáng)制執(zhí)行它們。這是特殊情況的一般規(guī)則,您應(yīng)該嘗試在錯(cuò)誤發(fā)生后盡快檢測。
如果將無效的參數(shù)值傳遞給方法并且該方法在執(zhí)行前檢查其參數(shù),它將很快完全失敗并出現(xiàn)適當(dāng)?shù)漠惓?。如果該方法不檢查其參數(shù),則可能會(huì)發(fā)生多種情況。該方法可能會(huì)在令人困惑的異常處理中失敗。更糟糕的是,該方法可以正常返回,但會(huì)默默計(jì)算出錯(cuò)誤的結(jié)果。*糟糕的是,該方法可以正常返回,但使某些對(duì)象處于妥協(xié)狀態(tài),在某個(gè)不確定的時(shí)間后導(dǎo)致代碼中的某些分散點(diǎn)出現(xiàn)錯(cuò)誤。對(duì)于公共方法 [emailprotected],如果違反了拋出參數(shù)值的限制(第 44 項(xiàng))。正常情況下會(huì)拋出異常:IllegalArgumentException、IndexOutOfBoundsException或NullPointerException(42項(xiàng))。一旦您記錄了限制方法的參數(shù)并提交了文件,如果違反了這些限制,就會(huì)拋出異常。無論執(zhí)行如何,這都是一個(gè)簡單的限制。下面是一個(gè)典型的例子: /*** 返回一個(gè) BigInteger,其值為 (this mod m)。這個(gè)方法和其他方法不同,[emailprotected]數(shù)量,[emailprotected][emailprotected],如果m小于等于0。**/publicBigIntegermod(BigIntegerm){if(m.signum()=0)@ >thrownewArithmeticException(Modulusnotpositive);} 對(duì)于未導(dǎo)出的方法,會(huì)調(diào)用你包作者控制下的方法,所以你可以 并且應(yīng)該保證只有合法的參數(shù)值永遠(yuǎn)是過去的。無論執(zhí)行如何,這都是一個(gè)簡單的限制。下面是一個(gè)典型的例子: /*** 返回一個(gè) BigInteger,其值為 (this mod m)。這個(gè)方法和其他方法不同,[emailprotected]數(shù)量,[emailprotected][emailprotected],如果m小于等于0。**/publicBigIntegermod(BigIntegerm){if(m.signum()=0)@ >thrownewArithmeticException(Modulusnotpositive);} 對(duì)于未導(dǎo)出的方法,會(huì)調(diào)用你包作者控制下的方法,所以你可以 并且應(yīng)該保證只有合法的參數(shù)值永遠(yuǎn)是過去的。無論執(zhí)行如何,這都是一個(gè)簡單的限制。下面是一個(gè)典型的例子: /*** 返回一個(gè) BigInteger,其值為 (this mod m)。這個(gè)方法和其他方法不同,[emailprotected]數(shù)量,[emailprotected][emailprotected],如果m小于等于0。**/publicBigIntegermod(BigIntegerm){if(m.signum()=0)@ >thrownewArithmeticException(Modulusnotpositive);} 對(duì)于未導(dǎo)出的方法,會(huì)調(diào)用你包作者控制下的方法,所以你可以 并且應(yīng)該保證只有合法的參數(shù)值永遠(yuǎn)是過去的。
使用斷言而不是常規(guī)檢查,因此非公共方法通常應(yīng)該檢查它們的參數(shù)。如果使用支持平臺(tái)的發(fā)布斷言(1.4 或更高),則應(yīng)使用斷言結(jié)構(gòu);否則java外文翻譯模板 畢業(yè)設(shè)計(jì),您應(yīng)該使用臨時(shí)斷言機(jī)制。在參數(shù)未被使用但存儲(chǔ)起來以備后用的情況下,檢查方法的有效性尤為重要。例如,考慮第 86 頁上的靜態(tài)工廠方法,它需要一個(gè) int 數(shù)組并返回該數(shù)組的列表視圖。如果此方法的客戶端傳入 null,則該方法將拋出 NullPointerException,因?yàn)樵摲椒ò@式檢查。如果省略檢查,該方法將返回一個(gè)引用,并會(huì)在新創(chuàng)建的 List 實(shí)例客戶端嘗試使用它時(shí)盡快拋出 NullPointerException。不幸的是,到那時(shí),List 實(shí)例的來源可能很難確定,這將大大增加調(diào)試任務(wù)的復(fù)雜性。builder 代表了原則的特殊情況,你應(yīng)該檢查那些參數(shù)的有效性,以便存儲(chǔ)起來以備后用。檢查構(gòu)造函數(shù)參數(shù)的有效性非常重要java外文翻譯模板 畢業(yè)設(shè)計(jì),以防止違反類的構(gòu)造的對(duì)象不變。但也有例外,您應(yīng)該在執(zhí)行計(jì)算之前檢查方法的參數(shù)。一個(gè)重要的例外是這種情況,其中合法性檢查將是昂貴或不切實(shí)際的,并且在此類計(jì)算過程中隱式執(zhí)行有效性檢查。例如,考慮一種對(duì)對(duì)象列表進(jìn)行排序的方法,例如 Collections.sort(list)。
列表中的所有對(duì)象必須相互比較。在對(duì)列表進(jìn)行排序的過程中,列表中的每個(gè)對(duì)象都會(huì)與某些列表中的其他對(duì)象進(jìn)行比較。如果對(duì)象不能相互比較,這些比較之一將拋出 ClassCastException,這正是排序方法應(yīng)該做的。所以會(huì)有一點(diǎn)點(diǎn)時(shí)間提前檢查,列表中的元素相互比較。但是請(qǐng)注意,濫用這種技術(shù)可能會(huì)導(dǎo)致失敗原子的丟失(item 4 6)。有時(shí),計(jì)算會(huì)隱式進(jìn)行一些必要的合法性檢查參數(shù),但如果檢查失敗,則會(huì)出現(xiàn)錯(cuò)誤異常就是說,不同的是自然會(huì)拋出的計(jì)算結(jié)果是無效的。參數(shù)值不符合你記錄的拋出方法的異常。在這些情況下,您應(yīng)該使用條款 43 中描述的異常將習(xí)語翻譯成自然翻譯。例外是正確的。*好不要從對(duì)這個(gè)項(xiàng)目的參數(shù)的任意限制中推斷出來。相反,您應(yīng)該設(shè)計(jì)通用的方法,因?yàn)橹谱魉鼈兪乾F(xiàn)實(shí)的。限制越少,參數(shù)放得越好,假設(shè)該方法可以做一些合理的并且它接受的所有參數(shù)值。然而,通常在實(shí)現(xiàn)的抽象中存在一些固有的限制。簡而言之,每次編寫方法或構(gòu)造函數(shù)時(shí),都應(yīng)該考慮其中存在什么。參數(shù)限制。您應(yīng)該記錄這些限制并在方法主體的開頭通過顯式檢查來執(zhí)行它們。養(yǎng)成習(xí)慣對(duì)于這樣做非常重要;適度的工作,它需要通過第一次償還利息的有效性檢查。項(xiàng)目 24:在需要時(shí)制作防御性副本。使 Java 編程語言使用起來很有趣的一件事是它是一種安全的語言。
這意味著沒有本地方法可以免疫緩沖區(qū)溢出、數(shù)組溢出、野指針和其他困擾 C 和 C++ 等不安全語言的內(nèi)存損壞錯(cuò)誤。在安全的語言中,您可以編寫類并確定它們的不變量在任何其他情況下都將保持正確,無論系統(tǒng)是什么。不可能把內(nèi)存中的所有語言都當(dāng)成一個(gè)龐大的數(shù)組。即使使用一種安全的語言,您也無法毫不費(fèi)力地將自己與其他課程隔離開來。假設(shè)您的類的客戶將盡*大努力破壞其不變量,您必須對(duì)編程保持防御。如果有人試圖破壞您系統(tǒng)的安全性,這實(shí)際上可能是正確的,但更有可能的是,您的類將不得不處理因使用 API 程序員而導(dǎo)致的突然而誠實(shí)的錯(cuò)誤。無論哪種方式,面對(duì)生病和聽話的強(qiáng)客戶,這是一門值得寫的課程。雖然沒有對(duì)象的一些幫助,另一個(gè)類不可能修改對(duì)象的內(nèi)部狀態(tài),但很容易提供這種幫助而沒有意義。例如,考慮下面的類,它聲稱代表一個(gè)不可變的時(shí)間段: // 打破“不可變”的時(shí)間段 class publicfinalclassPeriod{privatefinalDatestart; 雖然沒有對(duì)象的一些幫助,另一個(gè)類不可能修改對(duì)象的內(nèi)部狀態(tài),但很容易提供這種幫助而沒有意義。例如,考慮下面的類,它聲稱代表一個(gè)不可變的時(shí)間段: // 打破“不可變”的時(shí)間段 class publicfinalclassPeriod{privatefinalDatestart; 雖然沒有對(duì)象的一些幫助,另一個(gè)類不可能修改對(duì)象的內(nèi)部狀態(tài),但很容易提供這種幫助而沒有意義。例如,考慮下面的類,它聲稱代表一個(gè)不可變的時(shí)間段: // 打破“不可變”的時(shí)間段 class publicfinalclassPeriod{privatefinalDatestart;
- 上一條美國州務(wù)卿認(rèn)證翻譯模板 中國駐美國紐約領(lǐng)事館,DC大使館辦理領(lǐng)事認(rèn)證手續(xù)程序
- 下一條翻譯人員求職簡歷模板3篇 英語翻譯的個(gè)人簡歷模板二
相關(guān)閱讀Relate
熱門文章 Recent
- 永州正規(guī)的合同協(xié)議翻譯模板 翻譯服務(wù)合同樣本一【標(biāo)準(zhǔn)版】.docx2023-03-11
- 英國簽證翻譯模板車輛 英國簽證材料翻譯件上還要翻譯公章嗎?2023-03-11
- 商務(wù)翻譯人員英文簡歷模板 商務(wù)英語司機(jī)簡歷模板2023-03-11
- 加拿大簽證結(jié)婚證戶口翻譯模板 歐洲游簽證都需要哪些材料 加拿大簽證需要哪些材料2023-03-11
- 營業(yè)執(zhí)照翻譯件標(biāo)準(zhǔn)模板 營業(yè)執(zhí)照翻譯(法語為例)2023-03-11
- mrna是蛋白質(zhì)翻譯的模板 詳細(xì)解讀:mRNA帽子結(jié)構(gòu)的生物學(xué)功能與應(yīng)用2023-03-11
- 杭州翻譯助理大學(xué)生個(gè)人簡歷模板 前臺(tái)行政助理大學(xué)生個(gè)人簡歷模板2023-03-11
- 英語三段式作文萬能模板帶翻譯 【中考英語作文】中考英語作文萬能模板:十字結(jié)構(gòu)2023-03-11
- 申請(qǐng)表翻譯模板 資質(zhì)申請(qǐng)表2023-03-11
- 英語六級(jí)翻譯句型模板 英語六級(jí)寫作翻譯技巧2023-03-11