1. 程式人生 > >java學習 ————— 基本型別的封裝類

java學習 ————— 基本型別的封裝類

3.1基本型別的封裝類

1.封裝類

Java語言認為一切皆為物件。

8個基本資料型別也應該具備對應的物件。

通過封裝類可以把8個基本型別的值封裝成物件進行使用。

JDK1.5開始,java允許將基本型別的值直接賦值給對應的封裝類物件。

2.封裝類的作用

 將字串的值轉換為基本型別

 1)直接呼叫封裝類的構造方法,即XXXString s)構造方法

 2)呼叫封裝類提供的parseXXXString s)靜態方法

3.2Object類

Java基礎類庫提供了一些常用的核心類,包括objectstringmath等。其中,object物件類定義在java.long包中,是所用類的頂級父類,在

java體系中,所有類都直接或間接的繼承了object類。因此,任何java物件都可以呼叫object類中的方法 ,而且任何型別的物件都可以賦給object型別的變數。

Equals()方法

兩個基本型別的變數比較是否相同時直接使用==”運算子即可,但兩個引用型別的物件比較是否相等時則有兩種方式:

(1)“==”運算子比較的是兩個物件地址是否相同 ,即引用的是同一個物件。

(2)Equals()方法通常用於比較兩個物件的內容是否相同 。

toString方法

Object類的toString方法是一個非常特殊的方法,他是一個“自我描述”的方法,該方法返回當前物件的字串表示。

3.3字串類

1.String類常用方法

1length() 字串的長度

  例:char chars[]={'a','b'.'c'};

String s=new String(chars);

int len=s.length();

2charAt() 擷取一個字元

  例:char ch;

ch="abc".charAt(1); 返回'b'

3getChars() 擷取多個字元

void getChars(int sourceStart,int sourceEnd,char target[],int targetStart)

sourceStart指定了子串開始字元的下標,sourceEnd

指定了子串結束後的下一個字元的下標。因此, 子串包含從sourceStartsourceEnd-1的字元。接收字元的陣列由target指定,target中開始複製子串的下標值是targetStart

  例:String s="this is a demo of the getChars method.";

char buf[]=new char[20];

s.getChars(10,14,buf,0);

4getBytes()

  替代getChars()的一種方法是將字元儲存在位元組陣列中,該方法即getBytes()

5toCharArray()

6equals()equalsIgnoreCase() 比較兩個字串

7regionMatches() 用於比較一個字串中特定區域與另一特定區域,它有一個過載的形式允許在比較中忽略大小寫。

boolean regionMatches(int startIndex,String str2,int str2StartIndex,int numChars)

boolean regionMatches(boolean ignoreCase,int startIndex,String str2,int str2StartIndex,int numChars)

8startsWith()endsWith()startsWith()方法決定是否以特定字串開始,endWith()方法決定是否以特定字串結束

9equals()==

equals()方法比較字串物件中的字元,==運算子比較兩個物件是否引用同一例項。

  例:String s1="Hello";

String s2=new String(s1);

s1.eauals(s2); //true

s1==s2;//false

10compareTo()compareToIgnoreCase() 比較字串

11indexOf()lastIndexOf()

indexOf() 查詢字元或者子串第一次出現的地方。

lastIndexOf() 查詢字元或者子串是後一次出現的地方。

12substring()  它有兩種形式,第一種是:String substring(int startIndex)

第二種是:String substring(int startIndex,int endIndex)

13concat() 連線兩個字串

14 replace() 替換

  它有兩種形式,第一種形式用一個字元在呼叫字串中所有出現某個字元的地方進行替換,形式如下:

String replace(char original,char replacement)

  例如:String s="Hello".replace('l','w');

  第二種形式是用一個字元序列替換另一個字元序列,形式如下:

String replace(CharSequence original,CharSequence replacement)

15trim() 去掉起始和結尾的空格

16valueOf() 轉換為字串

17toLowerCase() 轉換為小寫

18toUpperCase() 轉換為大寫

2.Stringbuffer類的用法

StringBuffer建構函式

StringBuffer定義了三個建構函式:

StringBuffer()

StringBuffer(int size)

StringBuffer(String str)

StringBuffer(CharSequence chars)

