请教各位大侠,set get方法的作用.

zsmg888 2009-09-27 07:45:08
今天在书上看见几行代码,里面有set(),get()方法,俺不理解是啥意思.
上网查半天,大概知道是给private属性赋值和取值的,可是我不是很理解这两个方法的作用,
为什么要用set(),get(),这两个方法是必须一起写吗?


偶知道偶的问题很菜,请大侠表嘲笑偶,偶很细心耐心的倾听大侠你的教诲呢~
...全文
1786 40 打赏 收藏 转发到动态 举报
写回复
用AI写文章
40 条回复
切换为时间正序
请发表友善的回复…
发表回复
孙祯 2010-11-06
  • 打赏
  • 举报
回复
支持11楼的回答
codes23457789 2010-11-06
  • 打赏
  • 举报
回复
突然忘记了!
Ajax_Man 2009-10-01
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 swandragon 的回复:]
set()是给属性赋值的,get()是取得属性值的
被设置和存取的属性一般是私有
主要是起到封装的作用,不允许直接对属性操作
set()和get()不一定同时存在,看程序需求
[/Quote]

没错这就是封装,为了避免一些类中私有的属性被看到,采用读取的方式!
「已注销」 2009-10-01
  • 打赏
  • 举报
回复
方面, 安全, 单列
coolbamboo2008 2009-10-01
  • 打赏
  • 举报
回复
就是一种大家都遵守的习惯,属性是private,所以要取得和设置属性就要用get\set方法.这两个方法不必同时存在,看你需要什么
  • 打赏
  • 举报
回复
private 是私有的意思,在方法中定义私有属性,然后写get(),和set()方法,这样在使用这个对象的时候会很方便。
janwin 2009-10-01
  • 打赏
  • 举报
回复
如果你使用JavaBean,set,get方法是JavaBean的规范,一般使用getter,setter,方法主要是用来做属性访问,也是一种封装
AldisZhan 2009-10-01
  • 打赏
  • 举报
回复
[Quote=引用 24 楼 seavers 的回复:]
原是javaBean的约定, 后广泛流传, 以至泛滥~~~
[/Quote]
泛滥,以致不可收拾,最后成了大家公认的规范
DryKillLogic 2009-10-01
  • 打赏
  • 举报
回复
这是javaBean规范,如果楼主继续学J2EE,用到Spring等框架就会有更深刻的理解了,现在无所谓了
认为是数据安全就可以了
justinavril 2009-10-01
  • 打赏
  • 举报
回复
Java中良好的封装要求不能直接通过类的实例来直接访问属性(除非特殊情况),而是要通过类的方法来访问和操作属性。set和get方法就是这样的方法。

class TestPubAndPri{
public int publicVar;
private int privateVar;

public int getPrivateVar(){
return this.privateVar;
}

public void setPrivateVar(int i){
this.privateVar = i;
}
}

public class Test{
public static void main(String args[]){
TestPubAndPri t = new TestPubAndPri();

t.publicVar = 10; //不安全
//t.privateVar = 10; 直接赋值会有错误
t.setPrivateVar(20);
System.out.println(t.getPrivateVar());
}
}
lotusword 2009-09-30
  • 打赏
  • 举报
回复
当类中对于一个属性来说,既有get方法也有set方法的时候,似乎感觉不到有什么好处,似乎直接把属性设置为public不是更好一点,但是我们要考虑一下,当我们只需要set方法的时候,或者只需要get方法的时候,封装的优点就体现出来了,比如,当我们统计类已经有几个实例的时候,我们只需要get方法,而不需要set方法,可能举得例子不是太恰当,但是一时想不起来有什么好点的例子
wanghb121 2009-09-30
  • 打赏
  • 举报
回复
dislyan 2009-09-30
  • 打赏
  • 举报
回复
是啊,广泛到你定义一个变量,eclipse都可以帮你生成get和set方法了
java_badman 2009-09-30
  • 打赏
  • 举报
回复
属性的访问器包含与获取(读取或计算)或设置(写)属性有关的可执行语句
huangqibing0626 2009-09-30
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 swandragon 的回复:]
set()是给属性赋值的,get()是取得属性值的
被设置和存取的属性一般是私有
主要是起到封装的作用,不允许直接对属性操作
set()和get()不一定同时存在,看程序需求
[/Quote]

