成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

Java類中域和方法設置中的常見錯誤

開發 后端
本文向您介紹Java開發中Java類和方法中需要注意的地方;提前預知這些Java常見錯誤可以在我們的項目中提高效率。

在Java程序中,Java類是其實現功能的核心。如果說開發Java應用程序,就是一個類的構建與使用的過程這一點都不為過。可惜的是,不少程序員在編寫類的時候,還是會犯一些常規的錯誤。筆者就對此做一個總結,望各位讀者能夠引起重視。

一、基本數據類型的初始化問題

在Java語言中,跟其他開發語言一樣,都定義了一些基本的數據類型。程序員可以拿來直接使用,還可以用來構造其他一些復雜的應用程序。不過在Java中使用這些基本數據類型有些不同。在Java類中,這個基本數據類型主要用在兩個地方,分別為類中的成員或者局部變量。對于這些基本的數據類型,常犯的錯誤就是沒有進行初始化。

如果將某些變量是屬于這些基本數據類型的,當他們作為一個類的成員使用時,默認情況下編譯器會給其一個默認值。以保證那些是基本類型的成員變量得到初始化,防止產生程序的錯誤。但是,這些默認的初始值大部分情況下可能都不符合程序員的需要,可能是不準確的,也可能是不合法的。為此筆者的建議是,開發人員要養成一個好習慣,在定義變量的時候(用于類成員),就最好明確的對變量進行初始化。另外需要注意的是,跟C++等編程語言相比,Java在這方面有了很不錯的改善。如如果開發人員忘記對其進行初始化,Java至少還會采用默認值對其進行初始化,來防止程序錯誤。但是在C++中,則不會對其進行自動初始化。在這種情況下,由于變量沒有及時初始化,而很容易出現程序的崩潰。

基本類型的另外一種用途就是當作局部變量來使用,如在循環語句中當作循環條件來使用。此時跟類成員不同,系統不會自動對局部變量進行初始化。很多程序開發員會在這里栽跟頭。因為在類成員中會對其進行自動初始化,而在局部變量也如此。其實不然。當利用int y 等語句定義了一個局部變量時,Java跟其他開發語言一樣,是不會對其進行自動初始化的。開發人員需要在定義變量時就對其進行初始化,這是筆者強烈建議的。在Java類中,如果在代碼編譯的時候,局部變量沒有被正確的初始化,則系統編譯器就會返回一個錯誤信息,告訴開發人員某個局部變量沒有被正確的初始化,便以不會成功。在這方面,Java跟其他語言也有所不同。如在C++中,如果變量沒有初始化,那么系統只是拋出一個警告信息,便以仍然可以正常進行。這無疑后以后程序運行埋下了一顆定時炸彈。為此筆者認為,Java這種做法是比較安全的。當局部變量沒有初始化時,系統會拒絕進行編譯,而不是簡單的只是一個警告信息。有時候,警告信息并不能夠引起程序開發人員的重視。

總之,基本數據類型無論是作為類成員變量來使用,還是作為局部變量來使用,程序開發人員都要養成一個好習慣,即在變量定義的時候馬上進行初始化。即使不知道還賦予什么值合適,那么最好也是手工的賦予其一個默認值。等到變量使用時,在根據實際情況給其重新賦值。無論什么情況下,變量一定以就要對其進行初始化。

二、給方法設置合適的返回類型

在Java類中,除了成員變量,最重要的就是方法了。而在方法中,比較容易出現問題的那就是其返回類型的問題。這里指的返回類型是指調用方法后返回的數據類型。也就是說,在方法內部執行一系列的運算之后,要返回給外部的值。開發人員要根據這個值來設置方法的返回類型。如現在有一個方法age()。主要的用途就是根據身份證號碼來推算出這個人的年齡。此時在調用這個方法時,可利用如下的語句 int age1=getage.age()。

那么在定義這個方法的時候,有哪些Java常見錯誤需要注意呢?

首先在定義方法的時候,需要注意其數據的范圍類型。并不是說所有的方法都會返回結果。如果某個方法返回結果的話,并不是說不用指定返回的數據類型。仍然需要指定,只是利用關鍵字void,而不是采用int等基本數據類型。如假設上面這個age方法沒有返回任何的數據類型,則要按照如下的方法來定義,即void age()。注意前面的關鍵字void表示這個方法沒有返回值。如果有返回值的話,那么就要在方法開頭指明返回值的類型。如age這個方法,如果其返回的是年齡整數型的數據,則就需要如下定義int age()。最好的情況是,返回的數據類型跟方法中指定的數據類型一致。,但是在實際工作中,沒有定義的這么嚴格。一般來說,這個數據類型只要兼容機即可。如雖然返回的數據是整數,但是在方法處定義的可以是浮點數的數據類型。因為他們是兼容的。但是反過來則不行。如返回的值為浮點數,而在方法中定義的卻是整數型的返回值。此時系統就會認為是錯誤的。因為在整數型的變量中無法存儲浮點數的數據。

