6.闈㈠悜瀵硅薄鐨勪笁澶у熀鏈壒寰
灏佽
鏈変簺浜哄彲鑳藉Java鏈夊崐骞翠簡锛岃繕鏄悶涓嶆噦灏佽鏄粈涔堜笢瑗裤€傚叾瀹炴垜浠瘡澶╅兘鍦ㄧ敤灏佽銆傞偅涔堝皝瑁呮槸浠€涔堝憿锛熷皝瑁呯畝鍗曟潵璇村氨鏄寘瑁呫€傛瘮濡傝锛氭垜浠妸涓€鍫嗘暟鎹斁鍦ㄤ竴涓被閲岄潰锛屽苟涓斿姞涓奼et鍜宻et鏂规硶锛岃繖涓氨鏄疛avaBean灏佽銆傚啀姣斿锛氭垜浠妸涓€浜涢€氱敤鐨勪唬鐮佹斁鍦ㄤ竴涓柟娉曢噷闈紝浠ュ悗闇€瑕佺殑鏃跺€欑洿鎺ヨ皟鐢ㄦ柟娉曞氨琛屼簡锛岃繖灏辨槸浠g爜灏佽銆?
閭d箞锛屼负浠€涔堣鐢ㄥ皝瑁呭憿锛熷皝瑁呮湁浠€涔堝ソ澶勫憿锛?
姣斿锛氭垜浠渶瑕佷竴涓鐢熺殑淇℃伅锛氬鍚嶏紝骞撮緞銆傚苟涓斿湪鎺у埗鍙版樉绀哄嚭鏉ワ紝鎴戜滑鍙互杩欐牱鍐欙細
public static void main(String[] args){
String name;
int age;
System.out.println("杩欎釜瀛︾敓鐨勫悕瀛楁槸锛?+name+",骞撮緞鏄細"+age);
}
閭d箞鎴戞兂鍐嶅畾涔変竴涓鐢熶俊鎭紝骞朵笖鏄剧ず鍛紵鎴戣繕闇€瑕侀噸澶嶈繖鏍风殑浠g爜锛氶噸鏂板畾涔変袱涓彉閲忓苟璧嬪€笺€傞偅涔堝啀鎯虫兂锛屾垜闇€瑕佸崄涓鐢熺殑淇℃伅骞朵笖鏄剧ず鍛紵杩樻湁锛屽疄闄呮儏鍐典腑锛屼竴涓鐢熺殑淇℃伅涓嶅彲鑳藉氨杩欎箞鍑犱釜鍙橀噺锛屽彲鑳芥湁鍗佸嚑涓憿锛熼毦閬撴垜姣忔闇€瑕佹樉绀哄鐢熶俊鎭紝閮借瀹氫箟杩欎箞澶氬彉閲忓悧锛熸兂鎯冲惂锛岃繖鐪熸槸澶彲鎬曚簡銆?
灞炴€х殑灏佽
浣嗘槸锛岀幇鍦ㄦ垜浠彲浠ョ敤灏佽鏉ュ疄鐜帮紝鎬庝箞瀹炵幇鍛紵鎴戜滑鍙互鎶婃墍鏈夌殑灞炴€ф斁鍦ㄤ竴涓被涓紝杩欐牱锛屾垜闇€瑕佹樉绀哄鐢熶俊鎭椂锛屽彧闇€瑕佸疄渚嬪寲涓€涓被灏辫浜嗐€傛瘮濡傦細
public class Student{
String name;
int age;
}
鎴戜滑闇€瑕佷竴涓鐢熶俊鎭椂鍙互杩欐牱鍐欙細
Student student=new Student();
student.name="zhangsan";
student.age=12;
System.out.println("name:"+name+",age="+age);
鏈変汉鍙兘浼氳锛氭垜鎬庝箞鎰熻闄や簡浠g爜閲忓彉澶т箣鍚庢病鏈変粈涔堝ソ澶勫晩锛熸槸鐨勶紝鍗曞崟鐪嬭繖娈典唬鐮侊紝纭疄鏄姝わ紝浣嗘槸鍋囧鎴戜滑闇€瑕佹樉绀轰竴涓彮绾?6涓鐢熺殑淇℃伅锛岃€岃繖涓彮绾х殑鎵€鏈夊鐢熶俊鎭殑骞撮緞閮芥槸鐩稿悓鐨勶紝閭d箞鎴戜滑鍙互杩欐牱瀹氫箟Student锛?
public class Student{
String name;
int age=12;
}
閭d箞锛屽疄渚嬪寲涓€涓鐢熺殑淇℃伅鏃讹紝鎴戜滑鍙渶瑕佸畾涔夊鐢熷鍚嶅氨鍙互浜嗭紝骞撮緞灏遍粯璁よ祴鍊间簡锛屽ぇ瀹剁幇鍦ㄥ彲浠ュ啀娆″姣斾竴涓皝瑁呭拰涓嶅皝瑁呯殑浠g爜閲忥紝浣犲氨鍙互鐭ラ亾鍝鏇村ソ浜嗐€?
姣棤鐤戦棶锛屼粠闀胯繙瑙掑害鐪嬩互鍙婁粠鏇村ソ鐨勯€傜敤鎬ф潵鐪嬶紝閫氳繃灏嗘暟鎹皝瑁呮垚瀵硅薄锛屾槸寰堟湁蹇呰鐨勩€?
鑰屼笖锛屽亣濡備綘闇€瑕佹樉绀哄鐢熺殑淇℃伅锛岃鏄剧ず瀛︾敓骞撮緞鑰屽彧鐭ラ亾瀛︾敓鐢熸棩鏃讹紝浣犻渶瑕佽繖鏍峰啓锛?
String birthday="2002-01-03";
//鎴彇鐢熸棩鐨勫墠鍥涗綅锛岃幏鍙栧嚭鐢熺殑骞翠唤
....
//寰楀埌褰撳墠鐨勭郴缁熸椂闂达紝浠庤€岀煡閬撶幇鍦ㄦ槸鍝竴骞?
....
//閫氳繃鍑忔硶寰楀埌骞撮緞
....
//鏈€鍚庡畾涔夊勾榫勫彉閲忓苟灏嗚绠楃粨鏋滆祴鍊?
....
濂界殑锛屼唬鐮佸氨涓嶅啓浜嗭紝鎳備粈涔堟剰鎬濆氨琛屼簡銆傞偅涔堬紝澶у鐪嬭繖娈典吉浠g爜锛屾垜绗竴琛屽畾涔変簡鐢熸棩鍙橀噺锛岀浜旇瀹氫箟浜嗗勾榫勫彉閲忥紝閭d箞璇烽棶锛屽亣濡傝繖涓▼搴忔湁100琛岋紝浣犺寰楀彲鑳芥槸涓嶆槸鍦ㄧ80琛岃繕鍙兘鍙堝嚭鐜颁竴涓彉閲忥紵閭d箞锛屽亣濡備綘杩囦簡寰堜箙鍙堢湅杩欎釜绋嬪簭鎴栬€呭埆浜虹湅杩欎釜绋嬪簭锛屼粬鑳戒竴鐪肩湅鍑轰綘鎬诲叡瀹氫箟浜嗗灏戣窡瀛︾敓鏈夊叧鐨勫彉閲忓悧锛熸鏃犵枒闂紝寰堜笉鏂逛究鐨勶紝浣嗘槸锛屼綘鍋囧閫氳繃灏佽涔嬪悗鍛紵浣犻渶瑕佺湅涓€涓婼tudent绫讳腑鏈夊灏戝睘鎬э紝灏遍┈涓婄煡閬撲簡涓€涓鐢熸湁澶氬皯鍙橀噺浜嗐€?
鐜板湪锛屽啀鐪嬪鐢烻tudent杩欎釜绫伙紝鍋囧鎴戝湪main鏂规硶涓粰涓€涓鐢熺殑age灞炴€ц祴鍊?1锛屼綘璇寸▼搴忎細涓嶄細鍑洪敊锛熷綋鐒朵笉浼氾紝浣犲張娌℃湁瑙勫畾骞撮緞涓嶈兘涓鸿礋鏁般€傞偅涔堟€庝箞鍔炲憿锛熶袱姝ワ細
涓€锛氬皢灞炴€х鏈夊寲锛岃繖鏍峰埆浜哄氨涓嶈兘鐩存帴璁块棶鍙橀噺浜嗐€?
浜岋細灏嗚闂彉閲忕殑鏂瑰紡鏀逛负閫氳繃鏂规硶鏉ヨ闂紝鍙互鍦ㄦ柟娉曚腑澧炲姞闄愬埗鏉′欢
缁撴灉濡備笅锛?
class Student{
private String name;
private int age;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
if(age>0){
this.age = age;
}
}
}
閭d箞璇烽棶澶у锛岃繖鏍锋槸涓嶆槸寰堝ソ鍛紵瑕佹兂鏀瑰勾榫勮祴鍊硷紝蹇呴』璋冪敤setAge()鏂规硶锛岄偅涔堝勾榫勫繀椤诲ぇ浜?銆?
浠g爜鐨勫皝瑁?/strong>
浠g爜鐨勫皝瑁呮垜灏变笉闇€瑕佽浜嗭紝灏辨槸鎶婁竴娈典唬鐮佸皝瑁呮垚涓€涓柟娉曪紝鏂逛究浠ュ悗鐨勮皟鐢ㄣ€?
缁ф壙
缁ф壙灏辨槸瀛愭壙鐖朵笟銆傚氨鏄瓙绫诲彲浠ョ户鎵跨埗绫荤殑鎵€鏈夊睘鎬у拰鏂规硶銆傛湁浠€涔堢敤鍛紵
姣斿鎴戞湁涓€涓狥ather绫伙紝濮撴槸"璧?锛岃繕鏈変竴涓猄on绫伙紝濮撳綋鐒朵篃鏄?璧?浜嗭紝閭d箞鐜板湪鎴戜滑鎸変竴鑸殑鎬濊矾锛屽氨鏄缓涓や釜绫伙紝閮芥湁濮撹繖涓睘鎬э紝鍊奸兘鏄档銆備絾鏄憿锛熻繖鏍锋垜鎰熻寰堜笉鐖藉晩锛屽亣濡傝繖涓や釜绫绘湁鍗佷釜灞炴€ч兘鏄竴鏍风殑锛屾垜杩橀渶瑕佷袱涓被閮借繖鏍峰啓鍚楋紵澶碂绯曚簡銆?
鍥犳Java浜х敓浜嗙户鎵跨殑姒傚康锛?
鎴戜滑鍙互瀹氫箟涓€涓狥ather绫伙紝鑰屽瓙绫籗on缁ф壙Father绫伙紝杩欐牱锛屽杩欎釜灞炴€у氨缁ф壙杩囨潵浜嗭紝涓嶉渶瑕佸啀鍐欎竴娆°€?
public class Father{
String name="璧?;
}
public class Son extends Father{
聽 聽
}
铏界劧Son閲岄潰绌虹┖鐨勶紝浣嗘槸浣犲彲浠ヨ皟鐢⊿on鐨刵ame灞炴€с€傝繖灏辨槸灏佽鐨勮糠浜哄湴鏂广€?
浣犲彲鑳戒細璇达紝鎴戝彲鑳芥兂鏀瑰鍛紝鎬庝箞鍔炲憿锛熷彧闇€瑕佸啀Son涓啀瀹氫箟涓€娆ame灏卞ソ浜嗐€?
public class Son extends Father{
String name="鍒?;
}
缁ф壙鏈€澶х殑浼樼偣灏辨槸鎴戜滑鍙互閲嶇敤涓€涓互鍓嶅啓濂界殑绫伙紝缁х画浣跨敤鍘熸潵绫讳腑鐨勫睘鎬у拰鏂规硶锛屾垜浠敋鑷冲彲浠ヤ慨鏀瑰師鏉ョ被涓煇浜涘睘鎬ф垨鏂规硶锛屼互绗﹀悎褰撳墠绫荤殑闇€瑕併€?
褰撶劧锛岀己鐐瑰氨鏄亣濡傚洜涓烘煇浜涘師鍥狅紝浣犲繕浜嗘煇涓被鏄缁ф壙浜嗭紝鑰屼綘鍙堟敼浜嗚繖涓被鐨勪竴涓睘鎬э紝閭d箞锛屽畠鐨勫瓙绫荤殑杩欎釜灞炴€ч兘灏嗕細鏀瑰彉銆傛瘮濡侳ather绫绘垜name鏀逛负"鏉?锛岃€屼綘鍙堜笉鐭ラ亾杩欎釜绫昏缁ф壙浜嗭紙鍗曠湅Father绫讳綘鐪熶笉鐭ラ亾杩欎釜绫昏缁ф壙浜嗭級锛岄偅涔堜綘鐨勬墍鏈夊瓙绫伙紝姣斿Son绫荤殑name涔熶細鍙樻垚"鏉?銆傞偅涔堬紝杩欎釜鍚庢灉鏄緢涓ラ噸鐨勶紝鍥犱负浣犲彲鑳界敤鍒扮殑Son鐨?/span>name搴旇鏄档锛屼笉鑳芥槸鏉庛€?
澶氭€?
澶氭€佸氨鏄濮垮鎬併€備竴鏈佃姳鍙互鏈夊绉嶅舰鎬侊細鍏拌姳锛岃嵎鑺憋紝姘翠粰鑺辩瓑绛夈€傝繖涓笘鐣屽氨鏄濮垮鎬佺殑锛屾瘮濡傦細閾呯瑪鏈夌櫧閾呯瑪锛岃摑閾呯瑪锛岃姳閾呯瑪銆傞笩鏈夐浮锛岄腑锛岄箙绛夌瓑銆傞偅涔堣繖浜涘璞′箣闂撮兘鏈変竴瀹?鐨勫叡鎬э紝鎴戜滑鍙互杩愮敤鍒氬杩囩殑缁ф壙姒傚康鏉ュ啓鍑犱釜绫诲嚭鏉ャ€?
姣斿锛氬渾褰紝鏂瑰舰锛屼笁瑙掑舰閮芥槸褰㈢姸鐨勫瓙绫汇€?
//Shape鏄舰鐘剁殑鎰忔€?
class Shape{
//褰㈢姸閮芥湁闀垮害
int length;
//褰㈢姸閮芥湁闈㈢Н
int area;
public int getLength() {
return length;
}
public void setLength(int length) {
this.length = length;
}
public int getArea() {
return area;
}
public void setArea(int area) {
this.area = area;
}
}
class Circle extends Shape{
public int getLength() {
System.out.println("鐢ㄥ渾褰㈠叕寮忔眰鍦嗗舰鐨勯暱搴?);
return length;
}
public int getArea() {
System.out.println("鐢ㄥ渾褰㈠叕寮忔眰鍦嗗舰鐨勯潰绉?);
return area;
}
}
class Square extends Shape{
public int getLength() {
System.out.println("鐢ㄦ柟褰㈠叕寮忔眰鏂瑰舰鐨勯暱搴?);
return length;
}
public int getArea() {
System.out.println("鐢ㄦ柟褰㈠叕寮忔眰鏂瑰舰鐨勯潰绉?);
return area;
}
}
鐜板湪鎴戦渶瑕佸疄渚嬪寲涓€涓渾褰㈠拰鏂瑰舰锛屽苟涓旀眰鍑哄畠浠殑闀垮害锛屾€庝箞鍐欏憿锛?
public static void main(String[] args){
Circle circle=new Circle();
Square square=new Square();
circle.getLength();
square.getLength();
}
鏈変汉鍙兘浼氶棶浜嗭紝鎴戜滑鎯宠鐭ラ亾澶氭€佺殑姒傚康锛屽彲浣犺浜嗗崐澶╋紝鎬庝箞閮芥槸缁ф壙鍟婏紒鍒€ワ紝澶氭€佹潵浜嗐€?
鍦ㄨ繖閲岋紝Java鍑虹幇浜嗕竴绉嶆柊鐨勮娉曪細瀛愮被鐨勫疄渚嬪寲瀵硅薄鍙互琚埗绫荤殑寮曠敤琛ㄧず銆備唬鐮佽〃绀哄氨鏄細
Shape shape1=new Circle();
涓轰粈涔堣繖鏍峰啓鍛紵濂介毦鐞嗚В鍟娿€傚懙鍛碉紝杩欐牱鐞嗚В锛氫竴涓渾褰㈡槸涓€涓舰鐘跺鍚э紵閭d箞锛屾垜鍙互鍦ㄧ焊涓婄敾涓€涓?鍦嗗舰"锛屽苟涓旇锛岃繖鏄竴涓?褰㈢姸"銆傚ソ锛屾垜閲嶅涓€閬嶏紝鎴戞寚鐫€涓€涓渾璇磋繖鏄竴涓舰鐘躲€傛病闂鍚э紵鍦嗘槸瀹為檯瀛樺湪鐨勫惂锛熸墍浠ユ垜浠疄渚嬪寲涓€涓嬶細
new Circle();
鎴戣杩欐槸涓€涓舰鐘讹紝杩欎釜褰㈢姸鎴戠粰瀹冭捣鍚嶅瓧鍙玸hape1锛?
Shape shape1;
灏嗕袱杈硅繛璧锋潵灏辨槸锛?
Shape shape1=new Circle();
鐜板湪澶у鐞嗚В浜嗗惂锛?
閭d箞杩欐牱鏈変粈涔堝ソ澶勫憿锛熷ソ澶勫槢锛屽氨鏄細
Shape shape1=new Circle();
shape1.getLength();
杩欐浠g爜浼氬緱鍒板渾鐨勯暱搴︼紝姣曠珶鎴戞寚鐫€鐨勪笢瑗挎槸涓€涓渾銆?
鎴戜篃鍙互鍦ㄨ繖娈典唬鐮佸悗闈㈠姞涓€娈碉細
shape1=new Square();
shape1.getLength();
杩欐浠g爜鍙堜細寰楀埌鏂瑰舰鐨勯暱搴︼紝鏄笉鏄緢鏈夎叮锛?
浣嗘槸瀹冪湡姝g殑濂藉骞朵笉鏄繖鏍风殑锛岃€屾槸:
public staitc void getLenth(Shape shape){
shape.getLength();
}
public static void main(String[] args){
getLength(new Circle());
getLength(new Square());
}
鐪嬭浜嗗悧锛熸垜闇€瑕佷紶杩涘幓涓€涓?/span>Shape瀛愮被鐨勫疄鐜帮紝灏卞彲浠ヨ皟鐢ㄨ繖涓瓙绫荤殑鐩稿簲鐨勬柟娉曪紝鑰屼唬鐮佸垯娌℃湁鍙樺寲锛屼竴鍒囬兘鏄?/span>Java鑷姩甯綘瀹屾垚銆?
鎴戜滑鐢氳嚦鍙互鎶?/span>Circle杩欎釜绫讳互鍙婂畠鐨勫寘璺緞瀛樺湪涓€涓枃浠朵腑锛屾瘮濡?/span>XML鏂囦欢涓紝瀹炰緥鍖栧璞℃椂浠庢枃浠朵腑鍙栧緱Circle鐨勪俊鎭紝閫氳繃鍙嶅皠瀹炰緥鍖栵紝閭d箞杩欐牱灏卞交搴曠殑鑴辩浜嗗叿浣撶殑瀹炵幇锛?
public static void main(String[] args){
//閫氳繃鏂囦欢寰楀埌Circle鐨勫寘璺緞"com.test.Circle"
Stirng circleStr=getPath();
//閫氳繃鍙嶅皠瀹炰緥鍖?
Shape shape1=Class.forName(circleStr).getInstance();
getLength(shape1);
}
閭d箞杩欐湁浠€涔堢敤鍛紵
1.闅愯棌浜嗗叿浣撶殑瀹炵幇浠g爜锛屼綘鐭ラ亾璋冪敤浜?/span>getLength鏂规硶锛屼絾浣犲鏋滀笉鐪嬫枃浠剁殑鍐呭锛屼綘灏变笉鐭ラ亾璋冪敤鐨勬柟娉曞叿浣撳唴瀹规槸浠€涔堬紝鍥犱负绋嬪簭涓牴鏈病鏈変綋鐜般€?
2.鍌荤摐寮忎唬鐮侊紝鎴戝彧闇€瑕佹敼鏀规枃浠朵腑鐨勫唴瀹癸紝灏卞彲浠ョ灛闂存敼鍙樼▼搴忕殑杩愯缁撴灉锛屽嵆浣胯繖涓汉涓€鐐圭▼搴忓熀纭€涔熸病鏈変篃鍙互鍋氬埌銆?
3.涔熷氨鏄垜浠钩鏃跺紑鍙戜腑涓轰粈涔堢粡甯哥敤鍒板鎬佺殑鍘熷洜锛氭垜浠渶瑕佺户缁師鏉ョ殑椤圭洰杩愯鑰屽張鍥犱负瀹㈡埛鐨勯渶瑕佽€屾敼浠g爜鏃讹紝鎴戜滑涓嶉渶瑕佽姹傚鎴峰仠姝㈢幇鍦ㄧ殑椤圭洰锛岃鎴戜滑闇€瑕佹敼鏀癸紝绛夊嚑涓湀浣犲啀杩愯鍚с€?/span>No锛岃繖鏄湪寮€鐜╃瑧锛屾垜浠彲浠ョ户鎵挎寚瀹氱殑鎺ュ彛锛岃€岄噸鍐欏疄鐜扮被锛屽埌鏃跺湪鍑屾櫒3鐐规椂锛屽仠姝㈢郴缁熷嚑鍒嗛挓锛屾敼涓€涓嬮厤缃枃浠讹紝鐬棿椤圭洰灏辨敼鍙樹簡銆?