锘??xml version="1.0" encoding="utf-8" standalone="yes"?>亚洲黄色片免费看,久久亚洲AV成人无码,亚洲kkk4444在线观看http://www.tkk7.com/NewMoring/articles/268600.html娓呮櫒娓呮櫒Sat, 02 May 2009 04:38:00 GMThttp://www.tkk7.com/NewMoring/articles/268600.htmlhttp://www.tkk7.com/NewMoring/comments/268600.htmlhttp://www.tkk7.com/NewMoring/articles/268600.html#Feedback0http://www.tkk7.com/NewMoring/comments/commentRss/268600.htmlhttp://www.tkk7.com/NewMoring/services/trackbacks/268600.html涓涓柊瀵硅薄鐨勫垵濮嬪寲鐨勬渶緇堟楠ゆ槸鍘昏皟鐢ㄥ璞$殑鏋勯犳柟娉曘?

鏋勯犳柟娉曞繀欏繪弧瓚充互涓嬫潯浠訛細

l. 鏂規硶鍚嶅繀欏諱笌綾誨悕縐板畬鍏ㄧ浉鍖歸厤錛?

2. 涓嶈澹版槑榪斿洖綾誨瀷錛?

3. 涓嶈兘琚玸tatic銆乫inal銆乻ynchronized銆乤bstract銆乶ative淇グ銆?

涓嬪垪浠g爜涓殑鏋勯犳柟娉曢兘鏄悎娉曠殑銆?

public class Xyz {

public Xyz() { // No-arg constructor

// set up the object.

}

public Xyz(int x) { //int-arg constructor

// set up the object using the parameter x.

}

}

5.2.2 閲嶈澆鏋勯犳柟娉?

濡傛灉鏈変竴涓被甯︽湁鍑犱釜鏋勯犳柟娉曪紝閭d箞涔熻浼氭兂澶嶅埗鍏朵腑涓涓瀯閫犳柟娉曠殑鏌愪簺鎿嶄綔鍒板彟涓涓瀯閫犳柟娉曚腑銆傚彲浠ラ氳繃浣跨敤鍏抽敭瀛梩his浣滀負涓涓柟娉曡皟鐢ㄦ潵杈懼埌榪欎釜鐩殑銆備笉鑳介氳繃鏂規硶鍚嶇洿鎺ヨ皟鐢ㄦ瀯閫犳柟娉曘?

public class Employee {

private String name;

private int salary;

public Employee(String n, int s) {

name = n;

salary = s;

}

public Employee(String n) {

this(n, 0);

}

public Employee() {

this( " Unknown " );

}

}

鍦ㄧ浜屼釜鏋勯犳柟娉曚腑錛屾湁涓涓瓧絎︿覆鍙傛暟錛岃皟鐢╰his(n,0)灝嗘帶鍒舵潈浼犻掑埌鏋勯犳柟娉曠殑鍙︿竴涓増鏈紝鍗抽噰鐢ㄤ簡涓涓猄tring鍙傛暟鍜屼竴涓猧nt鍙傛暟鐨勬瀯閫犳柟娉曘?

鍦ㄧ涓変釜鏋勯犳柟娉曚腑錛屽畠娌℃湁鍙傛暟錛岃皟鐢╰his("Unknownn")灝嗘帶鍒舵潈浼犻掑埌鏋勯犳柟娉曠殑鍙︿竴涓増鏈紝鍗抽噰鐢ㄤ簡涓涓猄tring鍙傛暟鐨勬瀯閫犳柟娉曘?

瀵逛簬this鐨勪換浣曡皟鐢紝濡傛灉鍑虹幇鍦ㄤ換浣曟瀯閫犳柟娉曚腑錛屽繀欏諱綔涓虹涓涓鍙ャ?

5.2.3 緙虹渷鏋勯犳柟娉?

緙虹渷鏋勯犳柟娉曟槸娌℃湁鍙傛暟鐨勬瀯閫犳柟娉曪紝浣犲彲浠ユ樉寮忓畾涔夌被鐨勭己鐪佹瀯閫犳柟娉曘?

涓轟簡淇濊瘉姣忎釜綾昏嚦灝戞湁涓涓瀯閫犳柟娉曪紝濡傛灉瀹氫箟鐨勭被涓竴涓瀯閫犳柟娉曚篃娌℃湁鍐欙紝Java灝嗚嚜鍔ㄦ彁渚涗竴涓己鐪佹瀯閫犳柟娉曘傝鏋勯犳柟娉曟病鏈夊弬鏁幫紝鐢╬ublic 淇グ錛岃屼笖鏂規硶浣撲負絀恒傛牸寮忓涓嬶細

public ClassName(){}

鍙綾諱腑鏄懼紡瀹氫箟浜嗕竴涓垨澶氫釜鏋勯犳柟娉曪紝鑰屼笖鎵鏈夋樉寮忓畾涔夌殑鏋勯犳柟娉曢兘甯﹀弬鏁幫紝閭d箞灝嗗け鍘葷己鐪佹瀯閫犳柟娉曘?

涓句緥濡備笅錛?

public class Sample1{}

public class Sample2

{

public Sample2(int a){System.out.println("My Constructor");}

}

public class Sample3

{

public Sample3(){System.out.println("My Default Constructor");}

}

鍙互璋冪敤Sample1鐨勭己鐪佹瀯閫犳柟娉曟潵鍒涘緩Sample1瀵硅薄銆?

Sample1 s=new Sample1();

Sample2綾葷殑緙虹渷鏋勯犳柟娉曞け鏁堬紝鍥犳浠ヤ笅鐨勫垱寤篠ample2瀵硅薄鐨勬柟娉曠紪璇戜細鍑洪敊銆?

Sample2 s=new Sample2();

姝g‘鐨勫垱寤烘柟娉曟槸錛?

Sample2 s=new Sample2(0);

Sample3綾誨畾涔変簡鑷繁鐨勭己鐪佹瀯閫犳柟娉曪紝鍥犳浠ヤ笅璇彞鏄悎娉曠殑銆?

Sample3 s=new Sample3();

5.2.4 瀛愮被璋冪敤鐖剁被鐨勬瀯閫犳柟娉?

鐖剁被鐨勬瀯閫犳柟娉曚笉鑳借瀛愮被緇ф壙銆傚瓙綾諱笉鑳界洿鎺ラ氳繃鏂規硶鍚嶈皟鐢ㄧ埗綾葷殑涓涓瀯閫犳柟娉曪紝鑰屾槸瑕侀氳繃super鍏抽敭瀛楄皟鐢ㄧ埗綾葷殑涓涓瀯閫犳柟娉曪紝super璇彞蹇呴』浣嶄簬瀛愮被鏋勯犳柟娉曠殑絎竴琛屻?

渚嬪錛?

/**

* Son.java

*/

class GrandPa

{

protected GrandPa()

{

System.out.println("default GrandPa");

}

public GrandPa(String name)

{

System.out.println(name);

}

}

class Father extends GrandPa

{

protected Father()

{

System.out.println("default Father");

}

public Father(String grandPaName,String fatherName)

{

super(grandPaName);

System.out.println(fatherName);

}

}

public class Son extends Father

{

public Son()

{

System.out.println("default Son");

}

public Son(String grandPaName,String fatherName,String sonName)

{

super(grandPaName,fatherName);

System.out.println(sonName);

}

public static void main(String args[])

{

Son s1=new Son();

Son s2= new Son("My GrandPa", "My Father", "My Son");

}

}

鎵ц璇彞錛?

Son s2=new Son("My GrandPa", "My Father", "My Son");

灝嗕細杈撳嚭濡備笅緇撴灉錛?

My GrandPa

