面向對象-類與對象、關鍵字、異常使用

*****--------------面向對象課程大綱-----------*****

面向對象概述

類的構造方法

靜態變量、常量和方法

類的主方法

對象

類的繼承

object類

對象類型的轉換

使用instanceof操作符判斷

方法的重載

多態

抽象類與接口

Java類包

final

內部類

異常概述

處理程序異常錯誤

Java常見異常

自定義異常

在方法中拋出異常

運行時異常

異常的使用原則

======================================================================

<一>面向對象概述


概述:現實世界中所有的事物都是對象,對象都具有某些特徵,並展現某些行爲

對象的兩個要素:

(1)屬性 :用於描述對象靜態特性(結構特性)的一個數據項。如描述一個人可用姓名、性別、身份證號等屬性。 

(2)方法(也稱服務):用於描述對象動態特性(行爲特性)的一個操作系列。如每個人都具有工作、學習等行爲特性。 


<二>類的概念

(1)同一類中的對象有相同的屬性(也稱爲成員變量,它描述該類的靜態特性或結構特性) 

(2)同一類中的對象有相同的方法(也稱服務,它描述該類的行爲特性或動態特性) 

(3)同一類中的對象遵守相同的語義規則。(共同的約束或規則) 


<三>類與對象

1.對象:對象表示現實世界中某個具體的事物

對象具有兩方面的含義:

(1)在現實世界中:是客觀世界中的一個實體

(2)在計算機世界中:是一個可標識的存儲區域

2.類(class):類是具有共同屬性和行爲的對象的抽象

Java類的基本語法:

<修飾符> class <類名>{

    [<屬性聲明>]

    [<構造器聲明>]

    [<方法聲明>]

}

注:1.<類名>可以是任何合法的標識符,並且是所聲明類的名字。

    2.有幾種可使用的<修飾符>,但現在只使用public,聲明類可被任

      意訪問。

    3.類的正文聲明瞭與類相關的數據屬性、構造器和方法的集合。


<四>面向對象

類是由屬性(成員變量)和方法(成員方法)組成的 。

創建對象步驟:

1.設計類:設計成員變量和成員方法

2.通過類,去創建類的對象

3.通過“對象.屬性(成員變量)” 或者“對象.方法 ”

 來調用,完成相應的功能。


 例:人類

特徵:能直立行走,製作並使用工具高級動物

屬性:名字、年齡、性別、身高等等

行爲:製作使用工具、工作、吃飯、睡覺等等

 

   成員變量(字段、屬性):定義在類裏面,並在方法外的變量。


<五>聲明方法


方法的基本語法:


   <修飾符>  <返回類型>  <名稱>([<參數表>]){

       [<語句>]

   }


注:

1.<修飾符>是可選項,並可有很多不同的修飾符,包括public、protected和private等。public訪問修 飾符表明可從其他代碼調用該方法。private表明方法只能在由該類中其他方法調用。

2.<名稱>可以是任何合法的標識符,但限制使用那些已經在使用的名稱。


<六>類、對象與方法(步驟)


1、設計類:設計成員變量和成員方法


語法:class 類名{  }


例:class Person{//類

         String name;//成員變量

       void speak(){//成員方法

       System.out.println(name);

}

}

2、通過類,去創建類的對象

   語法  : 類名 對象名稱=new 類名();

   例    : Person p=new Person();


   解析:Person:創建Person類的實例對象,

             p:對象的引用,

             new Person():實例化Person對象,調用構造方法Person()

             =:Person在內存中的地址賦值給P,所以可以通過變量p引 

                    用對象訪問對象成員(對象被實例化後,jvm自動爲其成 

                   員變量賦初值)


內存:根據數據類型劃分內存空間;new的空間


例:


public class Ch01{

      public static void main(String[] args){

            Person p=new Person();//創建P對象並實例化

     }

     }

class Person{//類

    String name;//成員變量

    void speak(){//成員方法

    System.out.println(name);

    }


    }


3、通過“對象.屬性(成員變量)” 或者“對象.方法 ”來調用,完成相應的功能。

public class Ch01{

          public static void main(String[] args){

                Person p=new Person();//創建P對象並實例化

                 p.speak();//訪問對象的成員,調用speak()方法

          }

           }

class Person{//類

         String name;//成員變量

           void speak(){//成員方法

          System.out.println(name);

           }

            }


<七>構造函數特點


構造函數作用:

(1)完成類對象的初始化工作,即初始化成員變量


(2)構造函數的名稱必須與類名相同


(3)構造器沒有返回值並且不可被繼承


(4)一般將構造函數的修飾符聲明爲public


(5)構造函數中不能有return語句


1、一個類可以定義多個不同的構造方法


2、每個類都有自己默認構造方法,如果沒有定義,系統會自動生成

   若定義,則直接覆蓋

   例:public Person(){

          //  默認構造方法

                  }


<八>有無參數的構造函數


1.構造函數的參數:


