锘??xml version="1.0" encoding="utf-8" standalone="yes"?>
鍏抽敭瀛楋細AJAX,Tree,Struts錛孌OM
闅炬槗搴︼細 涓?BR>杞歡鐗堟湰錛歴truts 1.2.8
鏃墮棿錛?006-01-27
Author錛欿ino
***************************************
鍓嶉樀瀛愬啓浜嗕竴涓皬浠g爜澶勭悊AJAX涓媁ebTree鐨勬瀯寤猴紝鍏朵腑紕板埌浜嗕竴浜涢棶棰橈紝涔熸湁涓浜涙兂娉曪紝鐜板湪璇村嚭鏉ュ笇鏈涘ぇ瀹朵竴璧風湅鐪嬶紝濡傛灉妗堢敱闂璇蜂笉鍚濊祼鏁欙紝鏈漢涓嶈儨鎰熸縺鍟娿?BR>
鑳屾櫙錛?BR>榪欐鍥犱負鏄姞杞藉湪Struts涓婄殑寮鍙戯紝Web欏甸潰涓婄殑Tree浣淎JAX澶勭悊錛屽洜涓烘湁Node鐨勫鍒犳敼鎿嶄綔銆係erver绔洜涓鴻鍜學ebService榪炴帴錛屾墍浠ヤ笉鍋欳ache銆?BR>
瑙e喅妗堬細
1銆備嬌鐢≒olling璋冪敤AJAX瀹氭湡鏇存柊Tree銆?BR>2銆侫JAX璁塊棶鐨勫湴鍧鏄竴涓狝ction錛堜緥錛歝reatetree.do錛夈傜敤鏉ヨ繑鍥濼ree妯″瀷鎴栬呴敊璇秷鎭紙鍥介檯鍖栵級銆?BR>3銆侭rowser瑙f瀽XML鐨凾reeModel銆?BR>4銆傚湪Browser姣旇緝鏂版棫2涓猅reeModel錛屽畬鎴愰変腑鐘舵佺殑緇ф壙銆?BR>5銆侰SS娓叉煋TreeNode銆?BR>
浠ヤ笂鏄畝鍗曠殑鎬濊礬銆備紶緇熺殑AJAX搴旇鏄敖閲忓噺灝慩Ml浼犺緭閲忥紝榪簬娌℃湁Cache鐨勭紭鏁咃紝騫朵笖WS緇欐垜鐨勮妭鐐瑰茍涓嶈兘綆鍗曠殑寰楀埌鐖跺瓙鍏崇郴銆傛垜閫夋嫨浜嗭紝姣忔Polling鏇存柊鏁存5鏍戠殑鏂規(guī)銆傛ц兘鏈祴銆?BR>
鎴戣繖嬈″湪web server 绔瀯寤篢ree鏃剁洿鎺ョ敤娣卞害浼樺厛杞崲鎴怷ML銆俋Ml涓暟鎹殑鍏堝悗欏哄簭鍐沖畾浜員ree浠庣埗鍒板瓙錛屼粠鍏勫埌寮熺殑娣卞害浼樺厛鍏崇郴錛宨ndent鍐沖畾浜嗘繁搴︼紙涔熷氨鏄緝榪涳級銆傝繖鏍鋒垜浠嶴erver绔紶鍏ョ殑涔熷氨鎴愪簡涓涓爣鍑嗙殑Tree鏄劇ずModel銆傛牸寮忓畾涔夊涓嬨?BR> * Gobal Master Tree DTD
* <!ELEMENT tree (tree*)>
* <!ATTLIST tree
* id CDATA #REQUIRED LoctionInfo's toString
* indent CDATA #REQUIRED Tree's Level
* text CDATA #REQUIRED label in html
* tooltip CDATA #IMPLIED title in html
* action CDATA #IMPLIED href in html
* icon CDATA #IMPLIED close icon with the node status
* openicon CDATA #IMPLIED open icon with the node status
* open CDATA #IMPLIED> node's open states ,default is false in server.
* target CDATA #IMPLIED node's open target
*
<span id="maintree">
<tree id="Ajax" indent=0 text="Root" tooltip="Root" action="/logout.do" icon="" openicon= "" open="false"/>
<tree id="110" indent=1 text="Node 1" tooltip="Node 1" action="/logout.do" icon="" openicon= "" open="false"/>
<tree id="120" indent=2 text="Node 2" tooltip="Node 2" action="/logout.do" icon="" openicon= "" open="false"/>
<tree id="12580" indent=2 text="Node 3" tooltip="Node 3" action="/logout.do" icon="" openicon= "" open="false"/>
<tree id="user" indent=1 text="Node 4" tooltip="Node 4" action="/logout.do" icon="" openicon= "" open="false"/>
</span>
涓婅竟鐨?Tree鏄劇ず鍑烘潵濡備笅
Root
鈹?BR> 鈹淣ode 1
鈹?nbsp; 鈹?BR> 鈹?nbsp; 鈹淣ode 2
鈹?nbsp; 鈹擭ode 3
鈹擭ode 4
indent 灝辨槸緙╄繘銆?BR>鏁版嵁鐨勫厛鍚庨『搴忓氨鏄繁搴︿紭鍏堢殑閬嶅巻欏哄簭銆?BR>
榪欐牱鐨勬暟鎹埌浜咮rowser錛屼細鍏堣杞垚涓涓璞℃暟緇勩?BR>
杞歡鐜錛?/SPAN>TortoiseSVN-
l 濡備綍涓嬭澆CVS 鈥?checkout
濡傚浘涓?/SPAN>URL of repository 杈撳叆鏈嶅姟鍣ㄩ」鐩悕縐板氨濂姐傦紙涓?/SPAN>IE涔熻兘鐪嬪暒錛?BR>
l 濡備綍榪藉姞鏂版枃浠舵垨鑰呯洰褰?/SPAN> 鈥?add
Subversion鏄掑綊榪藉姞鐨勶紝鐪佸幓浜?/SPAN>cvs鐨?/SPAN>python榪欎竴姝ャ?/SPAN>
榪欓噷鐨勮拷鍔犱粎浠呮槸鍦ㄦ湰鍦版墦鏍囪錛屽埆蹇樹簡鎻愪氦錛侊紒錛?BR>
l 濡備綍鎻愪氦淇敼 鈥?commit
鑻辨枃鍜?/SPAN>CVS涓鏍鳳紝姣曠珶榪?/SPAN>2涓蔣浠墮兘鏈夊悓涓涓滆佺埜鈥?/SPAN>(Karl)錛岀浉榪戜篃鑷劧銆?/SPAN>
鏄笉鏄瘮CVS鍙嬪ソ錛堣繖涓?/SPAN>Client榪樹笉閿欎箞錛夛紵 鍛靛懙 浣嗚繖騫朵笉鏄?/SPAN>Subversion鐪熸鐨勫己欏廣?BR>
l 濡備綍鎾ら攢鎿嶄綔 鈥?clean up / revert
濡傛灉浣犲仛浜嗕笉璇ュ仛鐨勪簨鎯?/SPAN>鈥?-_-! 閭d箞鎭㈠灝卞緢閲嶈浜嗭紙褰撶劧浜嗭紝榪欓兘鏄鎴風鐨勶紝濡傛灉宸茬粡鎻愪氦浜嗭紝閭?/SPAN>鈥?/SPAN>灝辯瓑鐫鎸ㄦ澘瀛愬惂錛?/SPAN>
Clean 鍜?/SPAN> Revert 寰堢浉榪戙傞兘鏄挙閿鎻愪氦鍓嶈繘琛岀殑鎵鏈変慨鏀廣傚彲浠ュ鐩綍浣溿?BR>
l 濡備綍鏄庣‘鐩綍涓嬬殑鍙樻洿欏?/SPAN> 鈥?status
鍙抽敭
l 濡備綍鍒犻櫎涓涓枃浠舵垨鑰呯洰褰?/SPAN> 鈥?delete
榪欏氨涓嶈浜嗭紝Delete 榪欎釜涓滀笢灝辨槸錛?SPAN style="COLOR: red">鍒繕浜?/SPAN> 鎻愪氦錛?/SPAN>
l 濡備綍瀵熺湅涓涓枃浠剁殑鎴栬呯洰褰曠殑淇敼璁板綍 --- log
灝辨槸鐪?/SPAN> history 浜嗐傞?/SPAN>Show Log灝卞ソ銆?/SPAN>
l 濡備綍姣旇緝鏂囦歡鎴栬呬笉鍚岀増鏈箣闂寸殑姣旇緝 鈥?diff
濡備笂鍥撅紝寰楀埌鍘嗗彶鐗堟湰鍚庯紝灝卞彲浠ョ洿鎺?/SPAN>diff浜嗭紝榪欎釜Client鑷甫浜?/SPAN>Compare鍔熻兘銆傚彲鑳戒笉濡?/SPAN>BC寮哄惂錛屼笉紜畾銆?/SPAN>
l 鏄庣‘鎻愪氦鏂囦歡鏃剁殑鐢ㄦ埛鏉冮檺楠岃瘉
鍐欎釜浠g爜 瀹規(guī)槗涔堛傞兘鏄綋鍔涘晩錛佽浜鴻鐩栦簡錛屽彲涓嶆槸姘旂殑鍢撮兘姝簡銆傛墍浠?/SPAN> 鏉冮檺 綆$悊涔熷氨欏哄簲鍘嗗彶媧祦錛屽嚭鐜板湪Subversion涓傝繖涓浘鏄彁浜ゆ椂鐨勫瘑鐮佽緭鍏ャ傚叿浣撶殑璁劇疆璇峰弬鑰?/SPAN>銆妔ubversion涔婣pache閰嶇疆銆?/SPAN>錛?/SPAN>
Subversion鑷甫浜嗕竴涓皬鍨嬬殑server鍙仛 svnserve 浣嗘槸浠栦笉鑳藉畬鎴愬鏉傜殑鏉冮檺鐩綍絳夌殑綆$悊錛屽洜姝ゆ垜浠繖嬈″熺敤 鐗?/SPAN>XX 鐨?/SPAN>Apache Server錛?/SPAN>
絎洓绔?鍙傝?/SPAN>
銆婁嬌鐢?/SPAN>Subversion榪涜鐗堟湰鎺у埗銆?/SPAN> Orilly 涓枃
銆?/SPAN>Apache Securty銆?/SPAN> HTMLPage ApacheGroup English
kino
kinoviti@gmail.com
QQ:23493713
杞歡鐗堟湰錛歴ubversion1.2.3
apache-server 2.0.55
鏃墮棿錛?006-01-26
Author錛欿ino
***************************************
瀹夎鍒癆pache
Subversion浣滀負CVS鐨勬浠d綔鍝侊紝Kerl鐪熺殑鏄厼璐硅嫤蹇冨晩銆傜幇鍦ㄦ垜浠氨鏉ョ湅鐪嬪浣曢厤緗畠鍒癆pacheServer銆?BR>Subversion鏈韓鏈変竴涓嚜甯︾殑灝弒erver灝辨槸bin涓嬬殑cvsserve 錛岄氳繃svn://XXXX榪涜璁塊棶銆傚悓鏃舵敮鎸乻sh閰嶇疆銆備絾鏄急鐐瑰氨鏄繖涓猻erver瀵逛簬鏉冮檺鍜岀敤鎴風鐞嗗緢寮憋紝瀵逛簬澶у瀷欏圭洰錛屽繀欏誨皢浠栨寕鍦ˋpacheServer榪欐牱鐨勯噸紓呰惃宸翠笂銆?BR>[svnserve鐨勭敤鎴鋒枃浠墮渶瑕佷慨鏀筩onf涓嬬殑2涓枃浠訛紝鑷繁鐪嬬湅錛屽緢綆鍗曢兘鏈夋敞閲婄殑錛岃繖閲屼笉璇翠簡]
浣犲簲璇ュ緱鍒皊ubversion鐨勪簩榪涘埗瀹夎鐗堬紝姣旇緝紼沖畾鐨勬槸1.2.3鐗堟湰錛岃繖涓増鏈浜巃pacheserver鏈浣庣殑鐗堟湰瑕佹眰鏄?.0.45 鎵浠ユ垜浠彲浠ュ幓apache瀹樻柟绔欑偣涓嬭澆2.0.55鐗堟湰錛堟渶鏂板凡緇忔槸2.5浜嗗惂錛夈傚垎鍒畨瑁?涓蔣浠躲?BR>ok,杞歡鐜濂戒簡錛岄偅灝辨潵榪炴帴浠栦滑鍚с?BR>
鏁版嵁搴撹繛鎺ワ細
錛堝鏋滀綘鎳掑緱鏀癸紝閭d箞瀹夎杞歡鐨勬椂鍊欏氨涓瀹氳鍏堝畨瑁匒pacheServer,Subversion瀹夎鐨勬椂鍊欎細鑷姩淇敼錛?BR>subversion鍙互琚湅浣滄槸涓涓壒孌婄殑鏁版嵁搴擄紙浜嬪疄涓婁篃灝辨槸錛屽懙鍛礔SFS 鍜屼集鍏嬪埄DB錛夈傞偅涔堝氨闇瑕佽Apache鑳藉璁塊棶subversion鐨勬暟鎹簱錛岃繖灝辯敤鍒頒簡module姒傚康錛屾垜浠究鏉ヤ慨鏀筯ttpd.conf鏂囦歡銆?BR>1銆傛墦寮Apache鑷甫鐨凞AVmodule錛氬幓鎺夆淟oadModule dav_module modules/mod_dav.so鈥濆墠鐨?
2銆傝拷鍔犺闂畇ubversion鐢ㄧ殑module錛氾紙subversion瀹夎鐩綍bin涓嬭嚜甯︽湁榪?涓猰odules錛?BR>LoadModule dav_svn_module "C:/Program Files/Subversion/bin/mod_dav_svn.so"
LoadModule authz_svn_module "C:/Program Files/Subversion/bin/mod_authz_svn.so"
鏉冮檺璁劇疆錛?/FONT>
姣旇緝楹葷儲鐨勪笢瑗挎潵浜嗐傛垜浠渶瑕侀厤緗?涓笢瑗匡細
1銆傚湪httpd.conf涓拷鍔?lt;Location > 銆備緥瀛愬涓嬶細
#閰嶇疆subversion鐢ㄦ埛鏉冮檺
<Location /mysvn>
DAV svn
# http涓緭鍏?nbsp;"/mysvn/Parser" URL will map to a repository F:/SVN/repository/Parser
SVNParentPath F:/SVN/repository/
#澹版槑 accessfilepolicy 鏂囦歡錛岀洰鐨勬槸紜Group鍒嗙被鍜岀洰褰曠殑璁塊棶鏉冮檺
AuthzSVNAccessFile F:/SVN/commonconf/accessfilepolicy
# only authenticated users may access the repository
# Require valid-user
# For any operations other than these, require an authenticated user.
<LimitExcept GET PROPFIND OPTIONS REPORT>
Require valid-user
</LimitExcept>
# 澹版槑userauthofapachedav鏂囦歡錛屽叾鍐呭鏄悇涓敤鎴風殑md5瀵嗙爜
AuthType Basic
AuthName "HFSVB AuthName"
AuthUserFile F:/SVN/commonconf/userauthofapachedav
</Location>
2銆俛ccessfilepolicy 鏂囦歡錛堟斁鍦ㄩ」鐩殑conf鐩綍涓嬶紝涔熷彲闅忔剰錛?濡備笅錛?BR>#this file communicate with httpd file's Location Tag ,per file per Tag
#like svnserve.conf here section is [repos-name:path] or [path]
#if you use SVNParentPath in httpd.conf then here you MUST use repository name
#if you use SVNPath ,no problem
#r read w write
#don't have any right to parser:/src/ of user guest
#[repository鍚嶅瓧錛歱ath]
#[parser:/src/]
#guest =
[groups]
administrator = admin
developer = tester
everyone = admin, tester
#default no one has right to repos,so use * to everyone
[parser:/] #鏍圭洰褰曚笅鎵鏈夌殑鏂囦歡鍜岀洰褰曪紝鍙堢戶鎵垮叧緋?BR>* = r #榛樿鐨勬墍鏈変漢閮芥湁 璇繪潈闄?BR>@developer = rw #榪欏氨琛ㄦ槑鍙湁developer錛坱ester錛夋墠鏈夎鍐欐潈闄?BR>[ 鍏蜂綋鐨勬枃浠跺拰鍐呭鍙煡闃?Orilly鐨勩婁嬌鐢⊿ubversion榪涜鐗堟湰鎺у埗銆?BR>璁塊棶 http://www.subversion.org.cn/svnbook/1.1/index.html ]
3銆倁serauthofapachedav鏂囦歡
admin:$apr1$A45.....$WQ0RCK61I/PO4gSKt.kK60
榪欎釜鏂囦歡鏄浣曠敓鎴愮殑鍛紝浣跨敤apache 鐨刡in鐩綍涓嬬殑htpasswd.exe銆傜敤娉曞彲浠ュ弬鐓?--help鐨勫府鍔┿?BR>榪欓噷緇欎竴涓緥瀛愬惂
>htpasswd -cm C:/userauthofapachedav admin
>input password:admin123
>again : admin123
鍏蜂綋鐨勮嫳鏂囧繕浜嗐傚懙鍛典笉榪囧緢綆鍗曠殑銆?BR>
濂戒簡錛屽氨榪欎箞綆鍗曘傜澶у寮蹇冦傝繖鍙槸鍏ラ棬銆傚叿浣撶殑鎿嶄綔榪樿闈犲悇浣嶈嚜宸卞幓鎰熷彈銆?BR>
鍏充簬濡備綍璁劇疆subversion鐨勯」鐩簱錛屼笂杈規(guī)彁鍒扮殑orilly鐨勪功灝辨湁璁拌澆銆?BR>
杞歡鐗堟湰錛歛pache-log4j-1.2.9
鏃墮棿錛?006-01-26
Author錛欿ino
***************************************
鍛靛懙 蹇繃騫翠簡銆傜溂鐪嬭韓杈圭殑鏈嬪弸涓涓竴涓寮錛岃笍涓婂綊閫旓紝蹇冮噷涓嶅厤鏈変簺娣℃貳鐨勫咖浼ゃ備負浜嗘秷紓ㄦ椂闂達紝鍐欏啓鏂囩珷涔熷拰涔呰繚鐨勫ぇ瀹惰亰鑱娿?BR>
榪欓噷鍏堢鎰垮悇浣嶆湅鍙嬫柊鏄ュ揩涔愩傚湪鐙楀勾鏃恒佹椇銆佹椇鏃烘椇銆?
鍒囧叆姝i鍚с傚ぇ鍚嶉紟榧庣殑Log4j鎴戜篃鐞嗚В寰椾笉娣憋紝榪欓噷閲囩敤鍋囪鐨勯棶絳旀柟寮忎粙緇嶅惂銆?BR>Q錛歀og4j鏄釜浠涔堜笢瑗匡紵
A錛歀og4j搴旇鍙仛 Log for java鍚э紝鏄疉pacheGroup鏃椾笅鐨勬槑鏄熼」鐩紝宸茬粡搴旂敤鍦ㄥ緢澶氭柟闈簡銆傚悓綾葷殑榪樻湁閽堝c c++絳夌殑log4c log4XXX涔嬬被銆傝鑷繁鐪嬮摼鎺ワ細
Q錛歀og4j鍒板簳鏄庝箞琚簲鐢ㄥ緱錛?BR>A錛氳繖灝辮浠庣粨鏋勪笂璇翠簡錛岄鍏堟垜浠簲鐢ㄧ殑騫朵笉鏄疞og4j鑰屾槸Jakarta-Commons-logging錛屼絾鏄繖鍙槸涓涓猧nterface鍖呮病鏈夊叿浣撶殑瀹炵幇錛堝叾瀹炴槸鏈夌殑錛屽彨鍋歋ampleLog寮變絾鏄揩錛夈傛墍浠ュ湪澶х伀鐨剆ource閲屼綘鍙渶瑕侀潰鍚慙ogging緙栫▼鑰屾棤欏誨叧蹇冨埌搴曟槸濡備綍鐢熸垚鐨勩傚洜涓篖ogging欏圭洰鏀寔寰堝瀹炵幇騫朵笉涓瀹氭槸Log4j銆傝繕鏈塉DK鐨凩og涔熻鍟娿傞偅鎴戜滑瑕佸仛鐨勫氨鏄?nbsp; 閰嶇疆 Log4j鍒扮郴緇熷氨濂戒簡銆?BR>
Q錛歀og4j鍒板簳瑕侀厤緗粈涔堜笢瑗匡紝鎵嶈兘琚郴緇熻瘑鍒紵
A錛?涓細Jar鍖?nbsp; 鍜?nbsp; log4j閰嶇疆鏂囦歡銆?Jar鎴戝氨涓嶈浜嗐傜幇鍦ㄦ潵璇碙og4j閰嶇疆鏂囦歡銆傝繖涓枃浠跺彲浠ラ殢鎰忓懡鍚嶏紝榛樿鐨勬枃浠舵槸 log4j.properties 銆傛斁鍦ㄤ綘鐨剆rc鏍圭洰褰曚笅灝卞ソ銆傛瘮濡?浣犵殑source鐨刢atagory鏄痗om.yourcompany.xx閭d箞鏀懼湪鍜宑om騫跺垪鐨勭洰褰曚笅灝卞ソ銆?BR>
Q錛氬鏋滄垜涓嶆兂鐢ㄩ粯璁ょ殑log4j.properties 鎴戝簲璇ユ庝箞瀹氫箟錛屾庝箞鍋氾紵
A錛氶偅灝變嬌鐢ㄤ笅杈圭殑鍛戒護瀹氫箟錛?BR>System.setProperty(""); -_-! 鍏蜂綋鍐呭鎯充笉璧鋒潵浜嗭紝鐣欒█涓ˉ鍏呭惂銆?BR>濡傛灉浣犳槸Struts宸ョ▼鎴栬匴eb宸ョ▼錛岄渶瑕佸仛涓涓猻evlet鎶婅繖孌典唬鐮佽澆鍏ャ傞噸杞紸ctionServlet鐨刬nit鏂規(guī)硶灝卞ソ銆?BR>
Q錛氳繖涓枃浠跺浣曞畾涔夛紵
A錛氬涓嬩緥銆傦紙鍏蜂綋鐨勫彲浠ユ煡闃匤avaDoc錛?BR>### direct log messages to console ###
log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender
log4j.appender.CONSOLE.Target=System.out
log4j.appender.CONSOLE.Threshold=INFO
log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout
log4j.appender.CONSOLE.layout.ConversionPattern=%d{yyyy MMM dd HH:mm:ss:SSS} %-5p %m (%F:%L) [%t]%n
### direct messages to file gm_web.log ###
log4j.appender.FILE=org.apache.log4j.RollingFileAppender
log4j.appender.FILE.File=../logs/gm_web.log
log4j.appender.FILE.MaxFileSize=1000KB
log4j.appender.FILE.MaxBackupIndex=5
log4j.appender.FILE.Append=true
log4j.appender.FILE.Threshold=DEBUG
log4j.appender.FILE.layout=org.apache.log4j.PatternLayout
log4j.appender.FILE.layout.ConversionPattern=%d{yyyy MMM dd HH:mm:ss:SSS} %-5p %m (%F:%L) [%t]%n
# Set root category priority to INFO and its only appender to CONSOLE.
log4j.rootCategory=ERROR, CONSOLE, FILE
log4j.logger.com.mycompany.ui=DEBUG, CONSOLE, FILE
XML鏍煎紡鐨勫畾涔夛紝鎴戝氨涓嶈浜嗭紝璧勬枡婊″ぉ閮芥槸銆?BR>
Q錛氬惉璇碙og璁板綍鏈夌戶鎵垮叧緋伙紝閭d箞澶歀og錛屾晥鐜囧お浣庝簡鍚?BR>A錛氭湁緇ф壙鍏崇郴錛屽搴旂殑褰撶劧灝辨湁鎵撶牬緇ф壙鐨勫畾涔夛紝姣斿涓婁緥銆?BR>log4j.rootCategory=ERROR, CONSOLE, FILE
log4j.logger.com.mycompany.ui=DEBUG, CONSOLE, FILE
com.mycompany.ui灝辯戶鎵夸簡rootCategory鐨凩og璁板綍綰у埆銆備絾鏄鏋滃儚鐮撮櫎浣跨敤additivity
log4j.additivity.com.mycompany.ui=false
灝盞O浜嗐?BR>
Q錛歭og4j.appender.FILE.File=yourlogfile.log 鍒板簳緇欐垜鎶奓og鏀懼摢鍘諱簡錛熻兘鏀逛笉錛?BR>A錛氬鏋滄槸Tomcat閭e氨鏀懼埌bin涓嬭竟浜嗐傝兘鏀瑰晩錛宐in灝辨槸鍩哄噯鐩綍錛屽啓鐩稿璺緞灝卞ソ鍜傚涓婁緥銆?BR>
Q錛歀og4j涓瑿onversionPattern鍒板簳閮芥槸浠涔堟剰鎬濓紝閮芥庝箞鐢ㄥ晩錛?BR>A錛?濡備笅瑙i噴
Q錛欳onversionPattern鍙傛暟鑳藉幓鍝噷鍙傝冨憿錛?BR>A錛欽avaDoc PatternLayout 綾匯?/P>
http://logging.apache.org/log4j/docs/api-unstable/index.html
Q錛歀og4j浼氫笉浼氬お鎱㈠晩錛屾ц兘濡備綍錛?BR>A錛氳繖涓棶棰樹笉濂藉洖絳斻傚弽姝h褰曚竴鏉og澶х害鐨勬椂闂存槸20ms 鍒?400ms鍚э紝鏍規(guī)嵁浣燙onversionPattern闇瑕佽褰曠殑鏍煎紡鍐呭錛屼互鍙妏ackage catagory鐨勭戶鎵垮叧緋繪潵鍐沖畾銆傞偅涔堟瘡涓猵attern鍒板簳鍝釜蹇摢涓參錛屽摢涓秴綰ф參錛岃鐪?A >http://logging.apache.org/log4j/docs/api-unstable/index.html銆傛誨綊涓鍙ヨ瘽錛屽彧瑕佽log4j緇欎綘trace璋冪敤鍏崇郴錛屽弽灝刢lass 灝卞埆鎸囨湜鑳藉揩錛屾牸璋侀兘涓鏍鳳紝鏄惂銆?BR>
Q錛氫笅鐝簡娌★紝鍟板棪榪欎箞澶氾紝鏈夐棶棰樺啀闂綘鍚э紝鐣欎笅鑱旂郴淇℃伅
A錛氬垰涓嬬彮錛岃繕鍚冧簡鏈嬪弸鐨勮泲緋?浠栨湰浜烘鍦ㄩ鏈轟笂錛屽搱鍝堬紝鍚冧簡涓嫭椋?錛屽洖瀹跺挴銆傝璁洪棶棰樼殑璇風暀璦鎴栬?A href="mailto:kinoviti@gmail.com">kinoviti@gmail.com QQ:23493713
杞歡鐗堟湰錛?/SPAN>Parasoft C++ Test 6.5
鏃墮棿錛?005-11-23
Author錛欿ino
********************************
涓.浠嬬粛涓涓婥++Test鍚э紙榪欎竴閮ㄥ垎璇峰厑璁告垜ctrl + c/v 錛?/STRONG>
鏄崟鍏冩祴璇曞拰闈欐佸垎鏋愬伐鍏鳳紝鑷姩嫻嬭瘯C鍜?/SPAN>C錛嬶紜綾誨埆銆佸姛鑳芥垨緇勪歡錛岃屾棤闇緙栧啓鍗曚釜嫻嬭瘯瀹炰緥銆佹祴璇曢┍鍔ㄧ▼搴忔垨妗╄皟鐢ㄣ傚彧闇鐐瑰嚮鎸夐挳錛?/SPAN>C++Test鍗充細閲囩敤涓氬唴緙栫爜鏍囧噯鎵ц浠g爜鐨勯潤鎬佸垎鏋愶紝嫻嬭瘯浠g爜鏋勯狅紙鐧界洅嫻嬭瘯錛夛紝嫻嬭瘯浠g爜鍔熻兘鎬э紙榛戠洅嫻嬭瘯錛夛紝騫朵繚鎸佷唬鐮佸畬鏁存э紙鍥炲綊嫻嬭瘯錛夈傚彲浠ュ貳琛屽湪Windows 2000/XP 銆?/SPAN>Linux 銆?/SPAN>Solaris 7, 8, 9騫沖彴涔嬩笂銆傚ス鐨勪富瑕佸姛鑳藉彲浠ュ弬瑙佷笅杈圭殑閾炬帴緗戦〉錛?/SPAN>
http://www.superinst.com/cn/products/software_engineering/unit_testing/parasoft/ctest.html
榪欓噷鎴戞兂璇存槑鐨勪笉鏄?/SPAN>C++Test鏈夊涔堝ソ鐢紝鑰屾槸瑕佽鏄庡ス鍐呯疆鐨?/SPAN>RuleWizard鈩㈠畾鍒剁紪鐮佹満鑳姐傞偅涔堜粈涔堟墠鏄?/SPAN>RuleWizard鍛紵浠栧埌搴曡兘騫蹭粈涔堬紵
浜?RuleWizard
C++Test鍐呯疆浜?/SPAN>300澶氫釜闈欐佹祴璇曢」錛屼竴鑸殑鎯呭喌涓嬪叾瀹炰篃灝卞鐢ㄤ簡銆備絾鏄鏋滄湁鐗規(guī)畩鐨勬祴璇曡姹傦紝鍔ㄨ緞鍑犲崄K鐨勪唬鐮侊紝鐢ㄧ溂鐫涚湅錛岃剳瀛愭兂錛屽お杈涜嫤錛屼篃涓嶁滃畨鍏ㄢ濄傞偅涔堜嬌鐢?/SPAN>rulewizard瀹氬埗鑷繁鐨勮鍒欒繕鏄緢鏈夌敤鐨勩?/SPAN>
鎴戜滑棣栧厛瑕佹槑紜紝rulewizard瀹氬埗鐨勬槸 涓嶆垚鍔?/STRONG> 鐨勬儏鍐點備篃灝辨槸搴旇琚帓闄ょ殑銆?/SPAN>
Rule鐨勫垱寤烘湁2縐嶆柟寮忥紝涓縐嶆槸鎵嬪伐鍐欒鍒欙紝鍙︿竴縐嶆槸鍐欏叆闇瑕佸墧闄ょ殑浠g爜錛岃rulewizard鍘誨府浣犵敓鎴愯鍒欙紙鏈濂藉埆鐢紝寮卞急鐨?/SPAN>autocreate錛夈傛垜榪欓噷涓昏閲嶇偣鏀懼湪鑷繁鍐欒鍒欐柟闈€?/SPAN>
Rulewizard鐨勭晫闈㈠涓嬪浘錛?/SPAN>
*******
鍥?銆俁uleWizard鐣岄潰
鍙寵竟鐨勫氨鏄垜浠啓鐨勮鍒欍?/SPAN>
閭d箞鎴戜滑鍏堟潵澶ф鐨勪粙緇嶄竴涓?/SPAN>rulewizard瀹氫箟鐨勫熀鏈粍鎴愰儴鍒嗗惂銆傦紙瀹炲湪涓嶅お浼氱炕璇戯紝閭d箞灝辨部鐢ㄨ嫳鏂囧悕瀛椾簡錛岃澶у澶氬鍖呮兜錛?/SPAN>
Node錛氳鍒欑殑鍩烘湰緇勬垚閮ㄥ垎錛岄氳繃Node浣犲彲浠ュ緢娓呮鐨勭煡閬撳畠鐨勫姛鑳姐傛瘮濡傝〃杈懼紡a=b銆佸彉閲忕殑綾誨瀷嫻嬭瘯銆傘傘傚垎涓猴細
parentNode錛氳鍒欎腑鐨勪富鍒嗘敮Node鎴栬呮鍒嗘敮鐨勪富Node銆傚唴瀹瑰彲浠ユ槸琛ㄨ揪寮忋佸彉閲忋佸嚱鏁扮瓑
childNode錛氳鍒欑殑緇勬垚鍗曞厓銆?/SPAN>
Commands錛?/SPAN>鐢ㄦ潵鍦?/SPAN>Node鍜?/SPAN>Nodes涔嬮棿寤虹珛鍏寵仈鍏崇郴銆傚艦璞′竴鐐瑰氨鏄偣涓竴涓?/SPAN>Node鐒跺悗鍙抽敭鏄劇ず鍑虹殑蹇嵎鑿滃崟鐨勪笂鍗婇儴鍒嗐傚涓嬪浘錛?/SPAN>
浠嬬粛涓涓嬩富瑕佺殑Command
Collector:闆嗗悎銆傝繖涓蹇墊洿鍍忔暟瀛︿腑鐨勯泦鍚堣屼笉鏄?/SPAN>Java涓殑騫夸箟闆嗗悎銆傛弧瓚充竴瀹氭潯浠剁殑鏁版嵁鎴栬呮柟娉曟垨鑰呭彉閲忕殑鍏ㄤ綋銆傛瘮濡傦紝鎵鏈夎澹版槑榪囩殑鍙橀噺錛?SPAN style="COLOR: red">濡備笅鍥?BR>
鍥?
isDecl鏄敤鏉ヨ繑鍥炲墠杈圭殑node鏄笉鏄竴涓0鏄庛傞偅涔?/SPAN>body鐨?/SPAN>membervariable榪斿洖浜嗘墍鏈夌殑鍖呮兜鎸囧畾綾誨瀷鍙橀噺寰楄鍙ワ紙鍖呮嫭 鍙橀噺浠樺箋佸0鏄庛佸垽鏂瓑錛夐偅涔堣繖涓浘琚悊瑙d負錛屾墍鏈変笉鏄0鏄庡緱璇彞鍐呬嬌鐢ㄧ殑鍙橀噺鐨勯泦鍚堛?/SPAN>
娌℃湁琚0鏄庣殑鍙橀噺錛?SPAN style="COLOR: red">濡備笅鍥?/SPAN>銆?BR>
鍥?
榪欓噷鐨勬剰鎬濇槸鎵鏈変綔涓哄0鏄庤鍙ョ殑鍙橀噺鐨勯泦鍚堛?/SPAN>
閭d箞閫氬父鎯呭喌涓嬶紝A闆嗗悎鍜?/SPAN>B闆嗗悎搴旇鏄浉絳夌殑錛屼篃灝辨槸璇存墍鏈夎澹版槑榪囩殑鍙橀噺錛?/SPAN>B闆嗗悎鍐呭錛夊簲璇ラ兘琚嬌鐢?/SPAN>/浠樺?/SPAN>/鍒ゆ柇錛?/SPAN>A闆嗗悎鐨勫唴瀹癸級銆傞偅涔堝浜庡瓨鍦ㄥ0鏄庝簡浣嗘病鏈夎浣跨敤鐨勫彉閲忕殑鐗規(guī)畩鎯呭喌搴旇鎬庝箞鏍瘋〃紺哄憿錛?/SPAN>
Node Set:Node瀵?/SPAN>Node闆嗗悎鐨勫鐞嗐傚垎涓?/SPAN>Union錛堝悎騫訛級銆?/SPAN>Intersection錛堜氦鍙夛級銆?/SPAN>Difference錛堝樊鍊鹼紝宸﹀樊/鍙沖樊錛夈?/SPAN>Xor錛堝紓鎴栵級銆?SPAN style="COLOR: red">濡備笅鍥?/SPAN>錛?BR>
鍥?
濡傛灉 婊¤凍榪欎釜瑙勫垯錛岄偅涔堣緭鍑虹浉搴斿緱璀﹀憡淇℃伅銆?/SPAN>
Output錛?/SPAN>濡傛灉婊¤凍check鐨勬潯浠訛紝鍚戠敤鎴瘋繑鍥炰竴涓秷鎭紙綆ご琛ㄧず錛?/SPAN>
涓夛紟Python
榪欓噷python鏄敤鏉ョ粰rulewizard浣滆ˉ鍏呯殑涓涓剼鏈璦銆傞氳繃python鍙互瀹氬埗涓浜涚壒孌婄殑錛?/SPAN>rulewizard鐨?/SPAN>node涓嶈兘瀹屾垚鐨勮鍒欍?/SPAN>Python鍙互浣跨敤2縐嶆柟寮忚鍔犲叆鍒拌鍒欎腑錛?/SPAN>
浣滀負涓涓緭鍑?/SPAN>錛氬鏋滆鍒欐病鏈夎閬靛畧閭d箞鍙互璋冪敤涓涓繚鍙嶈鍒欑殑鏂規(guī)硶銆傦紙綾諱技浜庤緭鍑洪敊璇秷鎭紝鍙笉榪囪繖閲岀敤鏉ュ惎鍔ㄤ竴涓柟娉曡屽凡錛?/SPAN>
浣滀負涓涓崟鐙殑鏂規(guī)硶緇勪歡錛氬叾瀹炲氨鏄竴涓柟娉曡屽凡銆傛瘮濡傦紝浠ヤ笂鍥句負渚嬪瓙錛屽鏋滄垜浠笉鍒ゆ柇B 鍜?/SPAN> A鐨勫ぇ灝忓叧緋伙紝灝辨槸鎯蟲墦鍗頒竴涓?/SPAN>A銆?/SPAN>B鐨勫唴瀹癸紝閭d箞灝卞緱鍒板涓嬬殑鍥撅細
鍥?
鍏朵腑Method鐨勫唴瀹規(guī)槸錛?/SPAN>
def showCollectorContext(node,context):
a = context.getList("A")
b = context.getList("B")
context.report("D's Context is " + str(a) + "C's Context is " + str(b))
閭d箞鍦?/SPAN>c++test榪涜嫻嬭瘯鐨勬椂鍊欏氨浼氬緱鍒拌緭鍑烘垜浠渶瑕佺殑鍐呭銆?/SPAN>
鍏充簬python鐨勮娉曟垜榪欓噷灝變笉鍐欎簡錛屾瘯绔熷拰榪欑瘒鏂囩珷鐨勫唴瀹圭編鍏崇郴銆傚鏋滄兂瑕佷簡瑙o紝鍙互鍘諱笅杞界浉鍏寵祫鏂欙紝鎴戣繖閲屽緩璁嬌鐢?/SPAN> Orielly鐨?/SPAN> Python in a Nutshell 銆?/SPAN>
鍥涳紟涓嶈凍鐐?/SPAN>
浣滀負涓涓兘鑷畾涔夎鍒欑殑闈欐佹祴璇曞伐鍏鳳紝涓嶅緱涓嶄僵鏈?/SPAN>parasoft鍏勫紵浠殑鎵嶆櫤銆備絾鏄垜瑙夊緱榪樻湁涓浜涙敼鍠勭偣鐨勶細錛堝綋鐒朵篃涓嶆帓闄わ紝宸茬粡鏈夛紝浣嗘垜娌℃湁鍙戠幇鐨勬儏鍐碉紝濡傛灉鍚勪綅鐭ラ亾璇鋒寚鏁欙紝璋㈣阿鍏堬級
1錛?SPAN style="FONT: 7pt 'Times New Roman'"> 閫氳繃pyhon鎴戜滑鍙互騫叉秹瑙勫垯鐨勫埗瀹氾紝姣斿錛屽浜庝笂渚嬪彉閲忕殑紜畾錛屽鏋滀滑涓嶄嬌鐢?/SPAN>collect set鐨?/SPAN>Difference|left menus錛堝氨鏄浘4涓渶涓嬬殑閭d釜6杈瑰艦錛夛紝鑰岀敤python涓鏍風殑鍙互瀵規(guī)瘮2涓?/SPAN>List銆備絾鏄氨鍍忎粬鎻愪緵鐨勫姛鑳芥槸闈欐佹祴璇曚竴鏍鳳紝榪欓噷鎴戜滑寰楀埌鐨勬案榪滄槸緇忚繃澶勭悊鐨勯泦鍚堛傝屼笉鑳芥妸python鎻掑叆媯嫻嬬殑寰幆涓紝涓嶈兘涓嬈″緱鍒頒竴涓彉閲忥紝鍋氱偣鎿嶄綔鐒跺悗絳変笅嬈$殑鍙橀噺銆?/SPAN>
2錛?SPAN style="FONT: 7pt 'Times New Roman'"> 闆嗗悎鐨勬蹇靛湪榪欓噷鏈?/SPAN> 浠栫殑浼樼偣錛屼篃鏈夌己鐐癸紝濡傛灉鎴戜滑鎯寵鏄庣‘鐨勫緱鍒頒唬鐮侀噷鐩稿悓鍙橀噺鐨勫嚭鐜版鏁幫紝閭d箞閫氳繃鐜版湁鐨?/SPAN>rulewizard鏄緱涓嶅埌鐨勶紝鍥犱負鎴戜滑寰楀埌鐨勯泦鍚堟繪槸緇忚繃鈥滃悎騫垛濈殑銆佹病鏈夐噸澶嶇殑鏁版嵁緇撴瀯銆?/SPAN>
3錛?SPAN style="FONT: 7pt 'Times New Roman'"> 灝辨垜鐪嬪埌鐨勮祫鏂欙紝鎵鏈夌殑鍐呯疆鐨?/SPAN>node閮芥病鏈変負鐢ㄦ埛鎻愪緵鎺ュ彛銆備笉鑳藉鎶婇氳繃python鐨勫鐞嗙粨鏋滄紜殑浼犻掔粰鍐呯疆鐨?/SPAN>node銆傛劅瑙夋墍鏈夌殑python鍋氭垚鐨?/SPAN>node 閮芥槸鈥滃彾瀛愨濄?/SPAN>
4錛?SPAN style="FONT: 7pt 'Times New Roman'"> 鎶鏈敮鎸佸拰瀹樻柟璁哄潧浜烘皵浣庡埌錛岀湅浜嗘祽韜彂鎶栫殑鍦版銆傛病鏈変氦嫻侊紝娌℃湁璁ㄨ銆備笉鐭ラ亾鏄笉鏄洜涓哄お璐電殑鍘熷洜銆?/SPAN>
5錛?SPAN style="FONT: 7pt 'Times New Roman'"> 璐碉紒錛侊紒鐪熺殑寰堣吹銆傚姩杈勫氨鏄?/SPAN>4XXX$銆?/SPAN>-_-! 鍙嶆璐點?/SPAN>
灝卞啓榪欎箞澶氾紝甯屾湜澶у澶氬浜ゆ祦錛屽浗鍐呭叧浜庤蔣浠剁殑鏂伴椈鏈変笉灝戯紝緇忛獙鍗存病鏈夛紝甯屾湜鑳界粰鎴戜粛鐨勨滅爾鈥濊兘鎹㈡潵澶у鈥滅帀鈥濄傝阿璋紒
榪欎釜鏄疛ava浜嗭紝鐔熸?zhèn)夊惂銆?/P>
C++鐨勫畾涔夊涓嬶細
1.2铏氬嚱鏁?BR>
鎶婁竴涓熀綾誨嚱鏁板0鏄庝負virtual錛岃鍑芥暟灝卞彲浠ュ湪浠諱綍媧劇敓綾諱腑閲嶅啓浜嗐?BR>Java鐨勮娉曚腑娌℃湁virtual榪欎釜璇嶏紝浣嗘槸Java鍗村交褰誨簳搴曠殑璐交鐫榪欎釜姒傚康錛孞ava鐨勬墍鏈夊嚱鏁伴兘鏄櫄鎷熺殑銆?BR>C++鐨勬湅鍙嬪彲鑳芥瘮杈冪啛鎮(zhèn)夎繖涓瘝鍚с傚浜庤繖涓鐐笴#鍜孋++鏄浉鍚岀殑銆備絾鏄娉曠◢寰湁鐐逛笉鍚岋紝C#闇瑕佷嬌鐢╫verride綾繪樉紺哄0鏄庨噸鍐欏嚱鏁般傚涓嬩緥
1.3闅愯棌鏂規(guī)硶
鐩稿悓絳懼悕鐨勬柟娉曞湪鍩虹被鍜屽瓙綾婚兘澹版槑浜嗭紝浣嗘柟娉曚笉鏄痸itrual銆傞偅涔堝疄闄呬腑鍒板簳鍝釜鏂規(guī)硶琚墽琛岋紝鍙栧喅浜庡紩鐢ㄥ疄渚嬬殑鍙橀噺綾誨瀷錛岃屼笉鏄疄鍔涙湰韜殑綾誨瀷銆?BR>鎴戜滑涔熶笉鐢ㄥお鎷呭績榪欎釜闂錛屽洜涓篊#浼氬湪緙栬瘧鏈熺粰鍑鴻鍛娿?BR>
1.4璋冪敤縐瘡鍑芥暟鐨勬柟娉?BR>java涓垜浠嬌鐢╯uper錛孋#涓嬌鐢╞ase銆?BR>
1.5鎶借薄綾誨拰鎶借薄鍑芥暟
鍜宩ava涓鏍蜂嬌鐢╝bstract澹版槑銆?BR>鍜孋++鐩告瘮錛孋++鐨勬娊璞″嚱鏁拌澹版槑涓虹函铏氬嚱鏁般?BR>
1.6瀵嗗皝綾誨拰瀵嗗皝鏂規(guī)硶
鍦↗ava涓垜浠妸瀹冨彨鍋歠inal銆備篃灝辨槸涓嶈兘緇ф壙鐨勭被鎴栦笉鑳介噸杞界殑鏂規(guī)硶銆?/P>
1.7鏋勯犲嚱鏁扮殑璋冪敤灞傛
鍜孞ava涓鏍鳳紝鎴戝氨涓嶅璇翠簡銆傝繖閲屽己璋冧竴涓壒孌婄殑璇硶鏍煎紡錛?BR>
緇撴灉濡傞璁¢偅鏍?錛?BR>濡傛灉鍩虹被鍚湁甯﹀弬鏁扮殑鏋勯犲嚱鏁幫紝媧劇敓綾諱笉鑳借皟鐢ㄩ粯璁ゅ熀綾繪瀯閫犲嚱鏁般?BR>澶氬弬鏁版淳鐢熺被鏋勯犲嚱鏁幫紝鍙互璋冪敤鍙傛暟鏁扮洰涓嶅悓鐨勫熀綾繪瀯閫犲嚱鏁般?BR>
鎴戜滑涓璧鋒潵鐪嬬湅涓轟粈涔堣繖2涓粨璁哄彲浠ユ垚绔嬶細
棣栧厛錛屽浜庡甫鍙傛暟鐨勫熀綾繪瀯閫犲嚱鏁板湪鍒濆鍖栫殑鏃跺欎細璇曞浘鍘昏皟鐢ㄥ熀綾婚粯璁ゆ瀯閫犲嚱鏁幫紝浣嗗湪涓婅竟鐨勫熀綾葷▼搴忛噷錛屽洜涓哄彧澹版槑浜嗗甫涓涓弬鏁扮殑鏋勯犲嚱鏁幫紝鎵浠ublic Second(string f):base()鎴栬卲ublic Second(string f)灝變笉浼氶氳繃緙栬瘧錛屽洜涓轟粬鎵句笉鍒板熀綾葷殑榛樿鏋勯犲嚱鏁幫紝鍙兘榪藉姞public BaseClass()鎵嶄細閫氳繃銆傝繖涓鐐瑰拰JAVA鏄笉鍚岀殑錛宩ava鐨勯粯璁ゆ瀯閫犲嚱鏁伴粯璁ゆ槸涓嶅嚭鐜板湪浠g爜閲岀殑銆侰#鍗翠竴瀹氳鍐欏嚭鏉ャ?BR>
<<<== 鏈夐敊璇侰#鐨勯粯璁ゆ瀯閫犲嚱鏁頒綋鍒跺拰Java鏄竴鏍風殑銆傚叿浣撳涓嬶細
1銆傜埗綾繪病鏈夎嚜瀹氫箟鏋勯犲嚱鏁扮殑鎯呭喌涓嬶紝浣跨敤榛樿鏋勯犲嚱鏁般傜敤鎴峰彲浠ヤ笉鍐欏嚭鏉ャ?BR>2銆備竴鏃︾埗綾繪湁浜嗚嚜瀹氫箟鐨勬瀯閫犲嚱鏁幫紝閭d箞濡傛灉瑕佷嬌鐢ㄦ棤鍙傜殑榛樿鏋勯犲嚱鏁板氨蹇呴』瑕佹樉紺哄畾涔夈?/FONT>
鍏舵錛屼笅杈規(guī)淳鐢熺被1涓弬鏁般?涓弬鏁扮敋鑷沖涓弬鏁扮殑鏋勯犲嚱鏁頒負浠涔堣兘璁塊棶鍙湁涓涓弬鏁扮殑鍩虹被鏋勯犲嚱鏁板憿錛熷師鍥犳槸錛屽叧閿瓧this錛屼笂杈圭殑紼嬪簭鏀瑰啓濡備笅鎴戞兂澶у灝辨槑鐧戒簡銆?BR>
2.1淇グ絎?BR>C#鏀寔涓嬭竟鐨勯泦涓慨楗扮錛?BR>public 錛?nbsp; protected 錛?internal 錛宲rivate 錛?protected internal
鍚孞ava銆俰nternal鍜宲rotected internal鏄?net framework鏂板鐨勪竴涓唴瀹廣傛牴鎹畾涔夈?BR>internal鍦ㄥ悓涓涓▼搴忛泦鍐呭拰public綾諱技錛屼笉鍚岀殑紼嬪簭闆嗛棿錛宲ublic澹版槑鐨勭被鎴栨柟娉曚粛鐒跺彲鐢紝浣嗘槸internal鐨勬柟娉曟垨綾誨垯琚殣钘忋?BR>protected internal鍚堝茍浜唒rotected 鍜宨nternal錛屼絾榪欐槸涓縐峯r鍏崇郴錛岃屼笉鏄痑nd鍏崇郴銆俻rotected internal鎴愬憳鍦ㄥ悓涓涓▼搴忛泦鐨勪換浣曚唬鐮侀兘鍙錛屽湪媧劇敓綾誨彲瑙併?BR>
2.3鎺ュ彛
鎺ュ彛鍏害錛?BR>涓嶈兘瀹炰緥鍖栨帴鍙c?BR>鎺ュ彛涓嶈兘鏈夋瀯閫犲嚱鏁版垨瀛楁銆?BR>鎺ュ彛瀹氫箟涔熶笉鍏佽鍖呭惈榪愮畻絎﹂噸杞姐?BR>鎺ュ彛瀹氫箟涓繕涓嶅厑璁稿0鏄庢垚鍛樹笂鐨勪慨楗扮銆傛帴鍙f垚鍛橀兘鏄痯ublic鐨勶紝涓嶉渶瑕乻tatic涔熶笉闇瑕乿irtual銆?BR>
鍚孞ava
鎺ュ彛鍙互褰兼緇ф壙錛屽叾鏂瑰紡鍜岀被緇ф壙鐩稿悓銆傚涓嬶細
鍛婁竴孌佃惤鍚с?nbsp; (銇ゃ仴銇?璇峰鎻愭剰瑙侊紝濡傛灉鏈変粈涔堜笉娓呮鐨勫湴鏂逛篃璇蜂綘鍐欎笅鏉ワ紝涓璧瘋皟鏌ュ挴銆?nbsp;