其次需要注意的是在調用這個方法時,需要將方法的返回值賦值給某個變量。為此,這個變量的數據類型必須同這個方法返回值的數據類型兼容。int age1=getage.age(),如在這個語句中,如果方法age返回的是整數型的數據,就說明是可行的。但假設這個方法返回的不是整數型的數據,而是浮點數的數據類型,那么就會發生數據類型不兼容的情況。所以在將某個方法的返回值賦值給變量時,一定需要注意這個方法的返回值到底是什么。如果這個方法是程序員自己編寫的,那么一般不會出現問題。自己編寫的方法,應該清楚其會返回什么樣的值。現在的問題是,如果這個方法不是程序員自己開發的呢?在一些大型的應用程序開發中,往往需要多個程序員合作才能夠完成一個項目。此時程序員就需要引用其他程序開發人員開發的類以及類中的方法。有時候程序開發人員還會從網上下載類直接拿來使用。無論是哪一種方式,都會涉及到這個數據類型的問題。為此如果是程序員自己開發的類供別人使用時,那么最好能夠在類或者方法的說明中,將這個方法會返回的數據類型寫清楚,并且要確保準確。只有如此,程序員才能夠在引用某個方法時為其設置合適的數據類型,避免因為數據類型不一致而導致應用程序編譯或者運行錯誤。

三、參數列表的個數與數據類型

在定義方法時,往往需要外部參入一些參數才能夠運行。如在根據身份證號碼來判斷年齡的方法中,至少需要將身份證號碼這個參數傳遞放方法對內部中去。有時候可能還不止一個參數。如由于身份證號碼新版與舊版是不同的。為此同時需要將身份證號碼的版本傳遞到方法里面去。在這個傳遞的過程中,主要需要注意的就是參數的個數與數據類型。

如果外部需要傳入多個參數到方法內部的話,那么在定義方法時就需要設置這么多的參數,傳入的參數與參數列表中的參數必須一一對應。如上面這個案例中需要傳入身份證號碼與身份證的版本,那么在定義這個方法的時候就需要設置兩個參數。

其次在Java常見錯誤中,要注意數據類型。在參數列表中,也需要為參數指定其采用的數據類型。這個數據類型必須與實際傳入的數據類型一致或者兼容。為了保證這一點,往往需要在傳入這個參數之間進行控制。如需要利用一個If語句來判斷傳入的參數是否符合要求。如果符合的話,調用這個方法。相反不符合的話,則會 拋出一個異常,并將錯誤信息返回給用戶。在大部分情況下,如果方法涉及到參數,利用if語句來進行判斷是比較合理的。另外,也可以事先利用數據類型轉換函數,強制將傳輸參數的數據類型轉換成參數列表所定義的數據類型。不過需要注意的是,在轉換過程中可能會造成一些數據的誤差。開發人員需要預先評估一下能否接受這誤差。如果可以接收的話,則可以采用這種方法來強制數據的兼容性。如果不行的話,則就需要給用戶返回錯誤信息,讓其提供一個合法的參數。

另外在窗口中進行類似的控制也是不錯的選擇。如可以通過必須填寫文本框這種機制來控制用戶必須傳入多少個參數。或者在文本框中采用列表或者日期型的選擇框等等來規范用戶傳入參數的數據類型。總之,這個方法傳入參數的控制,無論是數量上還是數據類型上,在越靠近用戶的那邊控制效果越好。如此用戶可以在最短的時間內發現問題,而不會等到程序執行錯誤了才知道自己提供的參數有問題。


 

【編輯推薦】

  1. Java類體中的this和super的用法
  2. Java通過JNI調用C語言的方法
  3. Java連接MySQL中文亂碼處理
  4. 淺析Java虛擬機的工作流程
  5. 在Java應用程序中使用Jfreechart配置
責任編輯:佚名 來源: IT專家網
相關推薦

2022-12-13 14:51:26

DevOps數據工具

2025-02-10 00:00:00

技巧JavaStreams

2011-06-02 14:51:07

JAVA修飾符

2023-10-26 12:01:30

Golang字符串

2009-06-22 15:01:00

java項目常見錯誤

2013-09-02 13:21:35

2010-03-15 18:42:52

Java多線程

2016-09-29 09:37:50

2011-03-31 16:08:35

2012-09-24 09:29:11

云應用部署云計算模式應用性能監控

2011-03-31 16:05:16

2017-09-12 10:20:00

大數據數據可視化錯誤及方法

2012-08-15 14:01:18

2009-11-24 20:04:36

PHP常見錯誤

2021-05-14 07:15:23

UsertpUser工具

2023-09-07 11:53:05

2025-04-28 04:22:00

2021-06-22 14:00:55

數據中心

2011-05-26 08:36:07

JDKJava

2021-07-05 10:00:31

JavaStack基礎
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 国产高清在线精品一区二区三区 | 伊人久久成人 | 中文字幕在线免费视频 | 91av小视频| 一区二区三区视频在线观看 | 九色91视频 | 免费的日批视频 | 毛片在线免费 | 欧产日产国产精品视频 | 操久久| av中文字幕网| 99视频在线 | 中午字幕在线观看 | 男人天堂手机在线视频 | 中文字幕日韩在线观看 | 免费av一区二区三区 | 91精品久久久久 | 成年人在线观看 | 国产精品一区二区三区久久 | 青青草一区二区三区 | www.玖玖玖| 在线国产一区二区 | 欧美激情99 | 一区二区精品在线 | 丝袜美腿一区二区三区动态图 | 日韩在线视频一区 | av免费观看在线 | 国产亚洲精品美女久久久久久久久久 | 三级黄色片在线播放 | 爱爱免费视频 | 国产一区 | 免费观看国产视频在线 | 久久久国产一区二区三区四区小说 | 天天拍夜夜爽 | 日本久久网 | 日韩一区二区福利视频 | 国产激情一区二区三区 | 综合网伊人 | 午夜电影网址 | 国产色 | 在线观看成人精品 |