My Father

My Son

褰撳瓙綾葷殑鏌愪釜鏋勯犳柟娉曟病鏈夎皟鐢ㄧ埗綾葷殑涓涓瀯閫犳柟娉曪紝閫氳繃榪欎釜鏋勯犳柟娉曞垱寤哄瓙綾誨璞℃椂錛屼細鑷姩鍏堣皟鐢ㄧ埗綾葷殑緙虹渷鏋勯犳柟娉曘傚浜庡綰х戶鎵匡紝鎵ц緙虹渷鏋勯犳柟娉曠殑欏哄簭鏄粠鏈涓婂眰鐨勭被寮濮嬨?

瀵逛簬浠ヤ笂鐨勪唬鐮佹墽琛岃鍙on s1=new Son();

灝嗕細杈撳嚭濡備笅緇撴灉錛?

default GrandPa

default Father

default Son

褰撳瓙綾葷殑鏌愪釜鏋勯犳柟娉曟病鏈夎皟鐢ㄧ埗綾葷殑涓涓瀯閫犳柟娉曪紝鑰岀埗綾誨張娌℃湁鎻愪緵緙虹渷鏋勯犳柟娉曟椂錛屽皢浼氬嚭鐜扮紪璇戦敊璇?

渚嬪錛氫慨鏀逛竴涓婼on.java鏂囦歡銆傚幓鎺塆randPa綾諱腑鏄懼紡瀹氫箟鐨勭己鐪佹瀯閫犳柟娉曪細

protected GrandPa()

{

System.out.println("default GrandPa");

}

榪欐牱錛孏randPa綾諱腑灝卞け鍘諱簡緙虹渷鏋勯犳柟娉曪紝榪欐椂錛屽湪緙栬瘧Father綾葷殑緙虹渷鏋勯犳柟娉曟椂錛屽洜涓烘壘涓嶅埌GrandPa綾葷殑緙虹渷鏋勯犳柟娉曡屽嚭閿欍?

瀛愮被鐨勬煇涓瀯閫犳柟娉曟病鏈夐氳繃super璇彞璋冪敤鐖剁被鐨勬瀯閫犳柟娉曪紝鑰屾槸閫氳繃this璇彞璋冪敤浜嗗彟涓涓瀯閫犳柟娉曪紝鑰屽湪鍙︿竴涓瀯閫犳柟娉曚腑閫氳繃super璇彞璋冪敤浜嗙埗綾葷殑鏋勯犳柟娉曪紝榪欑鎯呭喌涓嬶紝鐖剁被鐨勭己鐪佹瀯閫犳柟娉曚笉浼氳璋冪敤銆?

渚嬪錛?

class A

{

A(int i){}

}

class B extends A

{

B(){this(0);}

B(int i){super(i);}

}

瀵逛簬new B()璇彞灝嗕緷嬈℃墽琛屽涓嬫柟娉曪細

1錛欰(int) 2錛欱(int) 3錛欱()

5.2.5 鏋勯犳柟娉曠殑浣滅敤鍩?

鏋勯犳柟娉曞彧鑳借鎵鍦ㄧ被鐨勫叾浠栨瀯閫犳柟娉曟垨瀛愮被鐨勬瀯閫犳柟娉曡皟鐢紝鎴栧湪鐢╪ew璇彞鍒涘緩綾葷殑瀹炰緥鏃惰璋冪敤銆傚紩鐢ㄧ被鍨嬬殑鍙橀噺涓嶈兘璁塊棶瀵硅薄鐨勬瀯閫犳柟娉曘?

瀵逛簬浠ヤ笅浠g爜錛岃璇昏呰嚜宸卞垎鏋愭煇浜涜鍙ョ紪璇戝嚭閿欑殑鍘熷洜銆?

class Base

{

public Base(int i,int j){}

public Base(int i){

this(i,0); //CORRECT

Base(i,0); //ERROR

}

}

class Sub extends Base

{

public Sub(int i,int j)

{

super(i,0); //CORRECT

}

void method1(int i,int j)

{

this(i,j); //ERROR

Sub(i,j); //ERROR

}

void method2(int i,int j)

{

super(i,j); //ERROR

}

void method3(int i,int j)

{

Base s錛漬ew Base(0,0); //CORRECT

s.Base(0,0); //ERROR

}

}

5.2.6 鏋勯犳柟娉曚笉鑳借緇ф壙

鏋勯犳柟娉曞彲浠ヨ瀛愮被鐨勬瀯閫犳柟娉曡皟鐢紝浣嗕笉鑳借瀛愮被緇ф壙銆?

渚嬪錛?

class A

{

A(int i){};

A(){}

}

class B extends A{}

class C extends B

{

C(){

super.super(0); //COMPILE ERROR

A(0); //COMPILE ERROR

}

}

鐢變簬綾籅騫舵病鏈夌戶鎵跨被A鐨勬瀯閫犳柟娉旳(int i)錛屾墍浠ュ湪鏋勯犳柟娉旵()涓皟鐢ㄧ被A鐨勬瀯閫犳柟娉曟槸闈炴硶鐨勩?

5.2.7 鑰冨療瑕佺偣

l 璇嗗埆鍚堟硶鐨勬瀯閫犳柟娉曪紱

2 鏋勯犳柟娉曞彲浠ヨ閲嶈澆錛屼竴涓瀯閫犳柟娉曞彲浠ラ氳繃this鍏抽敭瀛楄皟鐢ㄥ彟涓涓瀯閫犳柟娉曪紝this璇彞蹇呴』浣嶄簬鏋勯犳柟娉曠殑絎竴琛岋紱

3 褰撲竴涓被涓病鏈夊畾涔変換浣曟瀯閫犳柟娉曪紝Java灝嗚嚜鍔ㄦ彁渚涗竴涓己鐪佹瀯閫犳柟娉曪紱

4 瀛愮被閫氳繃super鍏抽敭瀛楄皟鐢ㄧ埗綾葷殑涓涓瀯閫犳柟娉曪紱

5 褰撳瓙綾葷殑鏌愪釜鏋勯犳柟娉曟病鏈夐氳繃super鍏抽敭瀛楄皟鐢ㄧ埗綾葷殑鏋勯犳柟娉曪紝閫氳繃榪欎釜鏋勯犳柟娉曞垱寤哄瓙綾誨璞℃椂錛屼細鑷姩鍏堣皟鐢ㄧ埗綾葷殑緙虹渷鏋勯犳柟娉?

6 鏋勯犳柟娉曚笉鑳借static銆乫inal銆乻ynchronized銆乤bstract銆乶ative淇グ錛屼絾鍙互琚玴ublic銆乸rivate銆乸rotected淇グ錛?

7 鏋勯犳柟娉曚笉鏄被鐨勬垚鍛樻柟娉曪紱

8 鏋勯犳柟娉曚笉鑳借緇ф壙銆?

5.2.8 璇曢瑙f瀽

1錛嶹hich line contains a constructor in this class definition?

public class Counter { // (a)

int current, step;

public Counter(int startValue, int stepValue) { // (b)

set(startValue);

setStepValue(stepValue);

}

public int get() { return current; } // (c)

public void set(int value) { current = value; } // (d)

public void setStepValue(int stepValue) { step = stepValue; } // (e)

}

a) Code marked with (a) is a constructor

b) Code marked with (b) is a constructor

c) Code marked with (c) is a constructor

d) Code marked with (d) is a constructor

e) Code marked with (e) is a Constructor

絳旀錛歜

