将默认值指定给引用变量

时间:2015-09-16 17:52:05

标签: java

在Java中,如果我们声明原始变量(非本地),如int,float等,并且不初始化它们,那么它们会被默认值初始化。我们能为参考变量实现这样的东西吗?例如,如果我有一个包含两个int变量的employee类,而在另一个类中,如果我只创建了employee类的引用,那么int变量是否可以初始化为零?

3 个答案:

答案 0 :(得分:2)

  

在Java中,如果我们声明原始变量(非本地),如int,float等,并且不初始化它们,那么它们会被默认值初始化。

不,他们不是。 字段执行,包括实例字段和类字段,但不包括变量

  

我们能为参考变量实现这样的目标吗?

参考字段获得相同的行为。他们初始化的值为null

  

例如,如果我有一个包含两个int变量的employee类,而在另一个类中,如果我只创建了employee类的引用,那么int变量是否可以初始化为零?

如果通过"创建参考"你的意思是你已经创建了一个Employee实例,那么该实例中的任何字段都将被初始化为默认值,除非Employee构造函数给它们一个不同的值。

答案 1 :(得分:0)

未显式初始化时,不会将本地字段初始化为默认值。所以,像这样

public class Main {
    boolean flag;
    void foo(){
        System.out.println(flag);
    }
}

编译并foo()方法将打印false,而类似

public class Main2 {
    void foo(){
        boolean flag;
        System.out.println(flag);
    }
}

甚至不会编译。此外,参考的默认值为null

你可以做的是以这样的方式设计你的类,当初始化类时,一个值被分配给它的实例变量,比如

public class Main {
    boolean flag;
    {
        flag=true;
    }
    void foo(){
        System.out.println(flag);
    }
}

答案 2 :(得分:0)

字段初始化为null,如果它们来自某些“类型”(基本类型除外),无论如何,如果您在该类的“默认”构造函数中提供默认值,尤其是您可以覆盖默认值{ {1}}这些值。

null