繁体   English   中英

用Java初始化ivars

[英]Initializing ivars in Java

声明和设置默认ivars之间是否存在差异或偏好设置, ivars所示:

public class Foo
{
   private int yes = 0;
   private String name = "";

   //...
   //constructors, setters, getters, etc.
}

public class Foo
    {
       private int yes;
       private String name;

       public Foo()
       {
          yes = 0;
          name = "";
       }
       //...
       //setters, getters, etc.
    }

另外,在Foo中的constructors和其他方法中,我应该使用accessormutator方法来设置并获取ivars ,还是直接将它们分配给它们?

基本类型(在您的情况下为int )会自动通过默认值进行初始化,因此无需将其显式设置为0

Strings和其他对象呢:这完全取决于您的偏好。 不想在构造函数中初始化它。 但是请记住,在初始化构造函数中的字段的情况下,如果字段初始化引发某些异常,则可以处理异常

一样。 外部类将需要访问器和更改器方法。

没关系,这基本上是个人喜好。 Java编译器将初始化从类复制到每个构造函数(无需额外的调用,它实际上是字节码中的直接副本)。

就个人而言,我更喜欢将与数据无关的初始化放入类中,而将可能依赖于构造函数参数的数据放入构造函数本身。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM