java里面成员变量可以直接赋值,为什么还要构造函数啊?

2024-12-25 18:31:43
推荐回答(5个)
回答1:

Java类的成员变量在被修饰为public、protected和包访问权限时,可以在不同层次上直接给成员变量赋值。但是,赋值的前提是:必须存在持有成员变量的对象。而对象的初始化必须调用构造函数,所以构造函数是必不可缺的。至于使用构造函数还是直接声明时给成员变量赋值,那就要看情况而定。如果创建的这个对象是不可变的,那么就必须使用构造函数初始化成员变量,反之,就无所谓。另外,直接给成员变量赋值,Java是不推荐的,因为这样会破坏它的封装性。所以,建议在构造函数或提供setters方法对变量赋值。

回答2:

  Java类的成员变量在被修饰为public、protected和包访问权限时,可以在不同层次上直接给成员变量赋值。但是,赋值的前提是:必须存在持有成员变量的对象。而对象的初始化必须调用构造函数,所以构造函数是必不可缺的。
  至于使用构造函数还是直接声明时给成员变量赋值,那就要看情况而定。如果创建的这个对象是不可变的,那么就必须使用构造函数初始化成员变量,反之,就无所谓。另外,直接给成员变量赋值,Java是不推荐的,因为这样会破坏它的封装性。
  所以,建议在构造函数或提供setters方法对变量赋值。

回答3:

直接赋值就固定死了,
构造函数去赋值就可以根据写进来的参数去赋值
一般构造函数

闲麻烦用直接声明的时候赋值也行。

回答4:

成员变量的赋值一般通过构造函数
直接赋值一般的话都是一些常成员变量,final关键字开头的
其他的时候基本上都是用构造函数

回答5:

构造函数试用于动态创建对象。基于对象编程的思想,是不赞成直接给类里面的变量直接赋值的。