java - 从方法访问字段的正确方法是什么

标签 java class methods private field

我想从方法访问类中的 StringBuilder 字段。字段和方法都是非静态的。我已经尝试了很多方法,无论我采用哪种方法,似乎都有效,但我只是想知道正确的方法是什么。这是我的意思的一个例子:

public class ExampleClass {
    private StringBuilder sb = new StringBuilder();
    private void call() {
        sb.append("Test"); // I can do it this way
        this.sb.append("Second way"); // or this way
        // does it matter? can someone explain it to me?
    }
    public static void main(String[] args) {
        ExampleClass ec = new ExampleClass();
        ec.call();
    }
}

我只是不明白这一点。我可能是个十足的白痴,但是访问该字段的正确方法是什么?

非常感谢

保罗

最佳答案

这两者是有区别的

sb.append("Test"); // I can do it this way
this.sb.append("Second way"); // or this way

仅当您在该上下文中还有其他变量也称为 sb 时。

例如:

public class ExampleClass {
    private StringBuilder sb = new StringBuilder();
    private void call(StringBuilder sb) {
        sb.append("Test"); //refers to the parameter passed to the function
        this.sb.append("Second way"); //refers to your member
    }
    public static void main(String[] args) {
        ExampleClass ec = new ExampleClass();
        StringBuilder sb = new StringBuilder();
        ec.call(sb);
    }
}

关于java - 从方法访问字段的正确方法是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10105172/

相关文章:

java - Oracle Driver 或 JDK 实现的 createStatement 方法

python - 如何使用给定的装饰器获取python类的所有方法

java - 在 Java 中更改方法范围之外的变量

java - 如何从 java 中的方法返回 Integer 或 int 和列表?

java - 实时 JavaFX-8 表单管理

java - 任何人都可以建议一些在 Restful 服务中支持部分表示的最佳实践吗

java - 如何在 BufferedImage 中用另一种颜色替换颜色

c++ - 无法将数据从txt文件写入对象

Ruby:如何使类中只有一个方法公开?

javascript - 我不明白 JavaScript 中的设置日期方法是如何工作的