gpt4 book ai didi

Java类构造函数

转载 作者:行者123 更新时间:2023-12-01 09:08:05 28 4
gpt4 key购买 nike

我是 Java 新手。最近Java测试中有一个问题不太明白,希望大家能帮帮我。

分析以下代码:

class Circle {
private double radius;
public Circle(double radius) {
radius = radius;
}
}

答案如下:

A) 程序可以编译,但无法创建具有指定半径的 Circle 对象。该对象的半径始终为 0。

B) 程序出现编译错误,因为无法将半径赋值给半径。

C) 该程序有编译错误,因为它没有 main 方法。

D) 程序无法编译,因为 Circle 没有默认构造函数。

在我看来,我认为A是正确的。 B 显然是错误的,因为你当然可以完成作业。 C 是错误的,因为没有 main 方法是完全可以的。 D 也是错误的,因为默认构造函数不是必需的。这给我留下了 A。

不太明白A的写法,我觉得这段代码可以改成:

this.radius = radius;

正确。

谁能帮我澄清一下吗?非常感谢!

最佳答案

从字面上看,A是正确的。

程序可以编译,但无法创建具有指定半径的 Circle 对象。该对象的半径始终为 0。

您仍然可以创建Circle对象,但其半径始终为0。这意味着,您分配了错误的声明。

在此构造函数中:

public Circle(double radius) {
radius = radius;
}

您仅将 radius 参数分配给其自身,这意味着您实际上并未将其传递给类变量 radius。这就是为什么您使用 this 来归属类成员

因此正确的声明是将radius参数变量传递给radius类变量

this.radius = radius;

关于Java类构造函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41092189/

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