java类中为什么要用get和set方法,高人能简单解答下吗 java类中为什么要用get和set?
java\u7c7b\u4e2d\u4e3a\u4ec0\u4e48\u8bbe\u7f6eset\u548cget\u65b9\u6cd5\u64cd\u4f5c\u5c5e\u6027get set\u5e38\u7528\u5728\u81ea\u5b9a\u4e49\u7c7b\uff0c\u7c7b\u521b\u5efa\u4e86\u4e00\u4e2a\u5b9e\u4f8b\u5bf9\u8c61\u540e\uff0c\u7528set\u8bbe\u7f6e\u5bf9\u8c61\u7684\u67d0\u4e00\u4e2a\u5c5e\u6027\uff0cget\u5f97\u5230\u5bf9\u8c61\u67d0\u4e00\u5c5e\u6027\u3002\u5982\u679c\u4e0d\u4f7f\u7528get set\uff0c\u4f60\u5c31\u5f97\u7528\u70b9\uff0c\u70b9\u51fa\u6765\u8fd8\u5f97\u662f\u4e2a\u65b9\u6cd5\u3002\u5176\u5b9e\u5c31\u662f\u7ed9get set\u6362\u4e2a\u540d\u800c\u5df2\u3002\u800c\u4e14get set\u4f5c\u4e3a\u5185\u90e8\u65b9\u6cd5\uff0c\u53ef\u4ee5\u8bbf\u95ee\u79c1\u6709\u6570\u636e
\u9762\u5411\u5bf9\u8c61\u4e2d\uff0c\u60f3\u5bf9\u7c7b\u7684\u6210\u5458\u53d8\u91cf\u8bbe\u7f6e\u8bbf\u95ee\u4e00\u4e9b\u6743\u9650\uff0c\u4e8e\u662f\uff0c\u5c31\u5c06\u8be5\u5b57\u6bb5\u8bbe\u7f6e\u4e3aprivate\u7684\uff0c\u8fd9\u6837\u522b\u7684\u7c7b\u5c31\u4e0d\u80fd\u8bbf\u95ee\u4e86\uff0c\u7136\u540e\u5728\u8be5\u5185\u5b9a\u4e49\u4e24\u4e2a\u65b9\u6cd5\uff0c\u4e00\u4e2a\u4e13\u95e8\u7528\u4e8e\u83b7\u53d6\uff0c\u4e00\u4e2a\u7528\u4e8e\u4fee\u6539\uff0c\u8fd9\u6837\uff0c\u5728\u4f60\u4e0d\u60f3\u8ba9\u522b\u4eba\u4e71\u52a8\u8be5\u5b57\u6bb5\u7684\u65f6\u5019\uff0c\u5c31\u5728\u8be5\u65b9\u6cd5\u5185\u5199\u4e00\u4e9b\u9650\u5236\u6761\u4ef6\u3002
\u800c\u4e3a\u4e86\u89c4\u8303\u8d77\u89c1\uff08\u56e2\u961f\u5f00\u53d1\u9700\u8981\u561b\uff09\uff0c\u5c31\u6839\u636e\u4eba\u5bb6\u8001\u5916\u7684\u4e60\u60ef\uff0c\u5c06\u65b9\u6cd5\u540d\u8bbe\u7f6e\u4e3aset+\u5b57\u6bb5\u540d\uff0cget+\u5b57\u6bb5\u540d\uff08\u540d\u5b57\u4e71\u6539\u6ca1\u95ee\u9898\uff09\uff0c\u65e2\u7136\u89c4\u8303\u4e86\uff0c\u90a3\u5c31\u662f\u522b\u4eba\u90fd\u53eb\u8fd9\u540d\u4e86\uff0c\u4e8e\u662f\uff0c\u6709\u4e9b\u6846\u67b6\u7ed9\u5bf9\u8c61\u8d4b\u503c\u5c31\u6709\u65b9\u6cd5\u4e86\uff0c\u65b9\u6cd5\u540d\u79f0\u7531get\u6216set\u5f00\u59cb\u7684\u53c8\u6709private\u53d8\u91cf\u540d\u7684\uff0c\u5c31\u627e\u51fa\u6765\u8c03\u7528\u3002hibernate1\u6846\u67b6\u5c31\u8fd9\u6837\u3002
//\u4e00\u4e2a\u7b80\u5355\u7684\u4f8b\u5b50 get\u7684\u65f6\u5019\u6211\u9700\u8981\u505a\u903b\u8f91\u5904\u7406\uff0c\u6ee1\u8db3\u600e\u4e48\u5904\u7406\u4e0d\u6ee1\u8db3\u53c8\u600e\u4e48\u5904\u7406\u7b49\u7b49..\u90fd\u6709\u53ef\u80fd\u3002set\u4e5f\u53ef\u4ee5\u6709\u7c7b\u4f3c\u7684\u903b\u8f91\u5904\u7406\uff0c\u6bd4\u5982\u8d4b\u503c\u7684\u65f6\u5019\u5982\u679c\u4e3anull \u90a3\u4e48\u6211\u5c31\u7ed9\u9ed8\u8ba4\u503c A \u7b49\u7b49
public String getGoodsTypeModels(boolean is) {
//\u6211\u8fd9\u91cc\u76f4\u63a5\u5199\u5728\u4e86\u65b9\u6cd5\u4e2d\u4e86\uff0c\u53d8\u91cf\u4e5f\u53ef\u4ee5\u5199\u6210 \u5168\u5c40\u7684 \u5f53\u7136\u4e5f\u53ef\u7ed9\u53d8\u91cf\u8bbe\u7f6e\u8bbf\u95ee\u6743\u9650\uff0c\u56e0\u4e3a\u65b9\u6cd5\u5728\u540c\u4e00\u4e2a\u7c7b\u4e2d \u6240\u4ee5\u53ef\u4ee5\u8bbf\u95ee\u65b9\u6cd5\u4e2d\u7684\u6240\u6709\u53d8\u91cf\u3002
String str1 = "AA";
String str2 = "BB";
if(is){
return str1;
}else{
return str2;
}
}
统一的规范,可以说是种习惯
你不了解反射机制吗?比如说你写了个User类,里面有username,pwd两字段,
我不管你类的内部写了什么东西,给了我get,set方法(习惯),其他人都可通过这方法为你类里的属性注入值或获得值
get和set方法是取值和设值就不用细说了,都知道。关键的是,get取值方法体没,我们可以对实际值进行处理,比如A=1,在方法体内,可以判断A==1时,返回什么样的值(如 true)。同样的,set方法体内,可以判断其他人传进来的值是否符合要求,比如:A只有1和2有有效,传入其他值时,你就可以拒绝给A赋值,返回错误提示。这只是举例,实际中,你也隐藏了取值,设值的方式,对外不可见,更安全。手机上打的,电脑上可以给你个例子更好理解。
唯一的好处就是能够控制外部输入变量的范围
cat
ca
=
new
cat("黄","小小");
ca.shoutnum
=
16;
在定义这个ca时,已经使用了默认的shoutnum
=
5对其赋值,所以,后面这个16的赋值不会引起
public
void
setshoutnum(int
shoutnum)被调用。
如果要看效果,可以将这个句子ca.shoutnum
=
16;
修改成:
ca.setshoutnum(16);
其他不用改。
绛旓細锛屾棦鐒惰鑼冧簡锛岄偅灏辨槸鍒汉閮藉彨杩欏悕浜嗭紝浜庢槸锛屾湁浜涙鏋剁粰瀵硅薄璧嬪煎氨鏈夋柟娉曚簡锛屾柟娉曞悕绉扮敱get鎴杝et寮濮嬬殑鍙堟湁private鍙橀噺鍚嶇殑锛屽氨鎵惧嚭鏉ヨ皟鐢ㄣ俬ibernate1妗嗘灦灏辫繖鏍峰紕寰楋紝鑷充簬鍚庨潰鐨勭増鏈槸涓嶆槸杩欐牱灏变笉澶ф竻妤氫簡銆侸avaBean灏辨槸涓涓JAVA绫锛屾棦鐒舵槸JAVA绫诲氨涓闇瑕佷粈涔缁勪欢浜嗭紝杩欑帺鎰忕洿鎺ユ繁鍏ュ埌铏氭嫙鏈轰簡鐨 ...
绛旓細鍦Java绫诲浘涓紝閫氬父涓闇瑕鏄惧紡鍦板啓涓婃墍鏈夌殑get鍜set鏂规硶銆傜被鍥句富瑕佺敤浜庡睍绀虹被涔嬮棿鐨勫叧绯诲拰绫荤殑缁撴瀯锛岃屼笉鏄睍绀哄叿浣撶殑鏂规硶瀹炵幇銆傚湪绫诲浘涓紝鍙互閫氳繃灞炴х殑鍙鎬х鍙凤紙濡+銆-銆#绛夛級鏉ヨ〃绀哄睘鎬х殑璁块棶绾у埆锛岃屼笉闇瑕佸叿浣撳垪鍑烘墍鏈夌殑get鍜宻et鏂规硶銆備緥濡傦紝浣跨敤"+"琛ㄧず鍏湁灞炴э紝浣跨敤"-"琛ㄧず绉佹湁灞炴э紝浣跨敤...
绛旓細setter鍜実etter鏂规硶鏄敤鏉ュbean绫荤殑鎴愬憳鍙橀噺杩涜璧嬪煎拰鍙栧肩殑銆傚父瑙佺殑鏈変袱绉嶏紝涓绉嶆槸鍦ㄧ▼搴忎腑鏄惧紡鐨勯氳繃瀵硅薄璋冪敤锛屽 new JavaBean().setName("111");鍙︿竴绉嶆槸妗嗘灦閲屼細璋冪敤锛屼緥濡俿pring鍔犺浇bean鎴朚ybatis杩斿洖鍊肩被鍨媟esultMap=鈥淏eanType鈥濇椂璋冪敤銆
绛旓細set/get鏂规硶涓鑸槸bean绫婚噷鐨勫嚱鏁帮紝瀹炰綋bean閲屼竴鑸氨鏈塸rivate鏉冮檺鐨勫彉閲忥紝浣嗘槸瑕佽闂粬浠氨瑕佹湁鍑芥暟浜嗭紝灏辨槸public鏉冮檺鐨剆et/get鏂规硶鍒嗗埆淇敼鍜岃鍙栧彉閲忕殑鍊 鐢ㄨ繖绉嶆柟寮忕殑濂藉鏄彁楂樺畨鍏ㄦэ紝浣犲彲鑳芥兂杩欐牱杩樻槸鑳戒慨鏀规庝箞灏辨彁楂樺畨鍏ㄦт簡鍛傘傛槸杩欐牱鐨勶紝濡傛灉鐩存帴鎶婂彉閲忚鎴恜ublic鏉冮檺鐨勶紝杩欐牱涓嶇敤set/get锛...
绛旓細瀵硅薄鏄被鐨勪竴涓疄渚嬶紝鏈夌姸鎬佸拰琛屼负銆傜被鏄竴涓ā鏉匡紝瀹冩弿杩颁竴绫诲璞$殑琛屼负鍜岀姸鎬併傜湅鍥撅紝鍥句腑鐢峰濂冲涓虹被锛岃屽叿浣撶殑姣忎釜浜轰负璇ョ被鐨勫璞°俿et鏂规硶鏄缃硷紝get鏂规硶鏄彇鍊笺
绛旓細褰撲綘鎶婅繖涓璞EW鍑烘潵鍚庯紝灏卞彲浠ョ洿鎺鐢╣et鏂规硶鑾峰彇鍏朵腑鐨勫叿浣撳硷紝鎴栫粰杩欎釜绫讳腑鐨勬瘡涓睘鎬ц祴鍊笺備紶鍙傛暟绠鍗曠殑璇村氨鏄 锛屾柟娉曞悕鍚庨潰鍐欎釜鎷彿锛岄噷闈㈠啓涓婁綘瑕佷紶鐨勫弬鏁 渚嬪:璁剧疆鐢ㄦ埛鏂规硶 setUser 锛圫tring name锛孲tring pass锛墈} 鎷彿閲岄潰鐨勫氨鏄紶鍏ョ殑鍙傛暟锛孲tring 鏄紶鍏ョ殑鍙傛暟鐨勭被鍨 鍚庨潰璺熺殑name 锛...
绛旓細瀛愮被瀵硅薄鍦ㄥ垱寤虹殑鏃跺欙紝瀛愮被瀵硅薄閲岄潰浼氬垱寤轰竴涓埗绫诲璞°傚浣犳墍璇达紝鐖剁被瀵硅薄涓湁绉佹湁灞炴э紝瀛愮被瀵硅薄閲岄潰娌℃湁銆傚洜姝ゅ瓙绫诲璞¤皟鐢╯et/get锛岃缃/鑾峰彇鐨勬槸瀛愮被瀵硅薄涓寘鍚殑鐖剁被瀵硅薄鐨勫睘鎬с備絾鏄繖涓睘鎬т笉灞炰簬瀛愮被瀵硅薄銆
绛旓細get鍜宻et灏辨槸鍚嶈瘝鑰屽凡锛屽湪鑻辨枃涓氨鏄幏鍙栧拰鏀剧殑鎰忔濄傚湪java涓涓鑸畾涔塯et鐨勬柟娉曢兘鏄敤鏉ュ彇鍊硷紝set鏄敤鏉ヨ祴鍊肩殑锛屼綘涔熷彲浠ュ畾涔夊埆鐨勫悕瀛楋紝g鍜宻灏卞彲浠ヤ簡锛屾柟娉曞悕閮芥槸鑷畾涔夌殑锛屽彧涓嶈繃鐢╣et鍜set姣旇緝閫氱敤锛屾瘮浜轰竴鐪嬪氨鑳芥槑鐧芥槸鍙栧煎拰璧嬪肩殑鏂规硶锛
绛旓細java bean灏辨槸鎶婅嚜宸辩殑鏁版嵁鎴愬憳灏佽璧锋潵锛 璁╁鐣屼笉鑳界洿鎺ユ搷浣滄暟鎹垚鍛橈紱 鑰屽彧鑳介氳繃bean鎻愪緵鐨get 鍜 set鏂规硶杩涜鎿嶄綔锛屼繚璇佷簡鏁版嵁瀹夊叏鎬с傚彲浠ョ悊瑙d负锛歡et灏辨槸鎶婂璞′腑鐨勫兼嬁鍑烘潵锛 set灏辨槸鎶婃煇涓兼斁鍒板璞′腑鍘汇傛瘮濡傦細public class LoginInfoBean {private String time; //鏃堕棿private String ip...
绛旓細鐢紒濡傛灉娌℃湁get set浣犵殑鍊间紶涓嶈繃鍘荤殑