发新话题
打印

Java类中域和方法设置中的常见错误

Java类中域和方法设置中的常见错误

在Java顺序中,类是其完成功能的中心。假如说开发Java使用顺序,就是一个类的构建与使用的过程这一点都不为过。可惜的是,不少顺序员在编写类的时分,还是会犯一些常规的错误。笔者就对此做一个总结,望各位读者可以引起重视。
  一、基本数据类型的初始化问题。
  在Java言语中,跟其他开发言语一样,都定义了一些基本的数据类型。顺序员可以拿来直接使用,还可以用来结构其他一些复杂的使用顺序。不过在Java中使用这些基本数据类型有些不同。在Java言语中,这个基本数据类型次要用在两个地方,分别为类中的成员或许局部变量。关于这些基本的数据类型,常犯的错误就是没有停止初始化。
  假如将某些变量是属于这些基本数据类型的,当他们作为一个类的成员使用时,默认情况下编译器会给其一个默认值。以保证那些是基本类型的成员变量得到初始化,防止发生顺序的错误。但是,这些默认的初始值大局部情况下可能都不契合顺序员的需求,可能是不精确的,也可能是不合法的。为此笔者的建议是,开发人员要养成一个好习气,在定义变量的时分(用于类成员),就最好明确的对变量停止初始化。另外需求注意的是,跟C++等编程言语相比,Java在这方面有了很不错的改善。如假如开发人员忘记对其停止初始化,Java至少还会采用默认值对其停止初始化,来防止顺序错误。但是在C++中,则不会对其停止自动初始化。在这种情况下,由于变量没有及时初始化,而很容易呈现顺序的崩溃。
  基本类型的另外一种用处就是当作局部变量来使用,如在循环语句中当作循环条件来使用。此时跟类成员不同,系统不会自动对局部变量停止初始化。很多顺序开发员会在这里栽跟头。因为在类成员中会对其停止自动初始化,而在局部变量也如此。其实不然。当应用int y 等语句定义了一个局部变量时,Java跟其他开发言语一样,是不会对其停止自动初始化的。开发人员需求在定义变量时就对其停止初始化,这是笔者强烈建议的。假如在代码编译的时分,局部变量没有被正确的初始化,则系统编译器就会返回一个错误信息,告诉开发人员某个局部变量没有被正确的初始化,便以不会成功。在这方面,Java跟其他言语也有所不同。如在C++中,假如变量没有初始化,那么系统只是抛出一个警告信息,便以依然可以正常停止。这无疑后以后顺序运转埋下了一颗定时炸弹。为此笔者认为,Java这种做法是比拟安全的。当局部变量没有初始化时,系统会回绝停止编译,而不是复杂的只是一个警告信息。有时分,警告信息并不可以引起顺序开发人员的重视。
  总之,基本数据类型无论是作为类成员变量来使用,还是作为局部变量来使用,顺序开发人员都要养成一个好习气,即在变量定义的时分马上停止初始化。即使不知道还赋予什么值合适,那么最好也是手工的赋予其一个默认值。等到变量使用时,在根据实践情况给其重新赋值。无论什么情况下,变量一定以就要对其停止初始化。
  二、给方法设置合适的返回类型。
  在Java类中,除了成员变量,最重要的就是方法了。而在方法中,比拟容易呈现问题的那就是其返回类型的问题。这里指的返回类型是指调用方法后返回的数据类型。也就是说,在方法内部执行一系列的运算之后,要返回给内部的值。开发人员要根据这个值来设置方法的返回类型。如如今有一个方法age()。次要的用处就是根据身份证号码来推算出这团体的年龄。此时在调用这个方法时,可应用如下的语句 int age1=getage.age()。
  那么在定义这个方法的时分,需求注意哪些内容呢?
  首先在定义方法的时分,需求注意其数据的范围类型。并不是说一切的方法都会返回结果。假如某个方法返回结果的话,并不是说不用指定返回的数据类型。依然需求指定,只是应用关键字void,而不是采用int等基本数据类型。如假定上面这个age方法没有返回任何的数据类型,则要依照如下的方法来定义,即void age()。注意前面的关键字void表示这个方法没有返回值。苏泽尔内衣旗舰店假如有返回值的话,那么就要在方法开头指明返回值的类型。如age这个方法,假如其返回的是年龄整数型的数据,则就需求如下定义int age()。最好的情况是,返回的数据类型跟方法中指定的数据类型一致。,但是在实践工作中,没有定义的这么严厉。普通来说,这个数据类型只需兼容机即可。如虽然返回的数据是整数,但是在方法处定义的可以是浮点数的数据类型。因为他们是兼容的。但是反过来则不行。如返回的值为浮点数,而在方法中定义的却是整数型的返回值。此时系统就会认为是错误的。因为在整数型的变量中无法存储浮点数的数据。
其次需求注意的是在调用这个方法时,需求将方法的返回值赋值给某个变量。为此,这个变量的数据类型必需同这个方法返回值的数据类型兼容。int age1=getage.age(),如在这个语句中,假如方法age返回的是整数型的数据,就阐明是可行的。但假定这个方法返回的不是整数型的数据,而是浮点数的数据类型,那么就会发生数据类型不兼容的情况。所以在将某个方法的返回值赋值给变量时,一定需求
jiyizhen-buy.com颈椎保健枕太空记忆枕 igerl.com歌瑞尔内衣

TOP

发新话题