(1)參數表與方法聲明中的一樣。可以像方法一樣向構造函數傳遞參數。

(2)構造函數可以有0個、1個或者多個參數。


2.無參數的構造函數:


(1)沒有構造函數——使用默認的構造函數(沒有參數,沒有方法體)


(2)如果使用沒有參數的構造函數,則創建的對象具有相同的初始值


<九>構造函數的重載

一個類可以有多個構造函數,叫做構造函數的重載。條件(滿足其一):

(1)參數的個數不同

(2)參數的類型不同


<十>構造函數的使用

(1)不能由編程人員顯式調用。

(2)在創建一個類的新對象的同時,系統會自動調用該類的構造函數爲新對象初始化。

(3)構造函數只能和new關鍵字一起使用。

格式:類名 對象名=new 構造函數名稱(成員變量的初始值)

構造函數小結:

(1)構造函數(方法)名和類名相同

(2)構造方法沒有返回值(void)

(3)主要作用是完成新對象的初始化

(4)在創建新對象時,系統自動調用該類的構造方法

(5)一個類可以有多個構造方法(參數個數和類型不同)

(6)每個類都有一個默認的構造方法
注:構造方法的主要作用:初始化成員變量(屬性)

<十一>this關鍵字

作用:區分成員變量(屬性)

原因:java虛擬機會給每個對象分配this代表當前對象

this注意事項:只能在類定義中使用(包括打印,如:this.name=name:this.name屬於成員變量)

<十二>類變量static/類方法

1.定義:類變量是gailei的所有對象共享的變量

2.語法:訪問修飾符 static 數據類型 變量名;

3.訪問:(1)類名.類變量名;(2)對象名.類變量名

4.類變量原則上用類方法去訪問

注:靜態變量區不能訪問非靜態變量,非靜態則都可去訪問.

5.類變量與實例變量的區別:

(1)加上static稱爲類變量或靜態變量

(2)類變量是與類相關的公共屬性

(3)實例變量屬於每個對象個體的屬性

(4)類變量可以通過類名.類變量名直接訪問

<十二>面向對象四大特徵(封裝、繼承、多態、加抽象包含)

  1. 封裝

(1)定義:數據被保護在內部

(2)封裝思想:屬性全部爲私有

  通過1個成員方法去控制和訪問私有屬性

(3)訪問控制修飾符

定義:控制方法和變量的訪問權限

public:公開

protected:受保護

default:默認

private:私有

2.抽象:

(1)概念:定義類將共有的屬性和行爲提取出來,形成1個模板(類),稱爲抽象

(2)抽象類:只能被繼承,不能實例化的類。

(3)定義格式:

 abstract class 類名{

     abstract 返回值類型  方法名([參數表]);

     …

 }

(4)說明:


*抽象類中可以包含抽象和非抽象方法

*也可以不包含抽象方法和非抽象方法

*只要有一個抽象方法,就是抽象類

*不能創建抽象類的對象 (抽象類不能被實例化)

*使用時必須用其創建子類

*子類可以定義自己的成員變量及方法,但必須將父類中所有抽象的方法代碼寫完

*如果子類只是實現了部分抽象的方法,則該類仍是抽象類

3.異常分類

(1)Java程序運行過程中所發生的異常事件可分爲兩類:

(Error: JVM系統內部錯誤、資源耗盡等嚴重情況

((Exception: 其它因編程錯誤或偶然的外在因素導致的一般性問題,§例如: 空指針訪問 試圖讀取不存在的文件 網絡連接中斷

4.異常處理機制

(1)捕獲異常:在Java中如果需要處理異常,必須先對異常進行捕獲,然後再對異常情況進行處理。使用try和catch關鍵字即可,結構如下:

try{}catch(){}finally{}

try塊包圍的代碼說明這段代碼可能會發生異常,一旦發生異常,異常便會被catch捕獲到,然後需要在catch塊中進行異常處理,finaly塊中的代碼一定會執行

(2)拋出異常:任何Java代碼都可以拋出異常,如:自己編寫的代碼、來自Java開發環境包中代碼,或者Java運行時系統。無論是誰,都可以通過Java的throw語句拋出異常。從方法中拋出的任何異常都必須使用throws子句。在方法聲明上使用throws來表示該方法會有異常拋出,在方法體中使用throw來表示可能會發生的異常

5.自定義異常

使用Java內置的異常類可以描述在編程時出現的大部分異常情況。除此之外,

用戶還可以自定義異常。用戶自定義異常類,只需繼承Exception類即可。

    在程序中使用自定義異常類,大體可分爲以下幾個步驟。

創建自定義異常類。

在方法中通過throw關鍵字拋出異常對象。

如果在當前拋出異常的方法中處理異常,可以使用try-catch語句捕獲並處理;否則在方法的聲明處通過throws關鍵字指明要拋出給方法調用者的異常,繼續進行下一步操作。

在出現異常方法的調用者中捕獲並處理異常。






發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章