瑙f瀽錛氱被鐨勬瀯閫犳柟娉曞繀欏婚伒寰互涓嬭鍒欙細鏂規硶鍚嶅拰綾誨悓鍚嶏紝鏃犺繑鍥炲箋備竴涓柟娉曞悓鏃舵弧瓚寵繖涓や釜鏉′歡錛孞ava緙栬瘧鍣ㄥ氨浼氬皢鍏跺綋浣滅被鐨勬瀯閫犳柟娉曘備竴涓柟娉曞鏋滃彧婊¤凍鍏朵腑鐨勪竴涓潯浠訛紝灝嗕細緙栬瘧鍑洪敊錛岃璁や負鏄笉鍚堟硶鐨勬柟娉曞0鏄庛?

2錛嶹hich of the following can be applied to constructors:

a) final

b) static

c) synchronized

d) native

e) None of these.

絳旀錛歟

瑙f瀽錛氭瀯閫犳柟娉曚笉鑳借瀛愮被緇ф壙錛屾墍浠ョ敤final淇グ娌℃湁鎰忎箟銆傛瀯閫犳柟娉曠敤浜庡垱寤轟竴涓柊鐨勫璞★紝涓嶈兘浣滀負綾葷殑闈欐佹柟娉曪紝鎵浠ョ敤static淇グ娌℃湁鎰忎箟銆傛澶栵紝Java璇█涓嶆敮鎸乶ative鎴杝ynchronized鐨勬瀯閫犳柟娉曘?

3錛嶹hat will happen when you attempt to compile and run the following code .

public class Hope{

public static void main(String argv[]){

Hope h = new Hope();

}

protected Hope(){

for(int i =0; i <10; i ++){

System.out.println(i);

}

}

}

a) Compilation error: Constructors cannot be declared protected

b) Run time error: Constructors cannot be declared protected

c) Compilation and running with output 0 to 10

d) Compilation and running with output 0 to 9

絳旀錛歞

瑙f瀽錛氭瀯閫犳柟娉曞彲浠ヨpublic銆乸rotected銆乸rivate淇グ銆?

4錛嶹hat will happen if you try to compile and execute B´s main() method?

class A {

int i;

A(int i) {

this.i = i * 2;

}

}

class B extends A {

public static void main(String[] args) {

B b = new B(2);

}

B(int i) {

System.out.println(i);

}

}

Select the one right answer.

a) The instance variable i is set to 4

b) The instance variable i is set to 2

c) The instance variable i is set to 0

d) This code will not compile

絳旀錛歞

瑙f瀽錛氱敱浜庣被B鐨勬瀯閫犳柟娉旴(int i)涓病鏈夎皟鐢ㄧ埗綾葷殑鏋勯犳柟娉曪紝鑰岀埗綾諱腑鍙堟病鏈夌己鐪佹瀯閫犳柟娉曪紝瀵艱嚧緙栬瘧閿欒銆?

5錛嶹hat happens when you try to compile and run the following program?

class Mystery {

String s;

public static void main(String[] args) {

Mystery m = new Mystery();

m.go();

}

void Mystery() {

s = "constructor";

}

void go() {

System.out.println(s);

}

}

Select the one right answer.

a) this code will not compile

b) this code compiles but throws an exception at runtime

c) this code runs but nothing appears in the standard output

d) this code runs and "constructor" in the standard output

e) this code runs and writes "null" in the standard output

絳旀錛歟

瑙f瀽錛氳繖閬撻涓晠鎰忚緗簡涓涓櫡闃憋紝瀹氫箟浜嗕竴涓矊浼兼瀯閫犳柟娉曠殑Mystery()鏂規硶銆傜敱浜庡畠琚0鏄庝簡榪斿洖綾誨瀷錛屾墍浠ュ叾瀹炰笉鏄瀯閫犳柟娉曘俷ew Mystery()璇彞鍏跺疄璋冪敤鐨勬槸綾籑ystery鐨勭己鐪佹瀯閫犳柟娉曘?

6錛嶻es or No?

Statement1) If you create a non-default derived constructor and don´t call the base class constructor 錛宼he compiler will call the default base class constructor automatically. (Assume that the default constructor is defined for the base class).

Statement2) What about if it is not defined?

Statement3) What about the case of a default derived constructor, does the compiler

call the default base class constructor

a) Yes ,No,Yes

b) Yes,No,No

絳旀錛歛

瑙f瀽錛氬瓙綾葷殑鏋勯犳柟娉曚腑濡傛灉娌℃湁璋冪敤鐖剁被鐨勬瀯閫犳柟娉曪紝紼嬪簭榪愯鏃朵細鑷姩鍏堣皟鐢ㄧ埗綾葷殑緙虹渷鏋勯犳柟娉曪紙鍖呮嫭鑷姩鎻愪緵鐨勭己鐪佹瀯閫犳柟娉曟垨鏄懼紡瀹氫箟鐨勭己鐪佹瀯閫犳柟娉曪級銆傚鏋滅埗綾繪病鏈夌己鐪佹瀯閫犳柟娉曪紝灝嗕細緙栬瘧鍑洪敊銆?

7錛嶨iven the following code how could you invoke the Base constructor that will print out the string "base constructor";

class Base{

Base(int i){

System.out.println("base constructor");

}

Base(){

}

}

public class Sup extends Base{

public static void main(String argv[]){

Sup s= new Sup();

//One

}

Sup()

{

//Two

}

public void derived()

{

//Three

}

}

a) On the line After //One put Base(10);

b) On the line After //One put super(10);

c) On the line After //Two put super(10);

d) On the line After //Three put super(10);

絳旀錛歝

瑙f瀽錛氭瀯閫犳柟娉曞彧鑳借鎵鍦ㄧ被鐨勫叾浠栨瀯閫犳柟娉曟垨瀛愮被鐨勬瀯閫犳柟娉曡皟鐢ㄣ傛墍浠ュ湪//one銆?/three澶勮皟鐢ㄦ瀯閫犳柟娉曢兘鏄潪娉曠殑銆?

8錛嶵rue or False.

The Class class has no public constructor.

a) True

b) False

絳旀錛歛

瑙f瀽錛欳lass綾繪病鏈夊叕鍏辨瀯閫犳柟娉曪紝鎵浠lass綾葷殑瀵硅薄涓嶈兘鍦ㄧ▼搴忎腑閫氳繃鏋勯犳柟娉曞垱寤恒傚綋Java铏氭嫙鏈鴻杞芥煇涓被錛堝亣濡傜被鍚嶆槸ClassSample錛夌殑鏃跺欙紝浼氳嚜鍔ㄨ皟鐢↗VM鐨勭被瑁呰澆鍣ㄧ殑defineClass()鏂規硶錛岃繖涓柟娉曚細鍒涘緩鍜屾煇涓被ClassSample鐩稿叧鐨凜lass綾葷殑瀵硅薄銆侽bject綾繪湁涓柟娉昰etClass()錛屽畠榪斿洖涓涓狢lass綾葷殑瀵硅薄銆傛墍浠ワ紝鎵鏈夌殑Java瀵硅薄閮藉彲浠ラ氳繃鏂規硶getClass()鑾峰緱瀹冪殑Class綾葷殑瀵硅薄銆備緥濡傦細

ClassSample s錛漬ew ClassSample();

System.out.println(s.getClass().getName());

灝嗕細鎵撳嵃ClassSample銆?

9錛嶹hich statements concerning the following code are true?

class A {

public A() {}

public A(int i) { this(); }

}

class B extends A {

public boolean B(String msg) { return false; }

}

class C extends B {

private C() { super(); }

public C(String msg) { this(); }

public C(int i) {}

}

a) The code will fail to compile.

b) The constructor in A that takes an int as an argument will never be called as a result of constructing an object of class B or C.

c) Class C has three constructors.

d) Objects of class B cannot be constructed.

