A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

对昨天晚上看视频做题的时候,突然对【构造函数】和【get】、【set】访问器走入【误区】,

今儿一早的时候走出来了,
大伙儿给瞧瞧是否走入误区。

昨天做比老师视频上的练习题:
* 练习:
* 加入我们在开发一个系统时,需要对员工进行建模,员工包含3个属性
* 姓名,工号,工资,经理也是员工,除了含有员工的属性外,
* 另外还有一个奖金属性,请使用继承的思想设计出员工类,和经理类,
* 要求类中提供必要的方法进行属性访问。

这道题主要是对继承,和抽象的练习和加深。
其中对父类构造函数自定义了一个三参数的。
当我我怎么想的,贴上原话:

/*以前知道想要读写private里的变量,要用到get、set访问器。
* 在这里,老师直接在父类构造函数中传递了private,子类只需要复写相同构造函数即可实现get、set访问器功能
* 并且代码量相对较少,意思就是说,构造函数可以取代或者使用更多?我不知道是不是走如了什么误区,
* 求指点啊。

今天自己又写了一个父类,设计了2个属性并私有。一个是int类型,一个是String,设定了三个构造函数。进行重载。
又写了一个子类,对父类进行重载,并调用,发现只能初始化调用的构造函数值,
才【【【幡然醒悟】】】 构造函数是用来初始化的,只能加载一次,想要修改必须通过set、get访问器来实现。

* 事实证明,是两码事
* 忘记一点:构造函数用于初始化,而get、set访问器。可以多次进行读和写
*/

是这么一回事儿吧。

评分

参与人数 1技术分 +1 收起 理由
ily521125 + 1

查看全部评分

7 个回复

倒序浏览
是这么一回事,set函数是可以更改初始化后的信息,如没有set 函数,则初始化后就固定了。
欢迎走出坑。
回复 使用道具 举报
感觉你是明白了,但好像没说清楚。
构造函数是用来给你那个类实例化的,
重写或者重载构造函数,确实可以让你在实例化过程中对成员属性赋值,
省去了get、set的麻烦。

其实get、set就是为了让其它对象可以操作你这个类的对象私有化的属性,
降低代码的耦合度,如果你类的属性是public,也就不需要get、set了。

评分

参与人数 1技术分 +1 收起 理由
ily521125 + 1

查看全部评分

回复 使用道具 举报
为了提高代码的安全性,在构造函数中将定义的属性用private关键对其修饰进行私有化,这样外界就不能直接对属性进行访问,那么如果外界需要访问此函数中的属性时,创建一个set与get方法用于让外界能够对私有化的属性进行访问。。。。
回复 使用道具 举报
skill20 发表于 2014-4-23 10:19
是这么一回事,set函数是可以更改初始化后的信息,如没有set 函数,则初始化后就固定了。
欢迎走出坑。 ...

嗯嗯,走出来了,可能就是表达上,比较欠缺。
回复 使用道具 举报
linweiwen 发表于 2014-4-23 11:34
感觉你是明白了,但好像没说清楚。
构造函数是用来给你那个类实例化的,
重写或者重载构造函数,确实可以让 ...

管理老师给你这个技术分是必然的, 感觉我真的是表达上那啥
总体来说你都给我概括了。多谢拉。
回复 使用道具 举报
彭飞 发表于 2014-4-24 11:18
管理老师给你这个技术分是必然的, 感觉我真的是表达上那啥
总体来说你都给我概括了。多谢拉。 ...

不要以为给了技术分的就是正确的,
管理应该平时也很忙,没那么多时间细看每个回复,
我就看过挺坑的回复也有技术分……
回复 使用道具 举报
彭飞 中级黑马 2014-4-28 21:47:01
8#
linweiwen 发表于 2014-4-24 16:19
不要以为给了技术分的就是正确的,
管理应该平时也很忙,没那么多时间细看每个回复,
我就看过挺坑的回复 ...

好的,谢谢拉。最近一直看视频,没功夫来论坛。先完成基础学习再来看来学术分吧。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马