java 如何区分私有实例变量和同名参数

How to differentiate between the private instance variable and a parameter having same name in java

在java中有一个关键字this来访问public的即时变量。但是有没有这样的方式访问私有的

class Foo {

    private int a = 2;
    public int b = 3;

    public void test(int a, int b) {
        this.b = b;
        //but how to access a;
    }

    public static void main(String args[]) {
        Foo x = new Foo();
        x.test(1, 2);
    }
}

上面是我的代码示例....

所有 class 方法都可以访问它们自己的私有成员。因此,this.a = a 将起作用。

一个class对象可以访问它的私有成员,否则没有任何东西可以访问它们并且它们将毫无意义。所以 this 与私有成员一起工作绝对没问题。

Class method 可以访问 private data member 所以你可以使用

this.a=a

在同一个 class 中,私有变量和 public 变量都可以用相同的方式访问:

class Foo {

    private int a = 2;
    public int b = 3;

    public void test(int a,int b){
        this.b = b;
        this.a = a; // accessing private field a
    }

    public static void main(String args[]){
        Foo x = new Foo();
        x.test(1,2);
    }
}

按照 Java 教程 this keword 可以访问私有成员:

private int x, y;
public Rectangle(int x, int y, int width, int height) {
   this.x = x;