e) At most one of the constructors of each class is called as a result of constructing an object of class C.

絳旀錛歜錛宑

瑙f瀽錛氬湪綾籅涓畾涔夌殑鏂規硶B()鏈夎繑鍥炲鹼紝鎵浠ュ畠涓嶆槸鏋勯犳柟娉曘傜被B鍙湁涓涓己鐪佹瀯閫犳柟娉曪紝鎵浠ュ垱寤虹被B鎴栫被C鐨勫璞℃椂錛屼細鍏堣皟鐢ㄧ被B鐨勭己鐪佹瀯閫犳柟娉曪紝鑰岀被B鐨勭己鐪佹瀯閫犳柟娉曚細鍏堣皟鐢ㄧ被C鐨勭己鐪佹瀯閫犳柟娉曪紝綾籄鐨勬瀯閫犳柟娉旳(int i)姘歌繙涓嶄細琚皟鐢ㄣ傞夐」e鏄笉姝g‘鐨勶紝new C("hello")璇彞灝嗚皟鐢ㄧ被C鐨勪袱涓瀯閫犳柟娉旵()鍜孋(String msg)銆?

10錛嶹hich of the following code fragments are legal?

a) class MusicWork {

MusicWork(String s) {

System.out.println("The name of this work is" + s);

}

}

class ClassicalWork extends MusicWork {

ClassicalWork(String s, String composer) {

System.out.println("The composer is " + composer);

}

}

b) class MusicWork {

MusicWork(String s) {

System.out.println("The name of this work is" + s);

}

}

class ClassicalWork extends MusicWork {

ClassicalWork(String s, String composer) {

super(s);

System.out.println("The composer is " + composer);

}

}

c) class MusicWork {

MusicWork(String s) {

System.out.println("The name of this work is" + s);

}

}

class ClassicalWork extends MusicWork {

ClassicalWork(String s, String composer) {

System.out.println("This is a work of classical music");

System.out.println("The composer is " + composer);

super(s);

}

}

d) class MusicWork {

MusicWork() {

System.out.println("This is a work of music");

}

MusicWork(String name) {

this();

System.out.println("The name of this work is" + name);

}

}

e) class MusicWork {

MusicWork() {

System.out.println("This is a work of music");

}

MusicWork(String name) {

this();

System.out.println("The name of this work is" + name);

}

MusicWork(String composer) {

this();

System.out.println("The composer of this work is" + composer);

}

}

f) class MusicWork {

MusicWork() {

System.out.println("This is a work of music");

}

MusicWork(String name) {

System.out.println("The name of this work is" + name);

this();

}

}

絳旀錛歜錛宒

瑙f瀽錛氶夐」a涓繀欏諱負鐖剁被鎻愪緵緙虹渷鏋勯犳柟娉曘傞夐」c涓病鏈夋妸super璇彞鏀懼湪鏋勯犳柟娉曠殑絎竴琛屻傞夐」e涓湁涓や釜Music(String)鏋勯犳柟娉曪紝涓嶅悎娉曘傞夐」f涓病鏈夋妸this璇彞鏀懼湪鏋勯犳柟娉曠殑絎竴琛屻?

11錛嶨iven the following class definition which of the following can be legally placed after the comment line//Here ?

class Base{

public Base(int i){}

}

public class MyOver extends Base{

public static void main(String arg[]){

MyOver m = new MyOver(10);

}

MyOver(int i){

super(i);

}

MyOver(String s, int i){

this(i);

//Here

}

}

a) MyOver m = new MyOver();

b) super();

c) this("Hello",10);

d) Base b = new Base(10);

絳旀錛歞

瑙f瀽錛氱被MyOver娌℃湁緙虹渷鏋勯犳柟娉曪紝鎵浠ラ夐」a涓嶆紜?/p>

娓呮櫒 2009-05-02 12:38 鍙戣〃璇勮
]]>
Java鐨勫瓙綾昏皟鐢ㄧ埗綾葷殑鏋勯犳柟娉曪紝鏋勯犳柟娉曠殑鐩稿叧闂http://www.tkk7.com/NewMoring/articles/268599.html娓呮櫒娓呮櫒Sat, 02 May 2009 04:34:00 GMThttp://www.tkk7.com/NewMoring/articles/268599.htmlhttp://www.tkk7.com/NewMoring/comments/268599.htmlhttp://www.tkk7.com/NewMoring/articles/268599.html#Feedback0http://www.tkk7.com/NewMoring/comments/commentRss/268599.htmlhttp://www.tkk7.com/NewMoring/services/trackbacks/268599.html11.2.1 閲嶈澆鏋勯犳柟娉?
11.2.2 榛樿鏋勯犳柟娉?
11.2.3 瀛愮被璋冪敤鐖剁被鐨勬瀯閫犳柟娉?
11.2.4 鏋勯犳柟娉曠殑浣滅敤鍩?
11.2.5 鏋勯犳柟娉曠殑璁塊棶綰у埆

浠庝笂涓鑺傚彲浠ョ湅鍑猴紝鍦ㄥ鏁版儏鍐典笅錛屽垵濮嬪寲涓涓璞$殑鏈緇堟楠ゆ槸鍘昏皟鐢ㄨ繖涓璞$殑鏋勯犳柟娉曘傛瀯閫犳柟娉曡礋璐e璞$殑鍒濆鍖栧伐浣滐紝涓哄疄渚嬪彉閲忚祴浜堝悎閫傜殑鍒濆鍊箋傛瀯閫犳柟娉曞繀欏繪弧瓚充互涓嬭娉曡鍒欙細
(1) 鏂規硶鍚嶅繀欏諱笌綾誨悕鐩稿悓銆?br /> (2)涓嶈澹版槑榪斿洖綾誨瀷銆?br /> (3)涓嶈兘琚玸tatic銆乫inal銆乻ynchronized銆乤bstract鍜宯ative淇グ銆傛瀯閫犳柟娉曚笉鑳借瀛愮被緇ф壙錛屾墍浠ョ敤final鍜?/p>

abstract淇グ娌℃湁鎰忎箟銆傛瀯閫犳柟娉曠敤浜庡垵濮嬪寲涓涓柊寤虹殑瀵硅薄錛屾墍浠ョ敤static淇グ娌℃湁鎰忎箟銆傚涓嚎紼嬩笉浼氬悓鏃跺垱寤哄唴瀛樺湴鍧鐩稿悓鐨勫悓涓涓璞★紝鍥犳鐢╯ynchronized淇グ娌℃湁蹇呰銆傛澶栵紝Java璇█涓嶆敮鎸乶ative綾誨瀷鐨勬瀯閫犳柟娉曘?br /> 鍦ㄤ互涓婼ample綾諱腑錛屽叿鏈塱nt榪斿洖綾誨瀷鐨凷ample(int x)鏂規硶鍙槸涓櫘閫氱殑瀹炰緥鏂規硶錛屼笉鑳戒綔涓烘瀯閫犳柟娉曪細
public class Sample {
private int x;
public Sample() { // 涓嶅甫鍙傛暟鐨勬瀯閫犳柟娉?br /> this(1);
}
public Sample(int x) { //甯﹀弬鏁扮殑鏋勯犳柟娉?br /> this.x=x;
}
public int Sample(int x) { //涓嶆槸鏋勯犳柟娉?br /> return x++;
}
}

浠ヤ笂渚嬪瓙灝界鑳界紪璇戦氳繃錛屼絾鏄妸瀹炰緥鏂規硶鍜屾瀯閫犳柟娉曞悓鍚嶏紝涓嶆槸濂界殑緙栫▼涔犳儻錛屽鏄撳紩璧鋒販娣嗐備緥濡備互涓婱ystery綾葷殑Mystery()鏂規硶鏈塿oid榪斿洖綾誨瀷錛屽洜姝ゆ槸鏅氱殑瀹炰緥鏂規硶錛?br />

