Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/oop/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 类的字段初始化_Java_Oop_Constructor - Fatal编程技术网

Java 类的字段初始化

Java 类的字段初始化,java,oop,constructor,Java,Oop,Constructor,对不起,如果这个问题很琐碎 有两种初始化字段的方法 例如: 第一种方法是: Public class A{ int a; A(){ a = 5; } } 第二种方式是: Public class A{ int a = 5; A(){ } } 哪条路更好?为什么?这取决于你想要什么 如果您只有一个构造函数,那么这并不重要,因为无论哪种方式,该值都将启动一个0。如果您有多个构造函数,这仍然不重要,但最好按以下方式执行: int a;

对不起,如果这个问题很琐碎

有两种初始化字段的方法

例如:

第一种方法是:

Public class A{
    int a;
    A(){
        a = 5;
    }
}
第二种方式是:

Public class A{
    int a = 5;
    A(){
    }
}

哪条路更好?为什么?这取决于你想要什么

如果您只有一个构造函数,那么这并不重要,因为无论哪种方式,该值都将启动一个0。如果您有多个构造函数,这仍然不重要,但最好按以下方式执行:

int a;

A() {
    a = 0;
}

A(int newA) {
    a = newA;
}
当我个人开发时,我将仅在以下情况下在顶部分配值:

我分配的变量是常量。 变量具有某种默认值,这种默认值可以而且通常会更改。
两种方法都是正确的

如果您不想重复下面代码中所示的代码,请选择第二种方式:

public class A{
    int a;
    A(){
       a=5;
    }
    A(String s){
       a=5;
    }
    A(Long l){
       a=5;
    }
 }

 public class A{
    int a = 5;
    A(){
    }
    A(String s){
    }
    A(Long l){
    }
 }
在第二种情况下,不必为所有重载构造函数初始化它


现在取决于您的选择。

是否初始化基元int始终为“0”。如果在声明过程中坚持使用常量默认值初始化,则最好使用声明。如果希望在初始化对象时传递值,请使用构造函数。默认情况下,实例变量已初始化。int为零。@Braj如果开始时a=5怎么办?我错了,我先看了答案。我喜欢这个原因:如果你不想重复下面代码中所示的代码,而不是使用a,我想应该不是a{this.a=a;}。请检查一下,谢谢,我已经改正了。