gpt4 book ai didi

java - java中的默认构造函数是如何被调用的?

转载 作者:行者123 更新时间:2023-12-01 18:14:07 25 4
gpt4 key购买 nike

public class Hello {

int i;
char ch;
Hello(int x){
i=x;

}
Hello(char c){
ch=c;
}

public static void main(String[] args) {
Hello h=new Hello(1);
System.out.printf("value of i is %d"+"value of ch is %c",h.i,h.ch);
//Hello h=new Hello('T');
//System.out.printf("value of i is %d"+"value of ch is %c",h.i,h.ch);
}

O/p 是:i 的值是 1 ch 的值是

我的问题是为什么 ch 值没有初始化?而如果另一种情况 O/p 是:i 的值为 0 ch 的值为 T为什么在这种情况下我被初始化了。??

最佳答案

您的类有两个构造函数,一个接受 int,另一个接受 char。无论您使用哪个来初始化类的实例,另一个变量都将使用它的默认值。

  • 类型 int 默认为 0
  • 类型 char 默认为 \u0000,即 null 字符,如所讨论的 here .

因此,当您调用时:

Hello h=new Hello(1);

您的结果有效:

h.i = 1;
h.ch = '\u0000';

通话时:

Hello h=new Hello('T');

有效地导致:

h.i = 0;
h.ch = 'T';

关于java - java中的默认构造函数是如何被调用的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30768136/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com