我可以在 java 中为 public 变量和方法参数使用相同的名称吗?

Can I use same name for public variable and method argument in java?

那么,我可以为 class 中的 public 变量和 java 中的方法参数使用相同的名称吗? 例如("number" 声明了两次):

public class Class1 {
    public int number;

    public static String function1(String id,int number)
    {
        //do something

    }
}

是的,如果您遇到与范围相关的问题,那么您可以使用参考 this

来限定成员
public static String function1(String id, int number)
{
    this.number = number; 
    //here you assign the class member with the value of the parameter
}

是的,你可以。

在方法中声明的int数只能在de方法中访问。

在class中声明为属性整数在class.

如果要访问方法里面的属性,必须使用 这个.

示例:

public static String function1(String id,int number)
{
    this.number = number;
}

是的,可以,因为这两个变量在不同的范围内。方法参数隐藏了函数作用域的 class 属性。如果您想在方法中访问 class 属性,只需使用 this.number 即可。

是的,您可以在 java 中为 public 变量和方法参数使用相同的名称,但在构造函数

的情况下要小心

你不能这样做

public class Car{
    String carname;
    int carspeed;

    public  Car(String carname , int carspeed){
        carname = carname;
        carspeed = carspeed;
    }

}

改为这样做

public class Car{
    String carname;
    int carspeed;

    public  Car(String carName , int carSpeed){
        carname = carName;
        carspeed = carSpeed;
    }

}

或者这样做

public class Car{
    String carname;
    int carspeed;

    public  Car(String carname , int carspeed){
        this.carname = carname;
        this.carspeed = carspeed;
    }
}

甚至你可以混合它

 public class Car{
        String carname;
        int carspeed;
    
        public  Car(String carname , int carSpeed){
            this.carname = carname;
            carspeed = carSpeed;
        }
    }

当您在构造函数中为参数使用相同的变量名称和您的 class 属性 名称时,它们会在编译时抛出错误