一尘不染

Java类中变量影子的用途是什么?

java

我正在阅读我的Deitel《 Java How to Program》一书,并遇到了“ 阴影 ”一词。如果允许阴影,那么Java类中有什么情况或目的?

例:

public class Foo {

    int x = 5;

    public void useField() {
        System.out.println(this.x);
    }
    public void useLocal() {
        int x = 10;
        System.out.println(x);
    }
}

阅读 662

收藏
2020-03-03

共1个答案

一尘不染

阴影的基本目的是使本地代码与周围的类分离。如果不可用,请考虑以下情况。

API中的Class Foo已发布。在代码中将其子类化,并在子类中使用名为bar的变量。然后,Foo发布更新,并在其类中添加一个称为Bar的受保护变量。

现在,由于您无法预料的冲突,您的课程将无法运行。

但是,请不要故意这样做。仅当您真的不在乎示波器之外发生的情况时,才进行此操作。

2020-03-03