ty_sxm78792009 2009-09-30
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 swandragon 的回复:]
set()是给属性赋值的,get()是取得属性值的
被设置和存取的属性一般是私有
主要是起到封装的作用,不允许直接对属性操作
set()和get()不一定同时存在,看程序需求
[/Quote]
封装
woshayawo 2009-09-30
  • 打赏
  • 举报
回复
为的是更好的实现数据的封装跟耦合,等你以后开始学jsp了就知道了,在jsp标签中有<jsp:getProperty....>
和<jsp:setProperty.....>这两种方法都是在猜的基础上对你JavaBean中的变量进行方法上的添加,比如你有个carNum变量,则在进行方法猜测的话,它会自动猜你的JavaBean中有一个方法:getCarNum()和setCarNum(int num),这些方法的便利,你以后会慢慢体会到的!
ZX_ARES 2009-09-30
  • 打赏
  • 举报
回复
简单的说就是对对象里的某个属性赋值,和取某个属性的值
spwwzh 2009-09-30
  • 打赏
  • 举报
回复
是做封装用的。一般用在javabean中,来实现某种功能。用来对外提供和修改数据
大海Online 2009-09-30
  • 打赏
  • 举报
回复
原是javaBean的约定, 后广泛流传, 以至泛滥~~~
加载更多回复(20)
你想当“李逍遥”式的“大侠”吗? 这里无需计算机基础,无需编程经验,你也不必是计算机专业的在校大学生....只要爱好游戏,怀揣梦想! 有一定自主学习能力,跟着刘老师从“编程小白”修炼为游戏研发“大虾”吧!!!学习好Unity,其先决条件是一定要有稳固、扎实的编程基础!课程 《C# For Unity系列之入门篇》配套学习资料链接:http://pan.baidu.com/s/1gflxreN 密码:sou5;刘老师讲Unity学员群(2) 497429806一、热更新系列(技术含量:中高级):A:《lua热更新技术中级篇》https://edu.csdn.net/course/detail/27087B:《热更新框架设计之Xlua基础视频课程》https://edu.csdn.net/course/detail/27110C:《热更新框架设计之热更流程与热补丁技术》https://edu.csdn.net/course/detail/27118D:《热更新框架设计之客户端热更框架(上)》https://edu.csdn.net/course/detail/27132E:《热更新框架设计之客户端热更框架(中)》https://edu.csdn.net/course/detail/27135F:《热更新框架设计之客户端热更框架(下)》https://edu.csdn.net/course/detail/27136二:框架设计系列(技术含量:中级): A:《游戏UI界面框架设计系列视频课程》https://edu.csdn.net/course/detail/27142B:《Unity客户端框架设计PureMVC篇视频课程(上)》https://edu.csdn.net/course/detail/27172C:《Unity客户端框架设计PureMVC篇视频课程(下)》https://edu.csdn.net/course/detail/27173D:《AssetBundle框架设计_框架篇视频课程》https://edu.csdn.net/course/detail/27169三、Unity脚本从入门到精通(技术含量:初级)A:《C# For Unity系列之入门篇》https://edu.csdn.net/course/detail/4560B:《C# For Unity系列之基础篇》https://edu.csdn.net/course/detail/4595C: 《C# For Unity系列之中级篇》https://edu.csdn.net/course/detail/24422D:《C# For Unity系列之进阶篇》https://edu.csdn.net/course/detail/24465四、虚拟现实(VR)与增强现实(AR):(技术含量:初级)A:《虚拟现实之汽车仿真模拟系统 》https://edu.csdn.net/course/detail/26618五、Unity基础课程系列(技术含量:初级) A:《台球游戏与FlappyBirds—Unity快速入门系列视频课程(第1部)》 https://edu.csdn.net/course/detail/24643B:《太空射击与移动端发布技术-Unity快速入门系列视频课程(第2部)》https://edu.csdn.net/course/detail/24645 C:《Unity ECS(二) 小试牛刀》https://edu.csdn.net/course/detail/27096六、Unity ARPG课程(技术含量:初中级):A:《MMOARPG地下守护神_单机版实战视频课程(上部)》https://edu.csdn.net/course/detail/24965B:《MMOARPG地下守护神_单机版实战视频课程(中部)》https://edu.csdn.net/course/detail/24968C:《MMOARPG地下守护神_单机版实战视频课程(下部)》https://edu.csdn.net/course/detail/24979

62,615

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