日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程语言 > java >内容正文

java

java4_Java 4

發(fā)布時間:2025/3/21 java 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java4_Java 4 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

1、繼承的問題

子類是父類的一個擴展,子類可以利用父類的屬性與行為,這種情況子類會破壞父類的封裝

為了保持父類良好的封裝性,設(shè)計父類有以下規(guī)則:

如果要把某類設(shè)計為最終類則需要添加final修飾符,或?qū)⒋祟惖臉?gòu)造器聲明為private

2、利用組合實現(xiàn)復(fù)用

組合就是把舊類的對象當(dāng)做新類的屬性嵌入,并用private修飾

public class Animals

{

public Animals()

{

System.out.println("Animals");

}

public void breathe()

{

System.out.println("ha-hu");

}

}

public class Wolf

{

private Animals a;

public Wolf(Animals a)

{

this.a=a;

}

public void run()

{

System.out.println("run");

}

public static void main(String[]args)

{

Animals b=new Animals();

Wolf a=new Wolf(b);

a.run();

}

}

3、初始化塊

前面定義的初始化塊先執(zhí)行,后面的后執(zhí)行

syntax:

[修飾符]{

//...

}

只能使用sattic修飾,稱作靜態(tài)初始化塊

當(dāng)創(chuàng)建一個對象是先調(diào)用初始化塊

靜態(tài)初始化塊對整個類進行初始化

系統(tǒng)會首先執(zhí)行靜態(tài)初始化塊,并會一直回溯到基類再一步一步執(zhí)行靜態(tài)初始化,再執(zhí)行其他

4、基本數(shù)據(jù)類型的包裝類

為什么要用包裝類?

解決8個基本類型變量不能變成Object類型變量的問題,為8個基本類型變量定義了應(yīng)用類型的包裝類。

JDK1.5后提供了自動裝箱與自動拆箱,就可以直接來了,不用這么復(fù)雜了

基本類型變量與字符串之間的轉(zhuǎn)換關(guān)系

5、toString

toString 是Object 類定義的一個方法,用以描述對象的狀態(tài)信息

返回值:對象類的實現(xiàn)類名+@+hashCode

可以依據(jù)實際情況重寫toString

6、==與equals

==比較是一種基本類型的比較符,當(dāng)要對引用類型進行比較時,比較的是是否指向同一個對象,不是值相等

要實現(xiàn)值相等的比較,就要重寫equals

Object提供的equals與==是一樣的,沒有用的,一定要重寫

重寫后有規(guī)定:

1)自反性;

2)傳遞性;

3)對稱性;

4)一致性。

Example:

public boolean equals(Object obj)

{

if(this==obj)

return true;

if(obj!=null&&obj.getClass()==SomeClass.class)

{

SomeClass sc=(SomeClass)obj;

if(compare)

return true;

}

return false;

}

7、類成員

類中只能包含屬性、方法、構(gòu)造器、初始化塊、內(nèi)部類、枚舉類

static不修飾構(gòu)造器

類成員不能訪問實例成員

8、單例類Singleton

一個類只能創(chuàng)建一個實例

把構(gòu)造器用private修飾

需要一個public方法作為這個類的訪問點,同時要將其定義為static

該類還需緩存已創(chuàng)建的對象

class Singleton

{

//使用一個變量來緩存曾經(jīng)創(chuàng)建的實例

private static Singleton instance;

//隱藏構(gòu)造器

private Singleton(){}

//提供一個靜態(tài)方法,用于返回Singleton實例

//可加入自定義的控制,保證只產(chǎn)生一個Singleton

public static Singleton getInstance()

{

if(instance==null)

{

instance=new Singleton();

}

return instance;

}

}

9、final

final修飾的變量賦值后不可改變

final修飾的成員變量必須在類中賦初值

類屬性:在靜態(tài)初始化塊中、在聲明該屬性時指定初始值

實例屬性:在非靜態(tài)初始化塊、聲明屬性、構(gòu)造器中指定初始值

系統(tǒng)不會對final修飾成員進行隱式初始化

final修飾的引用變量只是保證它所指向的地址不改變,而該引用的內(nèi)容是可以改變的

final修飾的方法不可被重寫,但可以重載

final修飾的類不可繼承

10、不可變類

創(chuàng)建該類的實例后,實例的屬性不可改變

8個包裝類、java.lang.String都是不可變類

hashcode返回的是對象地址

final修飾的引用類型變量不符合不可變,那么我們在設(shè)計類的時候必須將此變量保護起來。

11、緩存實例的不可變類

如果程序需要經(jīng)常使用某些實例,則應(yīng)把其緩存

Example:

利用數(shù)組作為緩存池

public class CacheImmutale

{

private final String name;

private static CacheImmutale[]a=new CacheImmutale[10];

private static int pos=0;

public CacheImmutale(String name)

{

this.name=name;

}

public String getName()

{

return name;

}

//利用valueOf創(chuàng)建對象,而不用構(gòu)造器

public static CacheImmutale valueOf(String name)

{

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

{

if(a[i]!=null&&a[i].getName().equals(name))

return a[i];

}

if(pos==10)

{

a[0]=new CacheImmutale(name);

pos=1;

return a[0];

}

else

{

a[pos++]=new CacheImmutale(name);

return a[pos-1];

}

}

//重寫equals

public boolean equals(Object obj)

{

if(obj instanceof CacheImmutale)

{

CacheImmutale aa=(CacheImmutale)obj;

if(name.equals(aa.getName()))

{

return true;

}

return false;

}

}

//重寫hashCode

public int hashCode()

{

return name.hashCode();

}

}

12、抽象類

抽象方法與抽象類的規(guī)則:

利用抽象類就是利用一種模板模式

抽象父類中提供多個子類的通用方法,子類再進行具體的實現(xiàn)補充。

13、接口

接口中所有的方法都是抽象方法

接口規(guī)定類中應(yīng)具體提供的方法,但不管具體實現(xiàn)

syntax:

[修飾符] interface Name extends 父接口1, 父接口2...

{

}

接口中可以包含屬性(只能是常量),方法(只能是抽象實例),內(nèi)部類(包括內(nèi)部接口)和枚舉類的定義

只能是public 、static、final(系統(tǒng)默認(rèn))

方法、內(nèi)部類、枚舉類 自動用public static 修飾

使用接口:

類必須實現(xiàn)接口內(nèi)的所有方法,只能用public

模擬多繼承

interface and abstract class

總結(jié)

以上是生活随笔為你收集整理的java4_Java 4的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。