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

一般给这些成员赋值是通过构造函数还是直接声明的时候赋值啊?这两种方式的适用范围是什么呢?就是说什么时候用哪一种呢?... 一般给这些成员赋值是通过构造函数还是直接声明的时候赋值啊?
这两种方式的适用范围是什么呢?就是说什么时候用哪一种呢?
展开
 我来答
mohunk10
2013-08-23 · TA获得超过754个赞
知道小有建树答主
回答量:466
采纳率:100%
帮助的人:453万
展开全部
Java类的成员变量在被修饰为public、protected和包访问权限时,可以在不同层次上直接给成员变量赋值。但是,赋值的前提是:必须存在持有成员变量的对象。而对象的初始化必须调用构造函数,所以构造函数是必不可缺的。至于使用构造函数还是直接声明时给成员变量赋值,那就要看情况而定。如果创建的这个对象是不可变的,那么就必须使用构造函数初始化成员变量,反之,就无所谓。另外,直接给成员变量赋值,Java是不推荐的,因为这样会破坏它的封装性。所以,建议在构造函数或提供setters方法对变量赋值。
何度千寻
2015-10-26 · TA获得超过5899个赞
知道大有可为答主
回答量:1381
采纳率:91%
帮助的人:559万
展开全部
  Java类的成员变量在被修饰为public、protected和包访问权限时,可以在不同层次上直接给成员变量赋值。但是,赋值的前提是:必须存在持有成员变量的对象。而对象的初始化必须调用构造函数,所以构造函数是必不可缺的。
  至于使用构造函数还是直接声明时给成员变量赋值,那就要看情况而定。如果创建的这个对象是不可变的,那么就必须使用构造函数初始化成员变量,反之,就无所谓。另外,直接给成员变量赋值,Java是不推荐的,因为这样会破坏它的封装性。
  所以,建议在构造函数或提供setters方法对变量赋值。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友1c0b92e
2013-08-23 · TA获得超过144个赞
知道小有建树答主
回答量:546
采纳率:0%
帮助的人:257万
展开全部
直接赋值就固定死了,
构造函数去赋值就可以根据写进来的参数去赋值
一般构造函数

闲麻烦用直接声明的时候赋值也行。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
_cf03
2013-08-23 · TA获得超过191个赞
知道小有建树答主
回答量:276
采纳率:0%
帮助的人:121万
展开全部
成员变量的赋值一般通过构造函数
直接赋值一般的话都是一些常成员变量,final关键字开头的
其他的时候基本上都是用构造函数
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
知识分享园地
2013-08-23
知道答主
回答量:6
采纳率:0%
帮助的人:5.5万
展开全部
构造函数试用于动态创建对象。基于对象编程的思想,是不赞成直接给类里面的变量直接赋值的。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式