(1)、length()和capacity()

  一個StringBuffer當前長度可通過length()方法得到,而整個可分配空間通過capacity()方法得到。

(2)、ensureCapacity() 設定緩衝區的大小

void ensureCapacity(int capacity)

(3)、setLength() 設定緩衝區的長度

void setLength(int len)

(4)、charAt()和setCharAt()

char charAt(int where)

void setCharAt(int where,char ch)

(5)、getChars()

void getChars(int sourceStart,int sourceEnd,char target[],int targetStart)

(6)、append() 可把任何型別資料的字串表示連線到呼叫的StringBuffer物件的末尾。

    例:int a=42;

StringBuffer sb=new StringBuffer(40);

String s=sb.append("a=").append(a).append("!").toString();

(7)、insert() 插入字串

StringBuffer insert(int index,String str)

StringBuffer insert(int index,char ch)

StringBuffer insert(int index,Object obj)

index指定將字串插入到StringBuffer物件中的位置的下標。

(8)、reverse() 顛倒StringBuffer物件中的字元

StringBuffer reverse()

(9)、delete()和deleteCharAt() 刪除字元

StringBuffer delete(int startIndex,int endIndex)

StringBuffer deleteCharAt(int loc)

(10)、replace() 替換

StringBuffer replace(int startIndex,int endIndex,String str)

(11)、substring() 擷取子串

String substring(int startIndex)

String substring(int startIndex,int endIndex)

3.4scanner類

1.包:

import Java.util.Scanner

2.使用方法:

Scanner reader=new Scanner(System.in);    

然後reader物件呼叫下列方法(函式),讀取使用者在命令列輸入的各種資料型別:  

nextByte(),nextDouble(),nextFloat,nextInt(),nextLine(),nextLong(),nextShort()    

3.5繼承與多型

1.繼承

一個類可以繼承另外一個類

被繼承的類通常稱為“父類”、“超類”、“基類”

繼承者稱為子類。

繼承通過extends”關鍵字來實現

語法:

【訪問符】【修飾符】class 子類 extends 父類{}

Object類是所有類的頂級父類,在java中,所有類都是直接或間接的繼承了object類 。

Java只支援單一繼承。

例項化一個子類物件時,會先呼叫父類建構函式進行初始化,再呼叫子類自身的構造方法進行初始化,即構造方法的執行次序是:父類---->子類

2.多型

多型通常體現在具有繼承關係和實現關係的類之間,一個父類具有多個子類,可以將子類物件直接賦值給一個父類引用變數,無需任何型別轉換。

子類重寫父類的方法也是java多型性的一種體現。當子類繼承父類時,如果父類的方法無法滿足子類的需求,子類可以對父類中的方法進行改造,這種情況稱為“方法的重寫”

3.Super

Super關鍵字代表父類物件,其主要用途如下:

在子類的構造方法中呼叫父類的構造方法

在子類方法中訪問父類的屬性或方法

3.6介面

介面定義了某一批所需要遵守的公共行為規範,只規定這批類必須提供的某些方法,而不提供任何實現。介面體現的是規範和實現分離的設計哲學。讓規範和實現分離正是介面的好處,讓系統的各模組之間面向介面耦合,是一種鬆耦合的設計,從而降低各模組之間的耦合,增強系統的可擴充套件性的可維護性。

Java只支援單一繼承,不支援多重繼承,即一個類只能繼承一個父類,這一缺陷可以通過介面來彌補。Java允許一個類實現多個介面,這樣使程式更加靈活、易擴充套件。

語法:

【訪問符】interface 介面名{}

一個介面可以繼承多個父介面,但介面只能繼承介面。

在介面體裡可以包含靜態常量、抽象方法、內部類、內部介面以及列舉的定義,從java 8開始允許介面中定義預設方法、類方法。

與類的預設訪問符不同,介面體內定義的常量、方法等都預設為public,可以省略public關鍵字,即當介面中定義的常量或方法不寫public,其訪問許可權仍然是public

介面不能直接例項化,但可以使用介面宣告引用型別的變數,該變數可以引用到介面的實現類的例項物件上。

介面的主要用途就是被實現類實現,一個類可以實現一個或多個介面。