public class Mystery {
private String s;
public void Mystery() { //涓嶆槸鏋勯犳柟娉?br /> s = "constructor";
}
void go() {
System.out.println(s);
}
public static void main(String[] args) {
Mystery m = new Mystery();
m.go();
}
}


浠ヤ笂紼嬪簭鐨勬墦鍗扮粨鏋滀負null銆傚洜涓虹敤new璇彞鍒涘緩Mystery瀹炰緥鏃訛紝璋冪敤鐨勬槸Mystery綾葷殑榛樿鏋勯犳柟娉曪紝鑰屼笉鏄互涓婃湁void榪斿洖綾誨瀷鐨凪ystery()鏂規硶銆傚叧浜庨粯璁ゆ瀯閫犳柟娉曠殑姒傚康錛屽弬瑙佹湰绔犵11.2.2鑺傦紙榛樿鏋勯犳柟娉曪級銆?br />

11.2.1 閲嶈澆鏋勯犳柟娉?/strong>

褰撻氳繃new璇彞鍒涘緩涓涓璞℃椂錛屽湪涓嶅悓鐨勬潯浠朵笅錛屽璞″彲鑳戒細鏈変笉鍚岀殑鍒濆鍖栬涓恒備緥濡傚浜庡叕鍙告柊榪涙潵鐨勪竴涓泧鍛橈紝鍦ㄤ竴寮濮嬬殑鏃跺欙紝鏈夊彲鑳戒粬鐨勫鍚嶅拰騫撮緞鏄湭鐭ョ殑錛屼篃鏈夊彲鑳戒粎浠呬粬鐨勫鍚嶆槸宸茬煡鐨勶紝涔熸湁鍙兘濮撳悕鍜屽勾榫勯兘鏄凡鐭ョ殑銆傚鏋滃鍚嶆槸鏈煡鐨勶紝灝辨殏涓旀妸濮撳悕璁句負"鏃犲悕姘?錛屽鏋滃勾榫勬槸鏈煡鐨勶紝灝辨殏涓旀妸騫撮緞璁句負-1銆?br /> 鍙氳繃閲嶈澆鏋勯犳柟娉曟潵琛ㄨ揪瀵硅薄鐨勫縐嶅垵濮嬪寲琛屼負銆備互涓嬩緥紼?1-2鐨凟mployee綾葷殑鏋勯犳柟娉曟湁涓夌閲嶈澆褰㈠紡銆傚湪涓涓被鐨勫涓瀯閫犳柟娉曚腑錛屽彲鑳戒細鍑虹幇涓浜涢噸澶嶆搷浣溿備負浜嗘彁楂樹唬鐮佺殑鍙噸鐢ㄦэ紝Java璇█鍏佽鍦ㄤ竴涓瀯閫犳柟娉曚腑錛岀敤this璇彞鏉ヨ皟鐢ㄥ彟涓涓瀯閫犳柟娉曘?br />

