一尘不染

Java定义或初始化类的属性

java

定义 类属性和 初始化 它们之间有区别吗?在某些情况下,您想彼此做一个吗?

例:

以下代码段应指出我的意思。我在那里使用一个原语和一个对象:

import Java.util.Random;

public class Something extends Activity {
    int integer;
    Random random = null;

    Something(){
        integer = 0;
        random = new Random();
        ....

import Java.util.Random;

public class Something extends Activity {
    int integer = null;
    Random random;

    Something(){
        integer = 0;
        random = new Random();
        ....

阅读 503

收藏
2020-12-03

共1个答案

一尘不染

首先,您不能将原语设置为null,因为原语只是数据,其中null是对象引用。如果尝试编译int i = null,则会收到不兼容的类型错误。

其次,像在Java中那样,在类中将变量初始化为null0在类中声明变量时是多余的,原语默认为0(或false),对象引用默认为null。局部变量不是这种情况,但是,如果您尝试以下操作,则在编译时会出现初始化错误

 public static void main(String[] args)
 {
     int i;
     System.out.print(i);
 }

明确地将它们初始化为0or或falseor
的默认值null是没有意义的,但是您可能希望将它们设置为另一个默认值,然后可以创建一个具有默认值的构造函数,例如

public MyClass
{
   int theDate = 9;
   String day = "Tuesday";

   // This would return the default values of the class
   public MyClass()
   {
   }

   // Where as this would return the new String
   public MyClass (String aDiffDay)
   {
      day = aDiffDay;
   }
}
2020-12-03