前言:
過了入門階段,開始學(xué)習(xí)進(jìn)階語法了。每天進(jìn)步一點(diǎn)點(diǎn),打好基礎(chǔ),daydayup!
什么是面向?qū)ο缶幊蹋╫op),可以看這篇
java的面向?qū)ο缶幊蹋╫op)概述及案例?
static概述
static的意思為靜態(tài),用于修飾成員變量及成員方法。
成員變量根據(jù)有無static可以分為兩種——類變量及實(shí)例變量
public class demo {
static String name;//類變量
int age ;//實(shí)例變量
}
1,類變量
類變量屬于類,與類一起加載一次,在內(nèi)存中只有一份,可以被類和類的所有對象共享。
?使用方法:
1,加載類,使用變量引用
類名 變量名 = new 類名();
變量名.類變量=賦值;
例:根據(jù)上述demo類,編寫如下
demo sc = new demo();
sc.name = "lala";
System.out.println(sc.name);
2,通過類名直接引用類變量
類名.類變量=賦值;
?例:編寫如下
demo.name= "qingwa";
System.out.println(demo.name);
使用注意:
由于只與類加載一次,所以當(dāng)賦值后,新值會替換原來的值
?
?2,實(shí)例變量
?實(shí)例對象屬于對象,每個對象都有一份,只能用對象訪問
使用方法:
加載類,使用變量引用
類名 變量名 = new 類名();
變量名.類變量=賦值;
例:如下
demo sc = new demo();
sc.age = 17;
使用注意:
每次生成類就會加載一次,所以每次賦值都會生成新的數(shù)字
方法根據(jù)有無static可以分為類方法及實(shí)例方法?
public class demo {
public static void student(){//類方法
System.out.println("hhhhhh");
}
public void student1(){//實(shí)例方法
System.out.println("aaaaaaa");
}
}
1,類方法:
有static修飾的成員方法,屬于類方法
使用方法:
1,通過類名直接引用
類名.方法名
例:如下
demo.student();
2,通過加載類再使用變量引用
類名 變量名 = new 類名();
變量名.方法名;
例:如下
demo sc = new demo();
sc.student();
例:兩種方式都能輸出方法?
?
2,實(shí)例方法:
?無static使用的成員方法,屬于對象
使用方法:?
通過加載類再使用變量引用
類名 變量名 = new 類名();
變量名.方法名;
例:如下
demo sd = new demo();
sd.student1();
?
注:main方法也是一種類方法
?static使用場景
static方法可用來做工具類
什么是工具類
?工具類是一種類方法,每一個類方法都是一種功能;提高了代碼的復(fù)用性,提高了開發(fā)效率
為什么用類方法創(chuàng)建工具類,而不是實(shí)例方法
實(shí)例方法需要創(chuàng)建對象來調(diào)用,會浪費(fèi)內(nèi)存
工具類定義時有什么要求
?由于工作類不需要創(chuàng)建對象,所以需要把構(gòu)造器私有化
?代碼塊中static的作用
?代碼塊分為兩種:靜態(tài)代碼塊及實(shí)例代碼塊
1,靜態(tài)代碼塊
格式:
static{}
特點(diǎn):
類加載時會自動執(zhí)行,由于類只加載一次,靜態(tài)代碼塊也只執(zhí)行一次
作用:
完成類的初始化?
?2,實(shí)體類代碼塊
?格式:
{}
?特點(diǎn):
每次創(chuàng)建對象時,執(zhí)行實(shí)例代碼塊,并在構(gòu)造器前執(zhí)行
作用:
和構(gòu)造器一樣,用來完成對象初始化的?
?設(shè)計模式
什么是設(shè)計模式
問題的最優(yōu)解解決方案稱為設(shè)計模式,設(shè)計模式有很多種,先了解單例設(shè)計模式。
?設(shè)計模式之一單例設(shè)計模式
把類的構(gòu)造器私有;定義一個類變量儲存類 的一個對象:提供一個類方法返回對象。其特點(diǎn)為:在獲取類的對象時,對象已經(jīng)創(chuàng)建好了。
注:頻繁使用對象時用餓漢式單例;不頻繁使用對象用懶漢式單例(可以節(jié)省內(nèi)存)
例1:如下(餓漢式單例:先創(chuàng)建出了對象)
public class car {
private static car a = new car();
//定義一個類,儲存一個對象
private car(){
//私有化構(gòu)造器
}
public static car use(){
return a;//返回對象
}
}
例2:如下?(懶漢式單例:使用時在創(chuàng)建對象)
public class moive {
private static moive a;//創(chuàng)建對象
private moive(){
}//私有化構(gòu)造器
private static moive use(){
if (a==null){
a=new moive();//當(dāng)使用時再創(chuàng)建對象
}
return a;//返回值
}
}
?文章來源地址http://www.zghlxwxcb.cn/news/detail-803707.html
整理結(jié)束,撒花?。。?!?
?文章來源:http://www.zghlxwxcb.cn/news/detail-803707.html
?
到了這里,關(guān)于java的面向?qū)ο缶幊蹋╫op)——static概述及初始單例設(shè)計模式的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!