------- android教育訓練、java教育訓練、期待與您交流! ---------
一.
多态的概念:
可以了解為事物存在的多種展現形态。
打個比方:
人:男人,女人
動物:貓,狗。
貓 x=new 貓();
動物 x=new 貓();
多态的一種形式:
父類指向子類對象,當我想使用子類特有内容的時候,就向下轉型,如下代碼所示:
package circulate;
public class Demo4
{
private int num;
Demo4(int num)
{
this.num=num;
}
public boolean equals(Object obj)
{
Demo4 d=(Demo4)obj;//父類指向子類對象,當我想使用子類特有内容的時候,就向下轉
型
return this.num==d.num;
}
}
public class ObjectDemo
{
public static void main(String[] args)
{
Demo4 d1=new Demo4(4);
Demo4 d2=new Demo4(4);
System.out.println(d1.equals(d2));
}
}
1.多态的展現
父類的引用指向了自己的子類對象
父類的引用也可以接受自己的子類對象
2.多态的前提
必須是類與類之間有關系,要不是繼承或實作
通常還有一個前提 那就是覆寫
3.多态的好處
多态的出現大大提高了程式的擴充性
4.多态的弊端
提高了擴充性,但是隻能使用父類中的引用通路父類中的成員
5.多态的出現代碼中的特點(多态使用的注意事項)
在編譯時期,參閱引用型變量所屬的類中是否有調用的方法,如果有,編譯通過。反之,失敗
在運作時期參閱對象所屬的類中是否y9ou調用的方法。
簡單總結:成員函數在多态調用時,編譯看左邊,運作看右邊。
在多态中,無論編譯和運作,都參考左邊(引用型變量所屬的類)
在多态中,靜态成員函數的特點:
無論編譯和運作,都參考左邊。
字元串String:
字元串最大特點,一旦被初始化,就不可以改變。
字元串是否是以指定内容開頭
boolean startsWith(str)
字元串是否以指定内容結尾
boolean endsWith(str);
字元串中是否有内容
boolean isEmpty();此方法的原理就是判斷長度是否為0,0和""以及null有差別,""表示一個對象,null
是指向空
字元串中是否包含一個子串
boolean contains(str);
判斷字元串内容是否相同
boolean equals(str);
判斷内容是否相同,并忽略大小寫
boolean equalsIgnoreCase();
轉換:
将字元數組轉成字元串
構造函數:String(char[])
String(char[],offset.count):将字元數組值的一部分轉換成字元串
将基本資料類型轉成字元串
static String valueOf(int)
static String valueOf(double)
舉例:比如3+"";是一個字元串,那麼String.valueOf(3)和它一樣
将位元組數組轉成字元串
String(byte[])
String(byte[],offset,count):将位元組數組中的一部分轉成字元串
将字元串轉成字元數組
char[] toCharArray();
将字元串轉成位元組數組
byte[] getBytes();
替換:
String replace(oldchar,newchar);
切割:
String[] split(regex);
子串:擷取字元串中的一部分
String subString(begin);
String subString(begin,end);
轉換,去除空格,比較
1.将字元串轉成大寫或者小寫。
String toUpperCase();
String toLowerCase();
String trim();
3.對兩個字元串進行自然順序的比較
int comparTo(String);
StringBuffer類:
什麼時候用呢?當資料類型不确定,而且最終變成字元串,而且資料的個數不确定,用這個比較友善,比
數組友善
字元串的組成原理就是通過該類實作的
StringBuffer可以對字元串内容進行增删
StringBuffer是一個容器,且是可變化的,位元組可以操作多個資料類型,最終會通過toString方法變成字元
串,這就是StringBuffer的三個特點
很多方法與String相同
StringBuffer是可變長度的
它是一個容器,是以就有以下功能:
1.存儲
StringBuffer append():将指定資料作為參數添加到已有資料結尾
StringBuffer insert(index,資料):可以将資料插入指定index
2.删除
StringBuffer delete(start,end):删除緩沖區中的資料,包含start,不包含end.
StringBuffer deleteCharAt(index):删除指定位置的字元
3.修改
StringBuffer replace(start,end,要替換的資料String)
void setCharAt(int index,char ch):替換
4.反轉
StringBuffer reverse();
5.void getChars(int srcBegin,int srcEnd,char[] dst,int dstBegin)
将緩沖區中指定資料存儲到指定數組中
StringBuilder類:
在jdk1.5之後出現的
不同之處是StringBuffer是線程同步
StringBuilder:是線程不同步的
更新三個因素:
提高效率
簡化書寫
提高安全性
基本資料類型的對象包裝類:
byte-Byte short-Short int-Integer long-Long boolean-Boolean float-Float
double-Double char-Character
基本資料類型對象包裝類的最常見作用,就是用于基本資料類型和字元串類型之間作轉換
1.基本資料類型轉字元串
基本資料類型+""
基本資料類型.toString(基本資料類型值)
如:Integer.toString(34):就是将34整數變成"34"
2.字元串轉基本資料類型
基本資料類型包裝類.parse基本資料類型,比如:
xxx a=xxx.parsexxx(String)
int a=Integer.parseInt("123");
double b=Double.parseDouble("12.23");
boolean b=Boolean.parseBoolean("true");
十進制轉成其他進制
toBinaryString();
toHexString();
toOctalString();
其他進制轉成十進制
parseInt(String,radix);
有一個intValue的方法也可以把一個Integer對象變成一個int值,比如
Integer i=new Integer("123");
int num=i.intValue();
注意:Integer本身複寫了Object裡面的equals方法,它建立了本對象自己比較相同的特有方式,他比較的
是數值是否相同。
-------- android教育訓練、java教育訓練、期待與您交流! ----------