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