sách gpt4 ai đã đi

Không có tham số "this" trên các biến bên trong các phương thức java

In lại 作者:行者123 更新时间:2023-12-01 09:26:47 32 4
mua khóa gpt4 Nike

我运行了一些java代码,我看到了一些我不太明白的东西。为什么下面的代码可以在不输入 cái này 的情况下工作?前面diameter

class Shape {
public double area ()
{
trả về 0;

}
}


class Circle extends Shape {
Circle (double diameter) {
this.diameter = diameter;
}
private static final double PI = Math.PI;
private double diameter;

public double area () {
double radius = diameter / 2.0; <-------- LOOK HERE
return PI * radius * radius;
}

}

public class Main {
public static void main(String[] args) {
Shape s1 = new Circle (2.5);
System.out.println (s1.area());

}
}

无论有或没有this.diameter/diameter,代码都可以完美运行。

1 Câu trả lời

在构造函数 Circle(double Diameter) 中,函数参数 diameter Đúng遮蔽类的字段。

除非您另有说明(通过编写 this.diameter),编译器将假定您引用的是函数参数Còn hơn là字段。在 Java 构造函数代码中编写 this.foo = foo 是惯用的。

在你的函数area()中,不存在这样的歧义:this.diameterdiameter两者请参阅该字段。

关于java方法内部变量上没有 "this"参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39768917/

32 4 0
行者123
Hồ sơ cá nhân

Tôi là một lập trình viên xuất sắc, rất giỏi!

Nhận phiếu giảm giá Didi Taxi miễn phí
Mã giảm giá Didi Taxi
Giấy chứng nhận ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com