渚嬬▼11-2 Employee.java
public class Employee {
private String name;
private int age;

/** 褰撻泧鍛樼殑濮撳悕鍜屽勾榫勯兘宸茬煡錛屽氨璋冪敤姝ゆ瀯閫犳柟娉?*/
public Employee(String name, int age) {
this.name = name;
this.age=age;
}

/** 褰撻泧鍛樼殑濮撳悕宸茬煡鑰屽勾榫勬湭鐭ワ紝灝辮皟鐢ㄦ鏋勯犳柟娉?*/
public Employee(String name) {
this(name, -1);
}

/** 褰撻泧鍛樼殑濮撳悕鍜屽勾榫勯兘鏈煡錛屽氨璋冪敤姝ゆ瀯閫犳柟娉?*/
public Employee() {
this( "鏃犲悕姘? );
}
public void setName(String name){this.name=name; }
public String getName(){return name; }
public void setAge(int age){this.age=age;}
public int getAge(){return age;}
}


浠ヤ笅紼嬪簭鍒嗗埆閫氳繃涓変釜鏋勯犳柟娉曞垱寤轟簡涓変釜Employee瀵硅薄錛?br />

Employee zhangsan=new Employee("寮犱笁",25);
Employee lisi=new Employee("鏉庡洓");
Employee someone=new Employee();


鍦‥mployee(String name)鏋勯犳柟娉曚腑錛宼his(name,-1)璇彞鐢ㄤ簬璋冪敤Employee(String name,int age)鏋勯犳柟娉曘傚湪Employee()鏋勯犳柟娉曚腑錛宼his("鏃犲悕姘?)璇彞鐢ㄤ簬璋冪敤Employee(String name)鏋勯犳柟娉曘?br /> 鐢╰his璇彞鏉ヨ皟鐢ㄥ叾浠栨瀯閫犳柟娉曟椂錛屽繀欏婚伒瀹堜互涓嬭娉曡鍒欙細

錛?錛夊亣濡傚湪涓涓瀯閫犳柟娉曚腑浣跨敤浜唗his璇彞錛岄偅涔堝畠蹇呴』浣滀負鏋勯犳柟娉曠殑絎竴鏉¤鍙ワ紙涓嶈冭檻娉ㄩ噴璇彞錛夈備互涓嬫瀯閫犳柟娉曟槸闈炴硶鐨勶細
public Employee(){
String name="鏃犲悕姘?;
this(name); //緙栬瘧閿欒錛宼his璇彞蹇呴』浣滀負絎竴鏉¤鍙?br /> }
錛?錛夊彧鑳藉湪涓涓瀯閫犳柟娉曚腑鐢╰his璇彞鏉ヨ皟鐢ㄧ被鐨勫叾浠栨瀯閫犳柟娉曪紝鑰屼笉鑳藉湪瀹炰緥鏂規硶涓敤this璇彞鏉ヨ皟鐢ㄧ被鐨勫叾浠栨瀯閫犳柟娉曘?br /> 錛?錛夊彧鑳界敤this璇彞鏉ヨ皟鐢ㄥ叾浠栨瀯閫犳柟娉曪紝鑰屼笉鑳介氳繃鏂規硶鍚嶆潵鐩存帴璋冪敤鏋勯犳柟娉曘備互涓嬪鏋勯犳柟娉曠殑璋冪敤鏂瑰紡鏄潪娉曠殑錛?br /> public Employee() {
String name= "鏃犲悕姘?;
Employee(name); //緙栬瘧閿欒錛屼笉鑳介氳繃鏂規硶鍚嶆潵鐩存帴璋冪敤鏋勯犳柟娉?br /> }


11.2.2 榛樿鏋勯犳柟娉?/strong>


榛樿鏋勯犳柟娉曟槸娌℃湁鍙傛暟鐨勬瀯閫犳柟娉曪紝鍙垎涓轟袱縐嶏細錛?錛夐殣鍚殑榛樿鏋勯犳柟娉曪紙2錛夌▼搴忔樉寮忓畾涔夌殑榛樿鏋勯犳柟娉曘?br /> 鍦↗ava璇█涓紝姣忎釜綾昏嚦灝戞湁涓涓瀯閫犳柟娉曘備負浜嗕繚璇佽繖涓鐐癸紝濡傛灉鐢ㄦ埛瀹氫箟鐨勭被涓病鏈夋彁渚涗換浣曟瀯閫犳柟娉曪紝閭d箞Java璇█灝嗚嚜鍔ㄦ彁渚涗竴涓殣鍚殑榛樿鏋勯犳柟娉曘傝鏋勯犳柟娉曟病鏈夊弬鏁幫紝鐢╬ublic 淇グ錛岃屼笖鏂規硶浣撲負絀猴紝鏍煎紡濡備笅錛?br />

public ClassName(){} //闅愬惈鐨勯粯璁ゆ瀯閫犳柟娉?br />

鍦ㄧ▼搴忎腑涔熷彲浠ユ樉寮忕殑瀹氫箟榛樿鏋勯犳柟娉曪紝瀹冨彲浠ユ槸浠繪剰鐨勮闂駭鍒備緥濡傦細

protected Employee() { //紼嬪簭鏄懼紡瀹氫箟鐨勯粯璁ゆ瀯閫犳柟娉?br /> this("鏃犲悕姘?);
}

濡傛灉綾諱腑鏄懼紡瀹氫箟浜嗕竴涓垨澶氫釜鏋勯犳柟娉曪紝騫朵笖鎵鏈夌殑鏋勯犳柟娉曢兘甯﹀弬鏁幫紝閭d箞榪欎釜綾誨氨澶卞幓浜嗛粯璁ゆ瀯閫犳柟娉曘傚湪浠ヤ笅紼嬪簭涓紝Sample1綾繪湁涓涓殣鍚殑榛樿鏋勯犳柟娉曪紝Sample2綾繪病鏈夐粯璁ゆ瀯閫犳柟娉曪紝Sample3綾繪湁涓涓樉寮忓畾涔夌殑榛樿鏋勯犳柟娉曪細

public class Sample1{}
public class Sample2{
public Sample2(int a){System.out.println("My Constructor");}
}

public class Sample3{
public Sample3(){System.out.println("My Default Constructor");}
}


鍙互璋冪敤Sample1綾葷殑榛樿鏋勯犳柟娉曟潵鍒涘緩Sample1瀵硅薄錛?br />

Sample1 s=new Sample1(); //鍚堟硶
Sample2綾繪病鏈夐粯璁ゆ瀯閫犳柟娉曪紝鍥犳浠ヤ笅璇彞浼氬鑷寸紪璇戦敊璇細
Sample2 s=new Sample2(); //緙栬瘧鍑洪敊
Sample3綾繪樉寮忓畾涔変簡榛樿鏋勯犳柟娉曪紝鍥犳浠ヤ笅璇彞鏄悎娉曠殑銆?br /> Sample3 s=new Sample3();


11.2.3 瀛愮被璋冪敤鐖剁被鐨勬瀯閫犳柟娉?/strong>


鐖剁被鐨勬瀯閫犳柟娉曚笉鑳借瀛愮被緇ф壙銆備互涓婱yException綾葷戶鎵夸簡java.lang.Exception綾伙細

public class MyException extends Exception{} // MyException綾誨彧鏈変竴涓殣鍚殑榛樿鏋勯犳柟娉?br />

灝界鍦‥xception綾諱腑瀹氫箟浜嗗涓嬪艦寮忕殑鏋勯犳柟娉曪細

public Exception(String msg)

浣哅yException綾諱笉浼氱戶鎵夸互涓奅xception綾葷殑鏋勯犳柟娉曪紝鍥犳浠ヤ笅浠g爜鏄笉鍚堟硶鐨勶細

//緙栬瘧鍑洪敊錛孧yException綾諱笉瀛樺湪榪欐牱鐨勬瀯閫犳柟娉?br /> Exception e=new MyException("Something is error");

鍦ㄥ瓙綾葷殑鏋勯犳柟娉曚腑錛屽彲浠ラ氳繃super璇彞璋冪敤鐖剁被鐨勬瀯閫犳柟娉曘備緥濡傦細
public class MyException extends Exception{
public MyException(){
//璋冪敤Exception鐖剁被鐨凟xception(String msg)鏋勯犳柟娉?br /> super("Something is error");
}

public MyException(String msg){
//璋冪敤Exception鐖剁被鐨凟xception(String msg)鏋勯犳柟娉?br /> super(msg);
}
}

鐢╯uper璇彞鏉ヨ皟鐢ㄧ埗綾葷殑鏋勯犳柟娉曟椂錛屽繀欏婚伒瀹堜互涓嬭娉曡鍒欍?br /> 錛?錛夊湪瀛愮被鐨勬瀯閫犳柟娉曚腑錛屼笉鑳界洿鎺ラ氳繃鐖剁被鏂規硶鍚嶈皟鐢ㄧ埗綾葷殑鏋勯犳柟娉曪紝鑰屾槸瑕佷嬌鐢╯uper璇彞錛屼互涓嬩唬鐮佹槸闈炴硶鐨勶細
public MyException(String msg){
Exception(msg); //緙栬瘧閿欒
}

錛?錛夊亣濡傚湪瀛愮被鐨勬瀯閫犳柟娉曚腑鏈塻uper璇彞錛屽畠蹇呴』浣滀負鏋勯犳柟娉曠殑絎竴鏉¤鍙ワ紝浠ヤ笅浠g爜鏄潪娉曠殑錛?/p>


public MyException(){
String msg= "Something wrong";
super(msg); //緙栬瘧閿欒錛宻uper璇彞蹇呴』浣滀負鏋勯犳柟娉曠殑絎竴鏉¤鍙?br /> }

鍦ㄥ垱寤哄瓙綾葷殑瀵硅薄鏃訛紝Java铏氭嫙鏈洪鍏堟墽琛岀埗綾葷殑鏋勯犳柟娉曪紝鐒跺悗鍐嶆墽琛屽瓙綾葷殑鏋勯犳柟娉曘傚湪澶氱駭緇ф壙鐨勬儏鍐典笅錛屽皢浠庣戶鎵挎爲鐨勬渶涓婂眰鐨勭埗綾誨紑濮嬶紝渚濇鎵ц鍚勪釜綾葷殑鏋勯犳柟娉曪紝榪欏彲浠ヤ繚璇佸瓙綾誨璞′粠鎵鏈夌洿鎺ユ垨闂存帴鐖剁被涓戶鎵跨殑瀹炰緥鍙橀噺閮借姝g‘鐨勫垵濮嬪寲銆備緥濡備互涓婤ase鐖剁被鍜孲ub瀛愮被鍒嗗埆鏈変竴涓疄渚嬪彉閲?a鍜宐錛屽綋鏋勯燬ub瀹炰緥鏃訛紝榪欎袱涓疄渚嬪彉閲忛兘浼氳鍒濆鍖栥?br />

public class Base{
private int a;
public Base(int a){ this.a=a;}
public int getA(){return a;}
}
public class Sub extends Base{
private int b;
public Base(int a,int b){super(a); this.b=b;}
public int getB(){return b;}

public static void main(String args[]){
Sub sub=new Sub(1,2);
System.out.println("a="+sub.getA()+" b="+sub.getB()); //鎵撳嵃a=1 b=2
}
}
鍦ㄤ互涓嬩緥紼?1-3錛圫on.java錛変腑錛孲on綾葷戶鎵縁ather綾伙紝Father綾葷戶鎵縂randpa綾匯傝繖涓変釜綾婚兘鏄懼紡瀹氫箟浜嗛粯璁ょ殑鏋勯犳柟娉曪紝姝ゅ榪樺畾涔変簡涓涓甫鍙傛暟鐨勬瀯閫犳柟娉曘?/p>


渚嬬▼11-3 Son.java
class Grandpa{
protected Grandpa(){
System.out.println("default Grandpa");
}
public Grandpa(String name){
System.out.println(name);
}
}

class Father extends Grandpa{
protected Father(){
System.out.println("default Father");
}

public Father(String grandpaName,String fatherName){
super(grandpaName);
System.out.println(fatherName);
}
}

public class Son extends Father{
public Son(){
System.out.println("default Son");
}

public Son(String grandpaName,String fatherName,String sonName){
super(grandpaName,fatherName);
System.out.println(sonName);
}

public static void main(String args[]){
Son s1= new Son("My Grandpa", "My Father", "My Son"); //鈶?br /> Son s2=new Son(); //鈶?br /> }
}
鎵ц浠ヤ笂main()鏂規硶鐨勭鈶犳潯璇彞錛屾墦鍗扮粨鏋滃涓嬶細
My Grandpa
My Father
My Son

姝ゆ椂鏋勯犳柟娉曠殑鎵ц欏哄簭濡傚浘11-1鎵紺恒?/p>

鍥?1-1 璋冪敤Son綾葷殑甯﹀弬鏁扮殑鏋勯犳柟娉曟椂鎵鏈夋瀯閫犳柟娉曠殑鎵ц欏哄簭

褰撳瓙綾葷殑鏋勯犳柟娉曟病鏈夌敤super璇彞鏄懼紡璋冪敤鐖剁被鐨勬瀯閫犳柟娉曪紝閭d箞閫氳繃榪欎釜鏋勯犳柟娉曞垱寤哄瓙綾誨璞℃椂錛孞ava铏氭嫙鏈轟細鑷姩鍏堣皟鐢ㄧ埗綾葷殑榛樿鏋勯犳柟娉曘傛墽琛屼互涓奡on綾葷殑main()鏂規硶鐨勭鈶℃潯璇彞錛屾墦鍗扮粨鏋滃涓嬶細
default Grandpa
default Father
default Son

姝ゆ椂鏋勯犳柟娉曠殑鎵ц欏哄簭濡傚浘11-2鎵紺恒?/p>

鍥?1-2 璋冪敤Son綾葷殑榛樿鏋勯犳柟娉曟椂鎵鏈夋瀯閫犳柟娉曠殑鎵ц欏哄簭

褰撳瓙綾葷殑鏋勯犳柟娉曟病鏈夌敤super璇彞鏄懼紡璋冪敤鐖剁被鐨勬瀯閫犳柟娉曪紝鑰岀埗綾誨張娌℃湁鎻愪緵榛樿鏋勯犳柟娉曟椂錛屽皢浼氬嚭鐜扮紪璇戦敊璇備緥濡傛妸渚嬬▼11-3鍋氶傚綋淇敼錛屽垹闄randpa綾諱腑鏄懼紡瀹氫箟鐨勯粯璁ゆ瀯閫犳柟娉曪細

// protected Grandpa(){
// System.out.println("default GrandPa");
// }

榪欐牱錛孏randpa綾誨氨澶卞幓浜嗛粯璁ゆ瀯閫犳柟娉曪紝榪欐椂錛屽湪緙栬瘧Father綾葷殑榛樿鏋勯犳柟娉曟椂錛屽洜涓烘壘涓嶅埌Grandpa綾葷殑榛樿鏋勯犳柟娉曡岀紪璇戝嚭閿欍傚鏋滄妸Grandpa綾葷殑榛樿鏋勯犳柟娉曠殑protected璁塊棶綰у埆鏀逛負private璁塊棶綰у埆錛屼篃浼氬鑷寸紪璇戦敊璇紝鍥犱負Father綾葷殑榛樿鏋勯犳柟娉曟棤娉曡闂瓽randpa綾葷殑縐佹湁榛樿鏋勯犳柟娉曘?br /> 鍦ㄤ互涓嬩緥瀛愪腑錛屽瓙綾籗ub鐨勯粯璁ゆ瀯閫犳柟娉曟病鏈夐氳繃super璇彞璋冪敤鐖剁被鐨勬瀯閫犳柟娉曪紝鑰屾槸閫氳繃this璇彞璋冪敤浜嗚嚜韜殑鍙︿竴涓瀯閫犳柟娉昐ub(int i)錛岃屽湪Sub(int i)涓氳繃super璇彞璋冪敤浜嗙埗綾籅ase鐨凚ase(int i)鏋勯犳柟娉曘傝繖鏍鳳紝鏃犺閫氳繃Sub綾葷殑鍝釜鏋勯犳柟娉曟潵鍒涘緩Sub瀹炰緥錛岄兘浼氬厛璋冪敤鐖剁被Base鐨凚ase(int i)鏋勯犳柟娉曘?br />

class Base{
Base(int i){System.out.println("call Base(int i)");}
}
public class Sub extends Base{
Sub(){this(0); System.out.println("call Sub()");}

Sub(int i){super(i); System.out.println("call Sub(int i)");}
public static void main(String args[]){
Sub sub=new Sub();
}
}
鎵ц浠ヤ笂Sub綾葷殑main()鏂規硶鐨刵ew Sub()璇彞錛屾墦鍗扮粨鏋滃涓嬶細
call Base(int i)
call Sub(int i)
call Sub()
姝ゆ椂鏋勯犳柟娉曠殑鎵ц欏哄簭濡傚浘11-3鎵紺恒?br />


鍥?1-3 璋冪敤Sub綾葷殑榛樿鏋勯犳柟娉曟椂鎵鏈夋瀯閫犳柟娉曠殑鎵ц欏哄簭
鍦ㄤ笅闈㈢殑渚嬪瓙涓紝Base綾諱腑娌℃湁瀹氫箟浠諱綍鏋勯犳柟娉曪紝瀹冨疄闄呬笂鏈変竴涓殣鍚殑榛樿鏋勯犳柟娉曪細
Base(){}
Sub綾葷殑Sub(int i)鏋勯犳柟娉曟病鏈夌敤super璇彞鏄懼紡璋冪敤鐖剁被鐨勬瀯閫犳柟娉曪紝鍥犳褰撳垱寤篠ub瀹炰緥鏃訛紝浼氬厛璋冪敤Base鐖剁被鐨勯殣鍚粯璁ゆ瀯閫犳柟娉曘?
class Base{} //鍏鋒湁闅愬惈榛樿鏋勯犳柟娉?br /> public class Sub extends Base{
Sub(int i){System.out.println(i);}
public static void main(String args[]){
System.out.println(new Sub(1)); //鎵撳嵃1
}
}

11.2.4 鏋勯犳柟娉曠殑浣滅敤鍩?/strong>
鏋勯犳柟娉曞彧鑳介氳繃浠ヤ笅鏂瑰紡琚皟鐢細
(1) 褰撳墠綾葷殑鍏朵粬鏋勯犳柟娉曢氳繃this璇彞璋冪敤瀹冦?br /> (2) 褰撳墠綾葷殑瀛愮被鐨勬瀯閫犳柟娉曢氳繃super璇彞璋冪敤瀹冦?br /> (3)鍦ㄧ▼搴忎腑閫氳繃new璇彞璋冪敤瀹冦?br /> 瀵逛簬渚嬬▼11-4錛圫ub.java錛夌殑浠g爜錛岃璇昏呰嚜宸卞垎鏋愭煇浜涜鍙ョ紪璇戝嚭閿欑殑鍘熷洜銆?br />

渚嬬▼11-4 Sub.java
class Base{
public Base(int i,int j){}
public Base(int i){
this(i,0); //鍚堟硶
Base(i,0); //緙栬瘧鍑洪敊
}
}

class Sub extends Base{
public Sub(int i,int j){
super(i,0); //鍚堟硶
}

void method1(int i,int j){
this(i,j); //緙栬瘧鍑洪敊
Sub(i,j); //緙栬瘧鍑洪敊
}
void method2(int i,int j){
super(i,j); //緙栬瘧鍑洪敊
}
void method3(int i,int j){
Base s=new Base(0,0); //鍚堟硶
s.Base(0,0); //緙栬瘧鍑洪敊
}
}

11.2.5 鏋勯犳柟娉曠殑璁塊棶綰у埆
鏋勯犳柟娉曞彲浠ュ浜巔ublic銆乸rotected銆侀粯璁ゅ拰private榪欏洓縐嶈闂駭鍒箣涓銆傛湰鑺傜潃閲嶄粙緇嶆瀯閫犳柟娉曞浜巔rivate綰у埆鐨勬剰涔夈?br /> 褰撴瀯閫犳柟娉曚負private綰у埆錛屾剰鍛崇潃鍙兘鍦ㄥ綋鍓嶇被涓闂畠錛氬湪褰撳墠綾葷殑鍏朵粬鏋勯犳柟娉曚腑鍙互閫氳繃this璇彞璋冪敤瀹冿紝姝ゅ榪樺彲浠ュ湪褰撳墠綾葷殑鎴愬憳鏂規硶涓氳繃new璇彞璋冪敤瀹冦?br /> 鍦ㄤ互涓嬪満鍚堜箣涓錛屽彲浠ユ妸綾葷殑鎵鏈夋瀯閫犳柟娉曢兘澹版槑涓簆rivate綾誨瀷銆?br /> 錛?錛夊湪榪欎釜綾諱腑浠呬粎鍖呭惈浜嗕竴浜涗緵鍏朵粬紼嬪簭璋冪敤鐨勯潤鎬佹柟娉曪紝娌℃湁浠諱綍瀹炰緥鏂規硶銆傚叾浠栫▼搴忔棤闇鍒涘緩璇ョ被鐨勫疄渚嬶紝灝辮兘璁塊棶綾葷殑闈欐佹柟娉曘備緥濡?java.lang.Math綾誨氨絎﹀悎榪欑鎯呭喌錛屽湪Math綾諱腑鎻愪緵浜嗕竴緋誨垪鐢ㄤ簬鏁板榪愮畻鐨勫叕鍏遍潤鎬佹柟娉曪紝涓轟簡紱佹澶栭儴紼嬪簭鍒涘緩Math綾葷殑瀹炰緥錛?Math綾葷殑鎯熶竴鐨勬瀯閫犳柟娉曟槸private綾誨瀷鐨勶細

private Math(){}

鍦ㄧ7绔犵殑7.2鑺傦紙abstract淇グ絎︼級鎻愬埌榪囷紝abstract綾誨瀷鐨勭被涔熶笉鍏佽瀹炰緥鍖栥備篃璁鎬綘浼氶棶錛屾妸Math綾誨畾涔変負濡備笅abstract綾誨瀷錛屼笉鏄篃鑳界姝ath綾昏瀹炰緥鍖栧悧錛?br />

public abstract class Math{…}

濡傛灉涓涓被鏄娊璞$被錛屾剰鍛崇潃瀹冩槸涓撻棬鐢ㄤ簬琚戶鎵跨殑綾伙紝鍙互鎷ユ湁瀛愮被錛岃屼笖鍙互鍒涘緩鍏蜂綋瀛愮被鐨勫疄渚嬨傝孞DK騫朵笉甯屾湜鐢ㄦ埛鍒涘緩Math綾葷殑瀛愮被錛屽湪榪欑鎯呭喌涓嬶紝鎶婄被鐨勬瀯閫犳柟娉曞畾涔変負private綾誨瀷鏇村悎閫傘?br />

錛?錛夌姝㈣繖涓被琚戶鎵褲傚綋涓涓被鐨勬墍鏈夋瀯閫犳柟娉曢兘鏄痯rivate綾誨瀷錛屽亣濡傚畾涔変簡瀹冪殑瀛愮被錛岄偅涔堝瓙綾葷殑鏋勯犳柟娉曟棤娉曡皟鐢ㄧ埗綾葷殑浠諱綍鏋勯犳柟娉曪紝鍥犳浼氬鑷寸紪璇戦敊璇傚湪絎?绔犵殑7.3.1鑺傦紙final綾伙級鎻愬埌榪囷紝鎶婁竴涓被澹版槑涓篺inal綾誨瀷錛屼篃鑳界姝㈣繖涓被琚戶鎵褲傝繖涓よ呯殑鍖哄埆鏄細
1)濡傛灉涓涓被鍏佽鍏朵粬紼嬪簭鐢╪ew璇彞鏋勯犲畠鐨勫疄渚嬶紝浣嗕笉鍏佽鎷ユ湁瀛愮被錛岄偅灝辨妸綾誨0鏄庝負final綾誨瀷銆?br /> 2)濡傛灉涓涓被鏃笉鍏佽鍏朵粬紼嬪簭鐢╪ew璇彞鏋勯犲畠鐨勫疄渚嬶紝鍙堜笉鍏佽鎷ユ湁瀛愮被錛岄偅灝辨妸綾葷殑鎵鏈夋瀯閫犳柟娉曞0鏄庝負private綾誨瀷銆?/p>


鐢變簬澶у鏁扮被閮藉厑璁稿叾浠栫▼搴忕敤new璇彞鏋勯犲畠鐨勫疄渚嬶紝鍥犳鐢╢inal淇グ絎︽潵紱佹綾昏緇ф壙鐨勫仛娉曟洿甯歌銆?br />

錛?錛夎繖涓被闇瑕佹妸鏋勯犺嚜韜疄渚嬬殑緇嗚妭灝佽璧鋒潵錛屼笉鍏佽鍏朵粬紼嬪簭閫氳繃new璇彞鍒涘緩榪欎釜綾葷殑瀹炰緥錛岃繖涓被鍚戝叾浠栫▼搴忔彁渚涗簡鑾峰緱鑷韓瀹炰緥鐨勯潤鎬佹柟娉曪紝榪欑鏂規硶縐頒負闈欐佸伐鍘傛柟娉曪紝鏈珷絎?1.3鑺傦紙闈欐佸伐鍘傛柟娉曪級瀵規浣滀簡榪涗竴姝ョ殑浠嬬粛銆?/p>

娓呮櫒 2009-05-02 12:34 鍙戣〃璇勮
]]>
主站蜘蛛池模板: 亚洲一级毛片免费在线观看| 18女人腿打开无遮掩免费| 欧美最猛性xxxxx免费| 国产精品视频免费| 亚洲第一区精品观看| 国产成人精品日本亚洲| 亚洲日本国产综合高清| 成人毛片100免费观看| 亚洲AV无码一区二区三区国产 | va亚洲va日韩不卡在线观看| 亚洲色大成网站www久久九| 国产精品黄页免费高清在线观看| 无码一区二区三区免费| 亚洲男人的天堂在线播放| 亚洲人成77777在线播放网站不卡| 亚欧免费视频一区二区三区| 亚洲精品人成电影网| 永久免费毛片在线播放| 亚洲AV色无码乱码在线观看| 亚洲国产电影av在线网址| eeuss草民免费| 亚洲精品自拍视频| 女人18毛片a级毛片免费视频| 亚洲av日韩综合一区二区三区| www国产亚洲精品久久久| 久久国产精品免费| 久久久婷婷五月亚洲97号色 | 亚洲成A人片在线播放器| 国产精品无码素人福利免费| 日韩a毛片免费观看| 久久亚洲AV无码精品色午夜麻| 日韩大片免费观看视频播放| 亚洲成av人影院| 最近的中文字幕大全免费版| 黄色网页免费观看| 色播在线永久免费视频| 亚洲无砖砖区免费| 可以免费看黄的网站| 亚洲精品一卡2卡3卡三卡四卡| 好吊妞998视频免费观看在线| 国产99久久久久久免费看|