Java構(gòu)造代碼塊,靜態(tài)代碼塊原理與用法實(shí)例分析
本文實(shí)例講述了Java構(gòu)造代碼塊,靜態(tài)代碼塊原理與用法。分享給大家供大家參考,具體如下:
本文內(nèi)容: 局部代碼塊 構(gòu)造代碼塊 靜態(tài)代碼塊 補(bǔ)充首發(fā)日期:2018-03-28
局部代碼塊:局部代碼塊用于限制變量的生命周期,如果希望某些變量在某一過程之后直接失效而不希望被后面繼續(xù)操作時,可以使用局部變量來限制變量的生命周期帶局部代碼塊中
構(gòu)造代碼塊: 構(gòu)造函數(shù)只對對應(yīng)的對象進(jìn)行初始化,構(gòu)造代碼塊給類的所有對象進(jìn)行初始化。 由于構(gòu)造代碼塊給類的所有對象進(jìn)行初始化,所以對于每個對象都要初始化成一樣值的變量,可以防止構(gòu)造代碼塊中初始化。class Person{ String gender; int age; { //構(gòu)造代碼塊 System.out.println('構(gòu)造代碼塊運(yùn)行階段'); gender='男'; } Person(){//構(gòu)造函數(shù) System.out.println('構(gòu)造函數(shù)Person()運(yùn)行階段'); } Person(int age){//構(gòu)造函數(shù) System.out.println('構(gòu)造函數(shù)Person(int age)運(yùn)行階段'); this.age=age; } }public class Demo { public static void main(String[] args) { Person p1=new Person(); System.out.println(p1.gender); Person p2=new Person(18); System.out.println(p2.gender); }}
上述代碼結(jié)果:
構(gòu)造代碼塊運(yùn)行階段構(gòu)造函數(shù)Person()運(yùn)行階段男構(gòu)造代碼塊運(yùn)行階段構(gòu)造函數(shù)Person(int age)運(yùn)行階段男構(gòu)造代碼塊的好處的例子:
構(gòu)造函數(shù)版本:
構(gòu)造代碼塊版本:
class Person{ static String gender; int age; static { System.out.println('靜態(tài)代碼塊執(zhí)行完成'); gender='男';//更改的變量只能是類變量 } Person(){//構(gòu)造函數(shù) System.out.println('構(gòu)造函數(shù)Person()運(yùn)行階段'); } Person(int age){//構(gòu)造函數(shù) System.out.println('構(gòu)造函數(shù)Person(int age)運(yùn)行階段'); this.age=age; }}public class Demo { public static void main(String[] args) { Person p1=new Person(); System.out.println(p1.gender); Person p2=new Person(18); System.out.println(p2.gender); }}
上述代碼執(zhí)行結(jié)果:
靜態(tài)代碼塊執(zhí)行完成構(gòu)造函數(shù)Person()運(yùn)行階段男構(gòu)造函數(shù)Person(int age)運(yùn)行階段男補(bǔ)充: 各個初始化塊的運(yùn)行順序:靜態(tài)代碼塊-》構(gòu)造代碼塊-》構(gòu)造方法
更多java相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《Java面向?qū)ο蟪绦蛟O(shè)計(jì)入門與進(jìn)階教程》、《Java數(shù)據(jù)結(jié)構(gòu)與算法教程》、《Java操作DOM節(jié)點(diǎn)技巧總結(jié)》、《Java文件與目錄操作技巧匯總》和《Java緩存操作技巧匯總》
希望本文所述對大家java程序設(shè)計(jì)有所幫助。
