使用"这个"的班级实例关键词

时间:2016-11-16 17:46:08

标签: instance

为什么程序员会使用'这个'来做这样的代码。关键字

private Datalog instance = this;

//constructor
public Datalog() {}

1 个答案:

答案 0 :(得分:0)

虽然你没有提到这是什么语言,但我认为这是Java。

在Java中,就像在许多其他语言中一样,方法(属于实例化对象的函数)可以通过不同的上下文引用不同的字段。 意思是有时为了能够使用这个。字段来引用字段,如果我们想要不同上下文的字段而不是属于这个字段的字段将不会很好(调用对象)。

关注演示(请注意,我们这里有一个类 - AKA内部类):

public class HumanBody{

    HumanBody instance = this;
    MainBody mb;
    int totalHeight;

    public HumanBody() {
        mb = new MainBody();
    }

    public class MainBody {

        int totalHeight;

        public int getHeightOfMainBodyOnly() {

            return instance.totalHeight - totalHeight;
        }
    }

    public int getBodyHeight() {

        return totalHeight;
    }
} 

注意:我们在getHeightOfMainBodyOnly执行此操作:instance.totalHeight - totalHeightinstance.totalHeight是人体totalHeighttotalHeight是主体总高度时。{/ p>

我们无法仅使用此关键字完成此操作,因为getHeightOfMainBodyOnly中的此关键字仅指向MainBody对象调用方。

在Javascript中这是更常见的,有一个惯例是使用:

var self = this;

也是出于我在这里提到的相同原因!