第一篇:java中final和static的總結(jié)
Java關(guān)鍵字final、static使用總結(jié)
Java關(guān)鍵字final、static使用總結(jié)
一、final
根據(jù)程序上下文環(huán)境,Java關(guān)鍵字final有“這是無法改變的”或者“終態(tài)的”含義,它可以修飾非抽象類、非抽象類成員方法和變量。你可能出于兩種理解而需要阻止改變:設(shè)計(jì)或效率。
final類不能被繼承,沒有子類,final類中的方法默認(rèn)是final的。final方法不能被子類的方法覆蓋,但可以被繼承。
final成員變量表示常量,只能被賦值一次,賦值后值不再改變。final不能用于修飾構(gòu)造方法。
注意:父類的private成員方法是不能被子類方法覆蓋的,因此private類型的方法默認(rèn)是final類型的。
1、final類
final類不能被繼承,因此final類的成員方法沒有機(jī)會(huì)被覆蓋,默認(rèn)都是final的。在設(shè)計(jì)類時(shí)候,如果這個(gè)類不需要有子類,類的實(shí)現(xiàn)細(xì)節(jié)不允許改變,并且確信這個(gè)類不會(huì)載被擴(kuò)展,那么就設(shè)計(jì)為final類。
2、final方法
如果一個(gè)類不允許其子類覆蓋某個(gè)方法,則可以把這個(gè)方法聲明為final方法。
使用final方法的原因有二:
第一、把方法鎖定,防止任何繼承類修改它的意義和實(shí)現(xiàn)。
第二、高效。編譯器在遇到調(diào)用final方法時(shí)候會(huì)轉(zhuǎn)入內(nèi)嵌機(jī)制,大大提高執(zhí)行效率。
例如:
public class Test1 {
public static void main(String[] args){
// TODO 自動(dòng)生成方法存根
}
public void f1(){
System.out.println(“f1”);}
//無法被子類覆蓋的方法
public final void f2(){ System.out.println(“f2”);}
public void f3(){
System.out.println(“f3”);}
private void f4(){
System.out.println(“f4”);} }
public class Test2 extends Test1 {
public void f1(){
System.out.println(“Test1父類方法f1被覆蓋!”);}
public static void main(String[] args){ Test2 t=new Test2();t.f1();t.f2();//調(diào)用從父類繼承過來的final方法
t.f3();//調(diào)用從父類繼承過來的方法
//t.f4();//調(diào)用失敗,無法從父類繼承獲得
} }
3、final變量(常量)
用final修飾的成員變量表示常量,值一旦給定就無法改變!final修飾的變量有三種:靜態(tài)變量、實(shí)例變量和局部變量,分別表示三種類型的常量。
從下面的例子中可以看出,一旦給final變量初值后,值就不能再改變了。
另外,final變量定義的時(shí)候,可以先聲明,而不給初值,這中變量也稱為final空白,無論什么情況,編譯器都確??瞻譮inal在使用之前必須被初始化。但是,final空白在final關(guān)鍵字final的使用上提供了更大的靈活性,為此,一個(gè)類中的final數(shù)據(jù)成員就可以實(shí)現(xiàn)依對(duì)象而有所不同,卻有保持其恒定不變的特征。
package org.leizhimin;
public class Test3 {
private final String S = “final實(shí)例變量S”;
private final int A = 100;
public final int B = 90;
public static final int C = 80;
private static final int D = 70;
public final int E;//final空白,必須在初始化對(duì)象的時(shí)候賦初值
public Test3(int x){ E = x;}
/**
* @param args
*/
public static void main(String[] args){ Test3 t = new Test3(2);
//t.A=101;//出錯(cuò),final變量的值一旦給定就無法改變
//t.B=91;//出錯(cuò),final變量的值一旦給定就無法改變
//t.C=81;//出錯(cuò),final變量的值一旦給定就無法改變
//t.D=71;//出錯(cuò),final變量的值一旦給定就無法改變
System.out.println(t.A);System.out.println(t.B);
System.out.println(t.C);//不推薦用對(duì)象方式訪問靜態(tài)字段
System.out.println(t.D);//不推薦用對(duì)象方式訪問靜態(tài)字段
System.out.println(Test3.C);System.out.println(Test3.D);
//System.out.println(Test3.E);//出錯(cuò),因?yàn)镋為final空白,依據(jù)不同對(duì)象值有所不同.System.out.println(t.E);
Test3 t1 = new Test3(3);
System.out.println(t1.E);//final空白變量E依據(jù)對(duì)象的不同而不同
}
private void test(){
System.out.println(new Test3(1).A);System.out.println(Test3.C);System.out.println(Test3.D);}
public void test2(){
final int a;//final空白,在需要的時(shí)候才賦值
final int b = 4;//局部常量--final用于局部變量的情形
final int c;//final空白,一直沒有給賦值.a = 3;
//a=4;出錯(cuò),已經(jīng)給賦過值了.//b=2;出錯(cuò),已經(jīng)給賦過值了.} }
4、final參數(shù)
當(dāng)函數(shù)參數(shù)為final類型時(shí),你可以讀取使用該參數(shù),但是無法改變?cè)搮?shù)的值。
public class Test4 {
public static void main(String[] args){
new Test4().f1(2);}
public void f1(final int i){
//i++;//i是final類型的,值不允許改變的.System.out.print(i);} }
二、static
static表示“全局”或者“靜態(tài)”的意思,用來修飾成員變量和成員方法,也可以形成靜態(tài)static代碼塊,但是Java語言中沒有全局變量的概念。
被static修飾的成員變量和成員方法獨(dú)立于該類的任何對(duì)象。也就是說,它不依賴類特定的實(shí)例,被類的所有實(shí)例共享。只要這個(gè)類被加載,Java虛擬機(jī)就能根據(jù)類名在運(yùn)行數(shù)據(jù)區(qū)的方法區(qū)內(nèi)定找到他們。因此,static對(duì)象可以在它的任何對(duì)象創(chuàng)建之前訪問,無需引用任何對(duì)象。
用public修飾的static成員變量和成員方法本質(zhì)是全局變量和全局方法,當(dāng)聲明它類的對(duì)象時(shí),不生成static變量的副本,而是類的所有實(shí)例共享同一個(gè)static變量。
static變量前可以有private修飾,表示這個(gè)變量可以在類的靜態(tài)代碼塊中,或者類的其他靜態(tài)成員方法中使用(當(dāng)然也可以在非靜態(tài)成員方法中使用--廢話),但是不能在其他類中通過類名來直接引用,這一點(diǎn)很重要。實(shí)際上你需要搞明白,private是訪問權(quán)限限定,static表示不要實(shí)例化就可以使用,這樣就容易理解多了。static前面加上其它訪問權(quán)限關(guān)鍵字的效果也以此類推。
static修飾的成員變量和成員方法習(xí)慣上稱為靜態(tài)變量和靜態(tài)方法,可以直接通過類名來訪問,訪問語法為: 類名.靜態(tài)方法名(參數(shù)列表...)類名.靜態(tài)變量名
用static修飾的代碼塊表示靜態(tài)代碼塊,當(dāng)Java虛擬機(jī)(JVM)加載類時(shí),就會(huì)執(zhí)行該代碼塊(用處非常大,呵呵)。
1、static變量
按照是否靜態(tài)的對(duì)類成員變量進(jìn)行分類可分兩種:一種是被static修飾的變量,叫靜態(tài)變量或類變量;另一種是沒有被static修飾的變量,叫實(shí)例變量。兩者的區(qū)別是:
對(duì)于靜態(tài)變量在內(nèi)存中只有一個(gè)拷貝(節(jié)省內(nèi)存),JVM只為靜態(tài)分配一次內(nèi)存,在加載類的過程中完成靜態(tài)變量的內(nèi)存分配,可用類名直接訪問(方便),當(dāng)然也可以通過對(duì)象來訪問(但是這是不推薦的)。
對(duì)于實(shí)例變量,沒創(chuàng)建一個(gè)實(shí)例,就會(huì)為實(shí)例變量分配一次內(nèi)存,實(shí)例變量可以在內(nèi)存中有多個(gè)拷貝,互不影響(靈活)。
2、靜態(tài)方法
靜態(tài)方法可以直接通過類名調(diào)用,任何的實(shí)例也都可以調(diào)用,因此靜態(tài)方法中不能用this和super關(guān)鍵字,不能直接訪問所屬類的實(shí)例變量和實(shí)例方法(就是不帶static的成員變量和成員成員方法),只能訪問所屬類的靜態(tài)成員變量和成員方法。因?yàn)閷?shí)例成員與特定的對(duì)象關(guān)聯(lián)!這個(gè)需要去理解,想明白其
中的道理,不是記憶!!
因?yàn)閟tatic方法獨(dú)立于任何實(shí)例,因此static方法必須被實(shí)現(xiàn),而不能是抽象的abstract。
3、static代碼塊
static代碼塊也叫靜態(tài)代碼塊,是在類中獨(dú)立于類成員的static語句塊,可以有多個(gè),位置可以隨便放,它不在任何的方法體內(nèi),JVM加載類時(shí)會(huì)執(zhí)行這些靜態(tài)的代碼塊,如果static代碼塊有多個(gè),JVM將按照它們?cè)陬愔谐霈F(xiàn)的先后順序依次執(zhí)行它們,每個(gè)代碼塊只會(huì)被執(zhí)行一次。例如:
public class Test5 {
private static int a;
private int b;
static {
Test5.a = 3;
System.out.println(a);Test5 t = new Test5();t.f();t.b = 1000;
System.out.println(t.b);}
static {
Test5.a = 4;
System.out.println(a);}
public static void main(String[] args){
// TODO 自動(dòng)生成方法存根
}
static {
Test5.a = 5;
System.out.println(a);}
public void f(){
System.out.println(“hhahhahah”);} }
運(yùn)行結(jié)果: 3 hhahhahah 1000 4 5
利用靜態(tài)代碼塊可以對(duì)一些static變量進(jìn)行賦值,最后再看一眼這些例子,都一個(gè)static的main方法,這樣JVM在運(yùn)行main方法的時(shí)候可以直接調(diào)用而不用創(chuàng)建實(shí)例。
4、static和final一塊用表示什么
static final用來修飾成員變量和成員方法,可簡(jiǎn)單理解為“全局常量”!
對(duì)于變量,表示一旦給值就不可修改,并且通過類名可以訪問。
對(duì)于方法,表示不可覆蓋,并且可以通過類名直接訪問。
特別要注意一個(gè)問題:
對(duì)于被static和final修飾過的實(shí)例常量,實(shí)例本身不能再改變了,但對(duì)于一些容器類型(比如,ArrayList、HashMap)的實(shí)例變量,不可以改變?nèi)萜髯兞勘旧?,但可以修改容器中存放的?duì)象,這一點(diǎn)在編程中用到很多。
也許說了這么多,反倒把你搞暈了,還是看個(gè)例子吧:
public class TestStaticFinal {
private static final String strStaticFinalVar = “aaa”;
private static String strStaticVar = null;
private final String strFinalVar = null;
private static final int intStaticFinalVar = 0;
private static final Integer integerStaticFinalVar = new Integer(8);
private static final ArrayList
private void test(){
System.out.println(“-------------值處理前----------rn”);
System.out.println(“strStaticFinalVar=” + strStaticFinalVar + “rn”);
System.out.println(“strStaticVar=” + strStaticVar + “rn”);System.out.println(“strFinalVar=” + strFinalVar + “rn”);
System.out.println(“intStaticFinalVar=” + intStaticFinalVar + “rn”);
System.out.println(“integerStaticFinalVar=” + integerStaticFinalVar + “rn”);
System.out.println(“alStaticFinalVar=” + alStaticFinalVar + “rn”);
//strStaticFinalVar=“哈哈哈哈”;//錯(cuò)誤,final表示終態(tài),不可以改變變量本身.strStaticVar = “哈哈哈哈”;//正確,static表示類變量,值可以改變.//strFinalVar=“呵呵呵呵”;//錯(cuò)誤, final表示終態(tài),在定義的時(shí)候就要初值(哪怕給個(gè)null),一旦給定后就不可再更改。
//intStaticFinalVar=2;//錯(cuò)誤, final表示終態(tài),在定義的時(shí)候就要初值(哪怕給個(gè)null),一旦給定后就不可再更改。
//integerStaticFinalVar=new Integer(8);//錯(cuò)誤, final表示終態(tài),在定義的時(shí)候就要初值(哪怕給個(gè)null),一旦給定后就不可再更改。
alStaticFinalVar.add(“aaa”);//正確,容器變量本身沒有變化,但存放內(nèi)容發(fā)生了變化。這個(gè)規(guī)則是非常常用的,有很多用途。
alStaticFinalVar.add(“bbb”);//正確,容器變量本身沒有變化,但存放內(nèi)容發(fā)生了變化。這個(gè)規(guī)則是非常常用的,有很多用途。
System.out.println(“-------------值處理后----------rn”);
System.out.println(“strStaticFinalVar=” + strStaticFinalVar + “rn”);
System.out.println(“strStaticVar=” + strStaticVar + “rn”);System.out.println(“strFinalVar=” + strFinalVar + “rn”);
System.out.println(“intStaticFinalVar=” + intStaticFinalVar + “rn”);
System.out.println(“integerStaticFinalVar=” + integerStaticFinalVar + “rn”);
System.out.println(“alStaticFinalVar=” + alStaticFinalVar + “rn”);}
public static void main(String args[]){
new TestStaticFinal().test();} }
運(yùn)行結(jié)果如下:
-------------值處理前----------strStaticFinalVar=aaa strStaticVar=null strFinalVar=null intStaticFinalVar=0 integerStaticFinalVar=8 alStaticFinalVar=[]-------------值處理后----------strStaticFinalVar=aaa strStaticVar=哈哈哈哈 strFinalVar=null
intStaticFinalVar=0 integerStaticFinalVar=8 alStaticFinalVar=[aaa, bbb]
Process finished with exit code 0
看了上面這個(gè)例子,就清楚很多了,但必須明白:通過static final修飾的容器類型變量中所“裝”的對(duì)象是可改變的。這是和一般基本類型和類類型變量差別很大的地方。
第二篇:Java關(guān)鍵字final、static使用總結(jié)
Java關(guān)鍵字final、static使用總結(jié)
一、final
根據(jù)程序上下文環(huán)境,Java關(guān)鍵字final有“這是無法改變的”或者“終態(tài)的”含義,它可以修飾非抽象類、非抽象類成員方法和變量。你可能出于兩種理解而需要阻止改變:設(shè)計(jì)或效率。
final類不能被繼承,沒有子類,final類中的方法默認(rèn)是final的。
final方法不能被子類的方法覆蓋,但可以被繼承。
final成員變量表示常量,只能被賦值一次,賦值后值不再改變。
final不能用于修飾構(gòu)造方法。
注意:父類的private成員方法是不能被子類方法覆蓋的,因此private類型的方法默認(rèn)是final類型的。
1、final類
final類不能被繼承,因此final類的成員方法沒有機(jī)會(huì)被覆蓋,默認(rèn)都是final的。在設(shè)計(jì)類時(shí)候,如果這個(gè)類不需要有子類,類的實(shí)現(xiàn)細(xì)節(jié)不允許改變,并且確信這個(gè)類不會(huì)載被擴(kuò)展,那么就設(shè)計(jì)為final類。
2、final方法
如果一個(gè)類不允許其子類覆蓋某個(gè)方法,則可以把這個(gè)方法聲明為final方法。
使用final方法的原因有二:
第一、把方法鎖定,防止任何繼承類修改它的意義和實(shí)現(xiàn)。
第二、高效。編譯器在遇到調(diào)用final方法時(shí)候會(huì)轉(zhuǎn)入內(nèi)嵌機(jī)制,大大提高執(zhí)行效率。
3、final變量(常量)
用final修飾的成員變量表示常量,值一旦給定就無法改變!
final修飾的變量有三種:靜態(tài)變量、實(shí)例變量和局部變量,分別表示三種類型的常量。
從下面的例子中可以看出,一旦給final變量初值后,值就不能再改變了。
另外,final變量定義的時(shí)候,可以先聲明,而不給初值,這中變量也稱為final空白,無論什么情況,編譯器都確??瞻譮inal在使用之前必須被初始化。但是,final空白在final關(guān)鍵字final的使用上提供了更大的靈活性,為此,一個(gè)類中的final數(shù)據(jù)成員就可以實(shí)現(xiàn)依對(duì)象而有所不同,卻有保持其恒定不變的特征。
4、final參數(shù)
當(dāng)函數(shù)參數(shù)為final類型時(shí),你可以讀取使用該參數(shù),但是無法改變?cè)搮?shù)的值。
二、static
static表示“全局”或者“靜態(tài)”的意思,用來修飾成員變量和成員方法,也可以形成靜態(tài)static代碼塊,但是Java語言中沒有全局變量的概念。
被static修飾的成員變量和成員方法獨(dú)立于該類的任何對(duì)象。也就是說,它不依賴類特定的實(shí)例,被類的所有實(shí)例共享。只要這個(gè)類被加載,Java虛擬機(jī)就能根據(jù)類名在運(yùn)行時(shí)數(shù)據(jù)區(qū)的方法區(qū)內(nèi)定找到他們。因此,static對(duì)象可以在它的任何對(duì)象創(chuàng)建之前訪問,無需引用任何對(duì)象。
用public修飾的static成員變量和成員方法本質(zhì)是全局變量和全局方法,當(dāng)聲明它類的對(duì)象時(shí),不生成static變量的副本,而是類的所有實(shí)例共享同一個(gè)static變量。
static變量前可以有private修飾,表示這個(gè)變量可以在類的靜態(tài)代碼塊中,或者類的其他靜態(tài)成員方法中使用(當(dāng)然也可以在非靜態(tài)成員方法中使用--廢話),但是不能在其他類中通過類名來直接引用,這一點(diǎn)很重要。實(shí)際上你需要搞明白,private是訪問權(quán)限限定,static表示不要實(shí)例化就可以使用,這樣就容易理解多了。static前面加上其它訪問權(quán)限關(guān)鍵字的效果也以此類推。
static修飾的成員變量和成員方法習(xí)慣上稱為靜態(tài)變量和靜態(tài)方法,可以直接通過類名來訪問,訪問語法為:
類名.靜態(tài)方法名(參數(shù)列表...)
類名.靜態(tài)變量名
用static修飾的代碼塊表示靜態(tài)代碼塊,當(dāng)Java虛擬機(jī)(JVM)加載類時(shí),就會(huì)執(zhí)行該代碼塊(用處非常大,呵呵)。
1、static變量
按照是否靜態(tài)的對(duì)類成員變量進(jìn)行分類可分兩種:一種是被static修飾的變量,叫靜態(tài)變量或類變量;另一種是沒有被static修飾的變量,叫實(shí)例變量。兩者的區(qū)別是:
對(duì)于靜態(tài)變量在內(nèi)存中只有一個(gè)拷貝(節(jié)省內(nèi)存),JVM只為靜態(tài)分配一次內(nèi)存,在加載類的過程中完成靜態(tài)變量的內(nèi)存分配,可用類名直接訪問(方便),當(dāng)然也可以通過對(duì)象來訪問(但是這是不推薦的)。
對(duì)于實(shí)例變量,沒創(chuàng)建一個(gè)實(shí)例,就會(huì)為實(shí)例變量分配一次內(nèi)存,實(shí)例變量可以在內(nèi)存中有多個(gè)拷貝,互不影響(靈活)。
2、靜態(tài)方法
靜態(tài)方法可以直接通過類名調(diào)用,任何的實(shí)例也都可以調(diào)用,因此靜態(tài)方法中不能用this和super關(guān)鍵字,不能直接訪問所屬類的實(shí)例變量和實(shí)例方法(就是不帶static的成員變量和成員成員方法),只能訪問所屬類的靜態(tài)成員變量和成員方法。因?yàn)閷?shí)例成員與特定的對(duì)象關(guān)聯(lián)!這個(gè)需要去理解,想明白其中的道理,不是記憶??!
因?yàn)閟tatic方法獨(dú)立于任何實(shí)例,因此static方法必須被實(shí)現(xiàn),而不能是抽象的abstract。
3、static代碼塊
static代碼塊也叫靜態(tài)代碼塊,是在類中獨(dú)立于類成員的static語句塊,可以有多個(gè),位置可以隨便放,它不在任何的方法體內(nèi),JVM加載類時(shí)會(huì)執(zhí)行這些靜態(tài)的代碼塊,如果static代碼塊有多個(gè),JVM將按照它們?cè)陬愔谐霈F(xiàn)的先后順序依次執(zhí)行它們,每個(gè)代碼塊只會(huì)被執(zhí)行一次。
利用靜態(tài)代碼塊可以對(duì)一些static變量進(jìn)行賦值,最后再看一眼這些例子,都一個(gè)static的main方法,這樣JVM在運(yùn)行main方法的時(shí)候可以直接調(diào)用而不用創(chuàng)建實(shí)例。
4、static和final一塊用表示什么
static final用來修飾成員變量和成員方法,可簡(jiǎn)單理解為“全局常量”!
對(duì)于變量,表示一旦給值就不可修改,并且通過類名可以訪問。
對(duì)于方法,表示不可覆蓋,并且可以通過類名直接訪問。
文章轉(zhuǎn)自 :山東北大青鳥 http://www.tmdps.cn
http://www.tmdps.cn
第三篇:關(guān)于static的總結(jié)
static局部變量:
1、改變了變量的存儲(chǔ)方式(從棧區(qū)變成全局區(qū)),即改變了變量的生命周期。
2、static局部變量只初始化一次,沒有顯示初始化時(shí)默認(rèn)為0,在某個(gè)函數(shù)中,下一次的值依據(jù)上一次的值。
static全局變量
1、全局變量前面加上static,存儲(chǔ)方式?jīng)]有改變。
2、static全局變量改變了作用域,限制了使用范圍,只能在定義了該變量的源文件有效,在同一源程序的不同源文件中不能使用,即本地的全局變量。非靜態(tài)全局變量在同一源程序的不同源文件中都是有效的。
3、static全局變量只初始化一次,沒有顯示初始化時(shí)默認(rèn)為0。
static函數(shù)
1、static函數(shù)限制了使用范圍,只能在當(dāng)前源文件中使用,相當(dāng)于內(nèi)部函數(shù)。c++類中,為了避免不同類中相同名字函數(shù)的重定義錯(cuò)誤,在函數(shù)前面加上static。
2、static函數(shù)在內(nèi)存中只保存一份,普通函數(shù)在每個(gè)被調(diào)用中維持一份拷貝
注:引用一個(gè)已經(jīng)定義過的全局變量:
1、引用頭文件
將全局變量寫錯(cuò)了,將會(huì)在編譯的時(shí)候報(bào)錯(cuò)。
在不同的.c文件中以static形式聲明同名的全局變量,在不同的.c文件中聲明同名 全局變量時(shí),只能有一個(gè).c文件中對(duì)其賦值,否則鏈接出錯(cuò)。
2、extern關(guān)鍵字
將全局變量寫錯(cuò)了,編譯的時(shí)候不會(huì)報(bào)錯(cuò),鏈接的時(shí)候會(huì)報(bào)錯(cuò)。
第四篇:java中常用關(guān)鍵字總結(jié)
Java中的關(guān)鍵字總結(jié)
final 關(guān)鍵字
1、用final修飾的類不能被繼承,沒有子類;
2、用final修飾的方法,方法不能被重寫;
3、用final修飾變量,變量的值不能被修改,表示常量,(書寫規(guī)范:全部字母都要大寫;多個(gè)單詞,可以使用下劃線(_)分開;)注意:如果被final修飾的變量是一個(gè)引用類型的數(shù)據(jù),那么通過這個(gè)引用改變堆空間中的數(shù)據(jù),不會(huì)報(bào)錯(cuò);如果被final修飾的變量是一個(gè)引用類型的數(shù)據(jù),那么通過這個(gè)引用改變堆空間中的數(shù)據(jù),不會(huì)報(bào)錯(cuò);
4、final用于成員變量表示該成員變量為常量,不能被修改,必須在變量定義時(shí)賦值。
5、final用于局部變量表示該局部變量為常量,不能被修改,可以在變量定義時(shí)賦值,也可以先定義變量后賦值。什么時(shí)候用final關(guān)鍵字? 有的時(shí)候不想別人重寫我的方法就使用final關(guān)鍵字修飾該方法;
static關(guān)鍵字
1、static用于成員變量表示該變量只有一份,也就是說靜態(tài)成員變量屬于類而不屬于某個(gè)具體的類實(shí)例對(duì)象,所有的類實(shí)例對(duì)象共享這個(gè)靜態(tài)成員變量; 靜態(tài)函數(shù)是不需要對(duì)象的,直接可以使用類名來調(diào)用;
2、非靜態(tài)函數(shù)可以調(diào)用靜態(tài)函數(shù);靜態(tài)函數(shù)不能調(diào)用非靜態(tài)函數(shù)(非靜態(tài)函數(shù)都是通過對(duì)象調(diào)用的);靜態(tài)函數(shù)不能使用非靜態(tài)成員變量,但可以使用靜態(tài)成員變量;
3、靜態(tài)函數(shù)調(diào)用時(shí)不需要對(duì)象的,所以不能使用和對(duì)象有關(guān)的關(guān)鍵字;(this;super;)
4、構(gòu)造函數(shù)不能使用static修飾(構(gòu)造函數(shù)是創(chuàng)建對(duì)象,開辟空間,給所有成員變量賦默認(rèn)值之后,有JVM調(diào)用進(jìn)棧,用來給對(duì)象的成員變量賦初始值的)static用于類,這里指的是內(nèi)部類,那么在別的地方就可以通過外部類名來引用這個(gè)靜態(tài)的內(nèi)部類。
5、static還可以用于類的代碼塊,叫做靜態(tài)代碼塊,靜態(tài)代碼塊在類加載的時(shí)候就執(zhí)行完畢,而類只加載一次;是在類中獨(dú)立于類成員的static語句塊,可以有多個(gè),位置可以隨便放,它不在任何的方法體內(nèi),JVM加載類時(shí)會(huì)執(zhí)行這些靜態(tài)的代碼塊,如果static代碼塊有多個(gè),JVM將按照它們?cè)陬愔谐霈F(xiàn)的先后順序依次執(zhí)行它們,每個(gè)代碼塊只會(huì)被執(zhí)行一次。什么時(shí)候用static關(guān)鍵字? 不想建立對(duì)象時(shí);對(duì)于公用的成員變量必須使用static關(guān)鍵字修飾才能保證共享;
private關(guān)鍵字
1、java中的訪問權(quán)限修飾符(作用是控制被修飾的成員的訪問權(quán)限);被private修飾的成員,只能在本類中使用;所以被私有的成員需要在外界訪問,還需要提供一個(gè)公共的方法;
設(shè)值:set + 變量名(變量名的首字母大寫); 取值:get + 變量名(變量名的首字母大寫);
2、構(gòu)造函數(shù)私有化,就只能在被類中使用,別的地方調(diào)用不了;單例設(shè)計(jì)模式時(shí)會(huì)用到;
在開發(fā)中,一般類的成員變量都要私有化,然后提供get和set方法;
interface關(guān)鍵字
1、interface接口不是一個(gè)類,使用interface聲明;接口沒有構(gòu)造函數(shù);接口是用來描述不屬于繼承體系的擴(kuò)展功能的;還可以定義規(guī)則;接口和類之間是實(shí)現(xiàn)關(guān)系,一個(gè)實(shí)現(xiàn)類可以實(shí)現(xiàn)多個(gè)接口;接口和接口之間是繼承關(guān)系,可以多繼承和多重繼承;
2、接口中可以書寫的內(nèi)容:
成員變量:只能使用一下修飾符:public static final;也就是說,接口中的成員變量,都是常量;
成員函數(shù): 只能使用修飾符:public abstract;也就是說,接口中的方法,都是公共和抽象的;一般函數(shù)前面的修飾符,推薦public不要省略;
什么時(shí)候用interface關(guān)鍵字? 對(duì)于繼承體系之外的擴(kuò)展功能需要使用接口來描述;
implements關(guān)鍵字
implements用于實(shí)現(xiàn)接口,需要實(shí)現(xiàn)接口中的所有方法,可以同時(shí)實(shí)現(xiàn)多個(gè)接口。extends關(guān)鍵字
extends用于繼承父類或父接口,繼承父類時(shí)只能是單繼承。
class關(guān)鍵字
class用于聲明類,訪問權(quán)限可以是public或者默認(rèn)權(quán)限,還可以指定為abstract、final,訪問權(quán)限對(duì)于頂層類和內(nèi)部類的限制是不同的。
instanceof關(guān)鍵字
1、比較運(yùn)算符,運(yùn)算符左邊是一個(gè)指向一個(gè)對(duì)象的引用(左邊就是一個(gè)變量名),右邊是一個(gè)類名,運(yùn)算符表示的意思就是:判斷左邊的對(duì)象的類型是不是右邊的類;
2、使用instanceof關(guān)鍵字,可以實(shí)時(shí)判斷一個(gè)對(duì)象的類型,就可以避免強(qiáng)制類型轉(zhuǎn)換中容易出現(xiàn)的類型轉(zhuǎn)換異常。
abstract關(guān)鍵字
1、abstract用于類表示這個(gè)類為抽象類,不能實(shí)例化。
2、抽象類,必須由子類去繼承,繼承的子類必須實(shí)現(xiàn)父類中所有的抽象方法,否則子類也是抽象的;
3、抽象函數(shù)必須放在抽象類中;抽象類中除了抽象函數(shù),還可以定義所有一般類中可以定義的成員;
4、抽象類中可以不書寫抽象方法;抽象類中必須有構(gòu)造方法;抽象類一定是父類;
5、抽象類是父類,用來描述所有子類的共性信息的,只是描述的有些功能是不具體的;
6、abstract用于方法表示這個(gè)方法為抽象方法,只需聲明,不用實(shí)現(xiàn),由子類實(shí)現(xiàn),抽象方法不能用private和static關(guān)鍵字。什么時(shí)候用abstract關(guān)鍵字? 當(dāng)事物的功能描述不清,只能表示有這個(gè)功能時(shí),就應(yīng)該使用抽象修飾該功能,這個(gè)功能就是抽象的功能;如果一個(gè)類中有抽象的功能,那么這個(gè)類也是抽象的類;不想實(shí)例化這個(gè)類(包括自己也不行),但是允許別人繼承,也可以使用抽象類。
this關(guān)鍵字
1、表示自身所屬對(duì)象的引用;哪個(gè)對(duì)象調(diào)用this,this就指向哪個(gè)對(duì)象;
2、Java關(guān)鍵字this只能用于方法方法體內(nèi)。當(dāng)一個(gè)對(duì)象創(chuàng)建后,Java虛擬機(jī)(JVM)就會(huì)給這個(gè)對(duì)象分配一個(gè)引用自身的指針,這個(gè)指針的名字就是this。因此,this只能在類中的非靜態(tài)方法中使用,靜態(tài)方法和靜態(tài)的代碼塊中絕對(duì)不能出現(xiàn)this.什么時(shí)候用this關(guān)鍵字?
1、通過this調(diào)用另一個(gè)構(gòu)造方法,用法:this(參數(shù)列表),這個(gè)僅僅在類的構(gòu)造方法中,別的地方不能這么用。如果一個(gè)構(gòu)造函數(shù)中有this()語句,就沒有隱式三步,隱式三步在this語句調(diào)用的那個(gè)構(gòu)造函數(shù)中,且this語句必須在第一行的位置;
2、函數(shù)參數(shù)或者函數(shù)中的局部變量和成員變量同名的情況下,成員變量被私有化,此時(shí)要訪問成員變量則需要用“this.成員變量名”的方式來引用成員變量。(用來區(qū)分成員變量和局部變量)
3、在函數(shù)中,需要引用該函所屬類的當(dāng)前對(duì)象時(shí)候,直接用this。
super關(guān)鍵字
1、表示父類;可以在子類中調(diào)用父類的非私有成員和構(gòu)造函數(shù);
2、調(diào)用方法:
調(diào)用父類構(gòu)造函數(shù):super(參數(shù));(父類中沒有無參構(gòu)造函數(shù)在父類中添
加一個(gè)無參構(gòu)造;在子類中手動(dòng)調(diào)用有參構(gòu)造函數(shù))調(diào)用父類成員變量:super.變量名; 調(diào)用父類成員函數(shù):super.函數(shù)名(參數(shù));
3、super關(guān)鍵和this作用類似,是被私有的成員變量或者成員方法變?yōu)榭梢?,或者說用來引用被私有的成員變量和成員方法,不過super是用在子類中,目的是訪問直接父類中被屏蔽的成員.什么時(shí)候用super關(guān)鍵字?
如果父類中沒有無參構(gòu)造函數(shù)是,需要在子類中用super調(diào)用有參構(gòu)造函數(shù);
第五篇:實(shí)習(xí)個(gè)人總結(jié) final
實(shí)習(xí)個(gè)人總結(jié)
教育實(shí)習(xí)是提高師范教育專業(yè)學(xué)生素質(zhì)和技能的重要途徑之一。通過教育實(shí)習(xí)可以進(jìn)一步培養(yǎng)鍛煉學(xué)生理論聯(lián)系實(shí)際和分析問題、解決問題的能力,使學(xué)生了解中學(xué)實(shí)際,獲得教師職業(yè)的初步實(shí)際知識(shí)和能力,從而縮短從教適應(yīng)期,為今后走上工作崗位打下良好的基礎(chǔ)。同時(shí),還可以使我院加強(qiáng)與中學(xué)的聯(lián)系,了解和學(xué)習(xí)中學(xué)教育教學(xué)改革的經(jīng)驗(yàn),檢查我院教育教學(xué)質(zhì)量,進(jìn)而推動(dòng)我院的教學(xué)改革和教育科學(xué)的研究工作。
在重慶市兼善中學(xué)實(shí)習(xí)的這十六周里,我主要完成了以下三個(gè)方面的實(shí)習(xí)內(nèi)容,包括英語教學(xué)、班主任工作和基礎(chǔ)教育調(diào)查三個(gè)方面。
一、英語教學(xué)
(1)見習(xí)
在初來到兼善中學(xué)的兩周見習(xí)階段內(nèi),我堅(jiān)持認(rèn)真挺好指導(dǎo)教師的每一節(jié)課,做好聽課記錄,學(xué)習(xí)指導(dǎo)教師的教學(xué)方法、上課方式及教學(xué)思路,課后一起與原任老師深入探討,虛心求教,深入了解課堂教學(xué)的要求和過程,學(xué)習(xí)如何備教材、背學(xué)生。
(2)備課及試講
我所實(shí)習(xí)的班級(jí),學(xué)生水平參差不齊。因此,在備課過程中,我特別注重對(duì)基本知識(shí)和基本理論的強(qiáng)調(diào)。充分運(yùn)用長期的家教所得、聽課心得,結(jié)合當(dāng)前考試方向制定教學(xué)計(jì)劃,進(jìn)行試講,得到指導(dǎo)教師的肯定后,正式走上講臺(tái)。
(3)上課
第一次走上講臺(tái),緊張中還帶有些許激動(dòng)。經(jīng)過精心備課,本節(jié)課完成了教學(xué)內(nèi)容,取得了一定的成績(jī)。課程的講授取得了指導(dǎo)教師的好評(píng),但是也指出了我的一些不足。后來的講課的表現(xiàn)比第一次好了很多,教態(tài)更加自然、表達(dá)更加流利、知識(shí)的講授更加的清晰,一次次指導(dǎo)教師的肯定都成為我努力的源動(dòng)力。前幾次的講課都是借助多媒體教學(xué)設(shè)備的,后來周老師的一席話讓我決心嘗試運(yùn)用傳統(tǒng)方式進(jìn)行教學(xué),即收音機(jī)、粉筆和黑板。而后的兩次傳統(tǒng)課得到了指導(dǎo)教·師的好評(píng),且被認(rèn)為比多媒體教學(xué)表現(xiàn)得更棒。一次次的講課都在增強(qiáng)自己作為一個(gè)準(zhǔn)人民教師的自信心,相信自己可以做好一名合格的英語教師。
(4)課后反思
盡管自己的課總體上獲得了指導(dǎo)教師的肯定,但指導(dǎo)教師同時(shí)指出我的課有諸多不足之處,如:學(xué)生回答問題之后的反饋,某些活動(dòng)的設(shè)計(jì)的目的性不強(qiáng),提問的策略欠缺等,在課后努力改正,提高教學(xué)水平,從而確保在下一次的教學(xué)過程中不出現(xiàn)同樣的錯(cuò)誤,在這樣的努力下,我在教態(tài)、語言、板書、提問技巧、與學(xué)生互動(dòng)各方面都有了提高。
(5)作業(yè)及試卷批改
在實(shí)習(xí)期間,認(rèn)真批改每一次學(xué)生作業(yè),針對(duì)學(xué)生的不同水平,給予不同要求,并對(duì)其給予個(gè)性化評(píng)語,以鼓勵(lì)后進(jìn)生和促進(jìn)所有學(xué)生進(jìn)步;針對(duì)考試試卷,及時(shí)分析試卷,找出學(xué)生的知識(shí)不足,把握教學(xué)的重點(diǎn),以期在后續(xù)的教學(xué)過程中予以改進(jìn)。
二、班主任工作
試作初期我就制定了班主任工作計(jì)劃,接下來我就按我的計(jì)劃展開班主任工作。
每天我的日常工作有:一是早自習(xí)前的考勤和值日情況監(jiān)督,每天早上7:30到教室查看考勤和監(jiān)督學(xué)生值日情況,督促學(xué)生把清潔區(qū)、教室的每個(gè)角落打掃干凈;二是跟操,周一、周三和周五大課間到操場(chǎng)督促學(xué)生認(rèn)真做操,周二、周四在教室監(jiān)督學(xué)生確保其認(rèn)真做眼保健操;三是下午第四節(jié)課和晚上的自習(xí)課,我都下班,管好紀(jì)律,輔導(dǎo)個(gè)別學(xué)生。
通過每天的工作,主動(dòng)關(guān)心學(xué)生的學(xué)習(xí)、生活情況,很快就熟悉和掌握了班級(jí)及學(xué)生的情況和特點(diǎn),使班主任工作得以順利展開。在管理班級(jí)期間,我們組織了一次趣味運(yùn)動(dòng)會(huì),增進(jìn)了班級(jí)的凝聚力,給了他們一次展示新時(shí)代中學(xué)生蓬勃朝氣和競(jìng)技熱情的機(jī)會(huì)。經(jīng)過不懈的努力,我與學(xué)生建立了良好的師生關(guān)系,得到了他們的信任,成為他們?cè)V說心事的對(duì)象,我也誠懇的傾聽他們的傾訴并開導(dǎo)他們。
四月底,期中考試結(jié)束之際,期末將要到來之時(shí),以“一切為了孩子,為了孩子的一切,為了一切的孩子”為宗旨,我們?cè)陴埨蠋煹膸ьI(lǐng)下進(jìn)行了一場(chǎng)特殊家長會(huì),我們不拋棄、不放棄任何一個(gè)學(xué)生,不以成績(jī)看人、區(qū)分人,旨在將所有學(xué)生培養(yǎng)成為一名合格的人。
在實(shí)習(xí)工作中,我還著重做了幾位同學(xué)的思想工作,幫助他們克服思想波動(dòng),在青春叛逆期,引導(dǎo)他們樹立正確的人生觀、價(jià)值觀,并對(duì)其進(jìn)行課業(yè)輔導(dǎo),等等。因此,在饒老師的細(xì)心指導(dǎo)下,我學(xué)到了許多本上沒有的東西,積累了許多班級(jí)的管理方法,并有了一定的班主任工作經(jīng)驗(yàn),為日后走上工作崗位打下了堅(jiān)實(shí)的基礎(chǔ)。
三、基礎(chǔ)教育調(diào)查報(bào)告
進(jìn)入兼善學(xué)校之后,綜合兼善學(xué)校的現(xiàn)狀及學(xué)生特點(diǎn)我做了細(xì)致的分析,同準(zhǔn)備階段的教育調(diào)查計(jì)劃一并制定了本次教育調(diào)查的主題及調(diào)查步驟,展開教育調(diào)查,并同周邊的幾所中學(xué)的實(shí)際情況相結(jié)合,作了此次報(bào)告。
此次調(diào)查報(bào)告的方向重點(diǎn)是如何提高課堂氣氛、調(diào)動(dòng)學(xué)生的學(xué)習(xí)積極性。我聽取了學(xué)生的一些意見,請(qǐng)教了一些教學(xué)經(jīng)驗(yàn)豐富的教師,查詢了相關(guān)的研究文獻(xiàn),并結(jié)合了當(dāng)前《課程標(biāo)準(zhǔn)》完成了教育調(diào)查報(bào)告,報(bào)告得到了指導(dǎo)老師的認(rèn)可。
以上三方面的內(nèi)容是我在實(shí)習(xí)期間完成的?;貞浭艿募嫔茖?shí)習(xí),使我深深體會(huì)到,要想成為一名合格的人民教師,這并非易事。除了需要具備深厚的專業(yè)學(xué)識(shí)外,其他各方面如語言表達(dá)、心理狀態(tài)、以及衣著、動(dòng)作神態(tài)等也是有講究的;當(dāng)然,通過此次實(shí)習(xí)我更是體會(huì)到了當(dāng)一名教師的快樂與幸福,多年所學(xué),終于有了將其傳輸給他人的途徑,而且與學(xué)生在一起,我會(huì)回憶起自己中學(xué)時(shí)代,也會(huì)想起自己曾經(jīng)的點(diǎn)點(diǎn)滴滴。實(shí)習(xí)有苦樂并存,兼具歡笑和淚水,實(shí)習(xí)經(jīng)歷讓我增長了知識(shí),豐富了經(jīng)驗(yàn);其帶來的是無價(jià)的人生閱歷。最主要的是實(shí)習(xí)堅(jiān)定了我的從教信念,他日將為邊疆的英語教育事業(yè)貢獻(xiàn)出自己微薄的一份力量。待到明秋之時(shí),園我教師之夢(mèng)!