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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 张亚鑫 中级黑马   /  2012-12-23 12:57  /  2842 人查看  /  9 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

类里面为什么不能直接给字段赋值?

评分

参与人数 1技术分 +1 收起 理由
宋天琪 + 1

查看全部评分

9 个回复

倒序浏览
在类里,我们一般把用于与外界交互的字段定义成属性。 在属性里 有 get 和 set方法,用于对字段进行 取值和赋值。 这样在 get 和 set、方法里 ,可以很方便根据我们的需求 对不符合要求的数据进行控制。 同时也提高了安全性

评分

参与人数 1技术分 +1 收起 理由
宋天琪 + 1

查看全部评分

回复 使用道具 举报
提高安全性。也可以增加过滤关卡。比如你可以限制,只接受岁数大于30的人信息。如果超过这个岁数了就另外处理啊什么的。

评分

参与人数 1技术分 +1 收起 理由
宋天琪 + 1

查看全部评分

回复 使用道具 举报
可以对Field赋值,前提是public。但由于类的封装性一般不这么用。

评分

参与人数 1技术分 +1 收起 理由
宋天琪 + 1

查看全部评分

回复 使用道具 举报
首先,类里的字段如果是public,从外界访问的时候是可以给字段赋值的。但是出于安全考虑,一般在类里,我们把用于与外界交互的字段封装成属性。 在属性里有get 和set方法,用于对字段进行取值和赋值。同时也提高了安全性。

评分

参与人数 1技术分 +1 收起 理由
宋天琪 + 1

查看全部评分

回复 使用道具 举报
其实是可以赋值的,将其设置为公有的。但是,为了程序的可维护性安全性等的考虑,一般不采用这样的方式,我们都是将其设为私有的字段,在属性中对其进行操作

评分

参与人数 1技术分 +1 收起 理由
宋天琪 + 1

查看全部评分

回复 使用道具 举报
类里面可以直接给字段赋值.不过通常把字段封装成属性:GET和SET.前者读,后者写.去掉哪个就不能对字段进行相应的操作.

评分

参与人数 1技术分 +1 收起 理由
宋天琪 + 1

查看全部评分

回复 使用道具 举报
主要是提高安全性,防止外界随意给字段赋值,一般其设置为Private。
  通过属性来访问类的成员可以更好的对外界所赋值进行条件判断。

评分

参与人数 1技术分 +1 收起 理由
宋天琪 + 1

查看全部评分

回复 使用道具 举报
管冉 中级黑马 2012-12-25 23:52:59
9#
本帖最后由 管冉 于 2012-12-25 23:54 编辑

public开头的字段可以赋值;
一般的字段都是使用private头,这样该字段只能在定义该字段的类中赋值,但意义不大,如需要在其他类下进行赋值,一般通过属性来实现。从而达到面向对象中的“封装”的目的

评分

参与人数 1技术分 +1 收起 理由
宋天琪 + 1

查看全部评分

回复 使用道具 举报
黄林 中级黑马 2012-12-26 14:22:37
10#
主要是为了保护字段,提高安全性,所以一般将字段封闭为属性,并通过get,set来过滤非法值,这里面get和set可以带访问修饰符,如protected

评分

参与人数 1技术分 +1 收起 理由
宋天琪 + 1

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马