JAVA-面向對象(含基本數據類型,大數以及String)

1.區別於面向過程

  • 面向過程重點在於設計方法
  • 面向對象將數據和方法耦合在一塊兒構成對象.

2.類的抽象與封裝

  • 類的抽象: 將類的實現和類的使用分離
  • 類的封裝: 實現的細節被封裝而且對用戶隱藏

3.類的關係(關聯,聚合以及組合)

1.關聯

  • 常見的二元關係,描述兩個類之間的活動
  • 多樣性: 放置於類的邊上,用於給定UML圖中關係所涉及的類的對象數(*表明無範圍).
    eg. 學生選組課程爲學生類和課程類之間的關聯

2.彙集和組合(簡單起見,能夠不區分而都將其稱爲組合)

  • 彙集是關聯的一種特殊形式,表明了兩個對象之間的歸屬關係.其對has-a關係進行建模.
  • 全部者對象:彙集對象,其類:彙集類.
  • 從屬對象:被彙集對象,類:被彙集類.
  1. 組合: 被彙集對象的存在依賴於彙集對象. eg.名字依附於人,若人亡則名字亦不存在
  2. 彙集: 被彙集對象存在不依賴於彙集對象. eg.地址不依附於人,其客觀存在,人亡與否不影響.

4.基本數據類型做爲對象處理

  • 基本數據類型值不是對象,可是能夠用Java API中的包裝類來包裝成一個對象.
  • java.lang包裏爲基本數據類型提供了Boolean, Character, Double, Float, Byte, Short, Integer, Long等包裝類
  • 數值包裝類基本都提供了xxxValue()的方法將對象轉換爲基本類型值
  • 既能夠用基本數據類型也可用字符串類構造包裝類. eg.new Double("5.44");
  • Java能夠根據上下文自動地將基本類型與包裝對象進行轉換.

注意事項:java

  1. 包裝類沒有無參構造方法
  2. 包裝類的實例不可改變(一旦建立再也不改變)

簡介正則表達式

  1. 每一個數值包裝類都有常量MAX_VALUE, MIN_VALUE對應其基本數據類型的最大最小值
  2. 每一個數值包裝類都包含各自方法doubleValue(),floatValue(),xxxValue()...返回包裝對象對應的xxx值
  3. 包含compareTo方法用於比較兩個數值(1,0,-1)
  4. 有一個有用的靜態方法valueOf(String s),該方法建立一個對象並將其初始化爲指定字符串表示的值
  5. 可能含有parseXxx(String s)方法將一個xxx數值字符串s轉化爲一個xxx值

基本類型和包裝類類型之間的自動轉換數組

  • 裝箱:基本數據類型值轉換爲包裝類對象的過程
  • 拆箱:反之

5.BigInteger類和BigDecimal類

  • 當進行大精度/大數運算時可用BigInteger類和BigDecimal類來進行
  • 建立方法newBigXxxx(String s)
  • 常見方法: add, subtract, multiple, divide, remainder

6.String方法

  • String對象不可改變-字符串一旦建立,內容不能再改變(改變或爲建立了新得對象)

1.駐留字符串

eg.併發

String s1 = "Java';
String s2 = new String("Java);
String s3 = "java;

則s1==s3且s1!=s2
s1,s3指向了相同的主流字符串"Java",而s1與s2爲不一樣的字符串對象app

2.替換和拆分

  • 替換: replace(); String
  • replace, replaceFirst, replaceAll
  • 拆分: split(); String
  • 以上都爲返回一個源自元素是字符串的新字符串(組)

3.使用模式匹配,替換和拆分

  • 正則表達式(regex): 爲一個字符串,用於描述匹配一個字符串集的模式.能夠經過指定某個模式來匹配,替換和拆分一個字符串.
  • matches(String s): s爲正則表達式. 替換和拆分中的參數也可用正則表達式代替

4.字符串和字符數組之間的轉換

  1. 字符串轉換爲字符數組: toCharArray();
    eg. char[] ch = s.toCharArray();
  2. 字符數組->字符串: 構造方法或方法valueOf();
    eg. String s = String.valueOf(ch);

5.將字符和數值轉化爲字符串

  1. String str = xxx + "";
  2. valueOf()方法

6.格式化字符串

  • String.format(format, item1, item2, ...);ide

  • 與printf相似. printf顯示而format返回
    eg.ui

    String s = String.format("%7.2f%6d%-4s", 45.556, 14, "AB");
    顯示: ..45.56....14AB.. (..表示空格)設計

7.StringBuilder與StringBuffer

  • 相似於String類,但其能夠改變
  • 兩者主要區別在於StringBuffer類中修改緩衝區的方法是同步的(只有一個任務被容許執行該方法)(適用於多任務併發訪問); 單任務訪問時StringBuilder更有效
  • 構造方法:StringBuilder(),(capacity: int),(s: String)
  • 方法: 30多個用於管理該構建起以及修改該構建器字符串的方法.

1.修改

java.lang.StringBuilder 做用
append(data: char[]) : StringBuilder 追加一個字符數組
append(data: char[], offset: int, len: int) :... 追加data中的指定子數組
append(v: primitiveType): ... 將一個基本類型值做爲字符串追加
append(s: String) 追加一個字符串
delete(startIndex: int, endIndex: int):... 刪除指定範圍的字符
deleteCharAt(index: int):... 刪除給定下標的字符
insert(index: int, data: char[], offset: int, len: int):... 給定下標爲止插入數組data的子數組
insert(offset: int, data: char[]):... 向offset位置插入data
insert(offset: int, b: primitiveType):... 向指定位置插入一個轉換爲字符串的值
insert(offset: int, s:String):... offset位置插入字符串
replace(startIndex: int, endIndex: int, s:String) 指定位置替換爲給定字符串
reverse() 倒置
setCharAt(index: int, ch: char) 指定下標設置爲新得字符

2.toString, capacity, length, setLength, charAt方法

注:capaciy爲容量,length爲長度code

相關文章
相關標籤/搜索