如何在Java中区分私有实例变量和具有相同名称的参数

时间:2018-08-30 12:53:29

标签: java class oop object access-specifier

java中有一个关键字this,用于访问公共的即时变量。但是有没有办法访问私人的

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);
    }
}

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

5 个答案:

答案 0 :(得分:2)

在同一类中,可以用相同的方式访问私有变量和公共变量:

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);
    }
}

答案 1 :(得分:1)

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

答案 2 :(得分:1)

this keword上关注Java教程,它可以访问私有成员:

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

答案 3 :(得分:0)

一个类对象可以访问它的私有成员,否则任何人都不能访问它们,它们将毫无意义。因此,this与私人成员的配合绝对不错。

答案 4 :(得分:0)

Class method可以访问private data member,因此您可以使用

this.a=a