java物件導向

來源:互聯網
上載者:User

標籤:取出   tree   介面   程式碼片段   實值型別   dex   als   相關   simple   

構造方法 1.用來描述對象建立的過程,構造方法在對象建立的過程中被調用 2.如果類中沒有寫構造方法,系統會預設提供一個無參的構造方法;如果類中出現了構造方法,系統不會提供預設的無參構造方法  文法: 存取修飾詞 構造方法名(){   //初始化代碼  }

方法重載  原則:1.方法名相同        2.參數列表不同        3.與傳回值,存取修飾詞無關 方法重寫;  原則:1.方法名相同        2.參數列表相同        3.傳回值類型相同或者是其子類        4.存取權限不能嚴於父類

this關鍵字(代表當前對象,在有參構造方法中不能省略)

封裝的好處: 1.隱藏類的實現細節 2.只能通過規定方法訪問資料 3.方便加入控制語句 4.方便修改實現

封裝的步驟: 1.修改屬性的可見度 2.建立get,set方法 3.在get,set方法中加入屬性 4.實現get,set方法

static關鍵字(修飾:屬性,方法,代碼塊,內部類)  修飾的屬性:屬於對類所有執行個體對象共用的變數        方法:屬於靜態方法,可以直接類名.方法名()調用      代碼塊:在類載入的時候執行,因為類只載入一次所以static代碼塊也只運行一次,一般是使用static代碼塊來載入一些靜態資源

static修飾與非static修飾的區別     static,非private修飾  非static,private修飾     屬性  類屬性,類變數  執行個體屬性,執行個體變數     方法  類方法   執行個體方法           類名.屬性 調用方法  類名.方法()   對象.屬性           對象.屬性   對象.方法()           對象.方法()     歸屬  類    單個對象

繼承的優點: 1.提高代碼的重用性 2.提高代碼的後期的可維護性

使用繼承  編寫父類 class Pet{ //公用的屬性和方法}  編寫子類繼承父類 class extends Pet{ //子類特有的屬性和方法}

繼承的步驟: 1.將多個類的屬性和方法提取出來,建一個父類 2.在子類後面使用extends關鍵字完成繼承 3.在子類中可以調用父類的代碼 注意:在java中屬於單繼承,在extends關鍵字後面只能有一個父類

super關鍵字(代表父類對象)super.方法名 1.只能必須出現在子類的方法和構造方法中 2.在構造方法中調用且必須是第一句 3.不能訪問父類的private成員 4.可以訪問父類的成員

不能被繼承的父類成員 1.private成員(1.可以修飾屬性和方法2.本類,同包,子類可以訪問) 2.子類與父類不在同包,使用預設存取權限的成員 3.構造方法

存取修飾詞protected 1.可以修飾屬性和方法 2.本類,同包,子類可以訪問

存取修飾詞: private   friendly   protected   public

多重繼承關係: 父類屬性->父類構造方法->子類屬性->子類構造方法

對象初始化過程 1.在建立類之前,檢查類是否已載入,如果沒有價值就先價值父類的檔案,再載入本類的檔案 2.指派至的空間,遞迴分配所有的父類和子類的屬性空間 3.給屬性賦值 4.調用父類的構造方法 5.調用本類的構造方法

abstract關鍵字 1.修飾類,抽象類別(-public abstract class 類名{} -抽象類別用來表示一些抽象的概念)  抽象類別的特點:  1.抽象類別不能被執行個體化  2.抽象類別中可以有屬性,方法,構造方法,都是用來給子類繼承  3.抽象類別中的方法不一定全部都是抽象方法 2.修飾方法,抽象方法(-存取修飾詞 abstract 傳回值類型 方法名 (參數列表); -抽象方法不需要自己實現,由子類來實現)  抽象方法的特點:  1.抽象方法沒有方法體  2.抽象方法必須出現在抽象類別中  3.一個類繼承抽象類別之後必須要實現裡面的所有的抽象方法 3.抽象類別可以繼承抽象類別

final關鍵字(最終的) 1.可以用來修飾類,屬性,方法 2.修飾的類不能再被繼承 3.修飾的方法,不能再被子類重寫 4.修飾的變數,初始化以後值不能再發生改變 5.修飾的參考型別的變數,引用地址不能發生改變,但是只限定的是第一層,參考型別的屬性是可以發生改變的

abstract,final的對比  abstract可以用來修飾類和方法,不能用來修飾屬性和構造方法  final可以用來修飾類,方法和屬性,不能修飾構造方法

多態的實現(兩個要素:1.子類重寫父類方法2.使用父類的類型) 1.編寫父類 2.編寫子類,子類重寫父類方法 3.運行時,使用父類的類型,子類的對象

子類到父類的轉換(向上轉型) 父類到子類的轉換(向下轉型)-將一個指向子類對象的父類引用賦給一個子類的引用

使用多態的兩種形式: 1.使用父類操作為方法形參實現多態 2.使用父類操作為傳回值實現多態

instanceof運算子(用來判斷一個對象是否屬於一個類或者實現了一個介面) 通常和強制類型轉換結合使用,提高代碼的健壯性 文法 對象 instanceof 類或介面

多態的好處:多態可以減少類中代碼量,可以提高代碼的可擴充性和可維護性

介面  文法 [修飾符] interface 介面名 extends 父介面1,父介面2,...{           //常量定義           //方法定義     }       class 類名 extends 父類名 implement 介面1,介面2,...{    //類成員                          }

介面的特徵: 1.介面不可以被執行個體化 2.實作類別必須實現介面的所有方法 3.實作類別可以實現多個介面 4.介面中變數都是靜態常量

介面的原則: 1.可以降低代碼間的耦合性 2.提高了代碼的可擴充性和可維護性

介面和抽象類別的區別:  抽象類別利於代碼複用  介面利於代碼維護

interface關鍵字(C#) 文法 [修飾符] interface 介面名:父介面1,父介面2,...{          屬性定義          方法定義        }      class 類名:父類名,介面1,介面2,...{}

implements關鍵字  一個可以實現多個介面,多個介面之間使用“.”隔開

介面有比抽象類別更好的特徵: 1.可以被多繼承 2.設計和實現完全分離 3.更自然的使用多態 4.更容易搭建程式架構 5.更容易更換實現

內部類(在類裡面還有一個類,把class寫入class中)-最大作用:封裝 1.靜態內部類  使用static修飾,聲明在類體中  靜態內部類中可以訪問外部類的靜態成員 2.成員內部類  聲明在類體中,不使用static,具有類的成員特徵。也就是必須有類的執行個體才能建立內部類執行個體  內部類執行個體可以訪問共用外部類成員變數 3.局部內部類  把類聲明在方法中,就是局部內部類,範圍類似局部變數 4.匿名內部類(回調模式)  匿名類可以寫在任何地方,就像一般的語句  文法更像是建立對象: Date d=new Date(){//...}  匿名類是對原類的一個繼承,同時建立了執行個體,{}就是繼承以後的類體  類體中可以使用所有類的文法  匿名類不能寫構造器  匿名類可以從抽象類別或者介面繼承,必須提供抽象方法的實現

異常(Exception)-指在程式中的運行過程中所發生的不正常的事件,它會中斷正在啟動並執行程式                                                                                    錯誤(Error)

if-else缺點: 1.代碼臃腫,加入了大量的異常情況判斷和處理代碼 2.減少了編寫業務代碼的時間,必然影響開發效率 3.很難窮舉所有的異常情況,程式仍舊不健壯 4.異常處理代碼和業務代碼交織在一起,影響代碼的可讀性,加大日後程式的維護難度

if(in.hasNextInt()):判斷輸入是否是int類型,如果是返回true,否則返回false

java的異常處理通過5個關鍵字來實現: try   catch   finally   throw   throws try,catch,finally捕獲異常 throws聲明異常(聲明某個方法可能拋出各種異常) throw拋出異常

使用try-catch塊捕獲異常 第一種情況:正常  try  catch  try-catch塊後的程式碼片段 第二種情況:出現異常      發生異常    try ------->產生異常對象         進入catch塊   |  catch <----------異常類型匹配    |程式繼續進行  try-catch塊後的程式碼片段 第三種情況:異常類裡不匹配      發生異常  try ------->產生異常對象       | catch        異常類型不符      |程式中斷運行      \ try-catch塊後的程式碼片段

在catch塊中處理異常  加入使用者自訂處理資訊   System.err.println("自訂內容");  調用方法輸出異常資訊   e.printStackTrace()  異常對象常用的方法   void printStackTrace():輸出異常的堆椎資訊   String getMessage():返回異常資訊描述字串,是printStackTrace()輸出資訊的一部分

Java異常機制 1.當代碼運行到可能出現異常的代碼是,由程式員或JVM拋出異常對象。異常對象會記錄異常的相關資訊 2.異常對象拋出之後,就會去尋找異常處理的相關代碼(catch),如果找到了,異常到此結束 3.如果未找到,異常對象會繼續上拋,尋找異常處理的代碼 4.如果到main還未找到異常處理的代碼,就會由main將異常拋給虛擬機器 5.異常拋出的每一層代碼都會被中斷

常見的異常類型 Exception    異常階層的根類 ArithemticException   算數錯誤情形,如零作除數 ArrayIndexOutOfBoundsException  數組下標越界 NullPointerException   嘗試訪問null對象成員 ClassNotFoundException   不能載入所需的類 InputMismatchException   欲得到的資料類型與實際輸入的類型不符 IllegalArgumentException  方法接收到非法參數 ClassCastException   對象強制類型轉換出錯 NumberFormatException   數字格式轉換異常,如把"abc"轉換成數字

try-catch-finally      try       |有異常     catch塊  System.exit();  中斷程式,退出java虛擬機器        finally塊

存在return的try-catch-finally塊      發生異常   try---1--->產生異常對象       進入catch塊   |  catch<----2-----異常類型匹配  return    |   |3執行finally塊    4   |---> 執行return| 退出方法  |        |  |       finally

try-catch-finally塊使用規則    try{//必須出現,且只能出現一次       }catch(Exception ex){//可以出現0-n次,                              //如果沒有catch,就必須有finally       }finally{//可以出現0-1次       }

多重catch塊 1.排序catch語句的順序,先子類後父類 2.發生異常時按順序逐個匹配 3.只執行第一個與異常類型匹配的catch語句       發生異常    try-------->產生異常對象                      |    catch      與異常類型1不匹配          進入catch塊    |    catch<-----------與異常類型2不匹配      |      |  catch      |    return的try-catch-finally塊後的程式碼片段

java中的異常分為兩類: 1.運行時異常 2.檢查異常/檢測異常

自訂異常 第一步:寫一個異常類繼承Exception 第二步:手動實現Exception的所有各種方法

日誌分類 1.SQL日誌 2.異常日誌 3.業務日誌

開源日誌記錄工具log4j  控制日誌的輸出層級  控制日誌資訊輸送的目的地是控制台,檔案  控制每一條日誌輸出格式

使用log4j記錄日誌步驟 1.在項目中加入log4j的JAR檔案 2.建立log4j.properties檔案 3.配置日誌資訊 4.使用log4j記錄日誌資訊

Object  在java類繼承結構中java.lang.Object類位於頂端  如果定義了一個java類時沒有使用extends關鍵字聲明其父類,則其父類為java.lang.Object類  Object定義了"對象"的基本行為被子類預設繼承  public class Foo{...}  等價於      一切皆對象  public class Foo extends Object{...}

toString  Object類中定義toString方法,用於返回對象的字元表示(一個可以表示該對象屬性內容的字串)  所有java類都繼承了toString方法,Object類toString方法返回的字串的形式為:"類名@hashCode值"  Java類可以根據需要重寫toString方法返回更有意義的資訊

equals  Object的equals方法用於對象的"相等"邏輯  equals方法的邏輯為:如果認為調用方法的對象(this)與參數對象相等返回true,否則返回false  按照Object類equals方法的調用,只有在this和obj是同一個對象時才返回true,java可以根據需要重寫的繼承自Object的equals方法

hashCode  預設的hashCode()值是當前堆對象地址轉換的一個整數,這個整數不是記憶體位址  一般使用對象的OID值作為hashCode的值  OID是對象的唯一編號,在項目中一般採用資料庫產生OID,也就是資料庫中的"主鍵"

封裝類(封裝類)     封裝類   對應的基本類型 java.lang.Integer      int java.lang.Long       long java.lang.Double      double java.lang.Character      char java.lang.Boolean      boolean java.lang.Byte       byte java.lang.Float       float java.lang.Short       short

編譯器對封裝類的支援 "拆箱":運算前先封裝類對象所封裝的基本類型資料 "裝箱":運算後再講結果封裝成封裝對象

JDK5t增加了自動"拆箱"和"裝箱"的功能 Integer i=100; Integer j=200; Integer i+j; 事實上,JDK5的自動"裝箱"和"拆箱"是依靠JDK5的編譯器在編譯時間的"預先處理"工作

Date(表示特定的瞬間,精確到毫秒)類long(表示時間,日期)  getTime Date->毫秒差 用於擷取對應的毫秒差  setTime 毫秒差->Date 用於通過毫秒差設定時間 //無參的構造方法,構造的Date對象封裝當前的日期及時間資訊  Date date=new Date(); SimpleDateFormat類(用於實現Date對象和字串表示的日期資訊的轉換)  常用格式字串      字元 含義  樣本       Y  年  YYYY年-2017年;YY-17年       M         月              MM-01月;M-1月       d         日              dd-06日;d-6日       E        星期             E-星期日(sun)       a     AM或PM標識          a-下午(PM)       H    小時(24小時)       a-h時-下午12時       h    小時(12小時)       HH:mm:ss-12:46:33       m        分鐘             hh(a):mm:ss-12(下午):47:48       s         秒

Calendar及GregorianCalendar(用於封裝行事曆資訊)  主要作用在於其方法可以對時間分量進行運算

Calendar c=Calendar.getlnstance();  getlnstance方法將根據系統的地區資訊返回不同的Calendar 類的實現

getActualMaximum(可以返回某個時間分量最大值)  add方法可以對某一日期分量增加數值(減少)

介面 Collection-List,Set List:ArrayList,LinkedList Set;hashSet,TreeSet Map:hashMap,TreeMap

Collections(集合工具類)-->提供了對集合進行排序,遍曆等多種演算法實現 Collection介面

java物件導向

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.