Java 中构造器的形参名必须和属性一致吗

问题遇到的现象和发生背景
用代码块功能插入代码,请勿粘贴截图
class Cale{
    double num1;
    double num2;
    public Cale(double num1,double num2){
        this.num1 = num1;
        this.num2 = num2; 
    }
}

运行结果及报错内容

上面的构造器中的两个形参难道必须和属性一样吗?

没有必须一样的要求,开发规范里只要求变量名意思相近即可。

一个是局部变量(形参),一个是全局变量,名字一样不冲突,名字不一样也没问题
这里一样就是为了看起来直观,避免引起歧义,避免变量多了你搞不清谁是谁

方法外一个是成员变量,方法内一个局部变量