天天看點

JavaSE篇學習之路:(五)【面向對象------上】

目錄

  • ​​第一章:基礎概要​​
  • ​​1.1什麼是面向對象?​​
  • ​​2.1面向對象的三大特征。​​
  • ​​3.1類和對象的概念。​​
  • ​​第二章:構造方法​​
  • ​​1.1什麼是構造方法?​​
  • ​​2.1文法結構​​
  • ​​第三章:封裝(private)​​
  • ​​1.1什麼是封裝?作用?​​
  • ​​2.1怎麼進行封裝,代碼怎麼實作?​​
  • ​​3.1 set()和get()方法​​
  • ​​第四章:static 和this關鍵字​​
  • ​​1.1 static關鍵字​​
  • ​​2.1 this關鍵字​​
  • ​​一起學習,快樂程式設計,歡迎攻城獅們多多交流​​

第一章:基礎概要

1.1什麼是面向對象?

更符合人的思維方式,面向對象更容易接受。

将射界分割成不同的單元,每個單元都實作,

2.1面向對象的三大特征。

封裝(private),繼承(extends),多态。

3.1類和對象的概念。

1 什麼是類?

抽象總結的一個結果,現實中不存在,抽象的概念。

2.什麼是對象?(執行個體)

實際存在的個體。

舉例:宋小寶,姚明是對象,屬于“明星”這個類。

JavaSE篇學習之路:(五)【面向對象------上】

在Java中,要得到對象,必須定義類。類是一個模闆,描述的是對象的共同特征。共同特征包括:屬性和方法。(類=屬性+方法)

3.類的定義:

[修飾符清單] class 類名{

類體=屬性+方法;(屬性為變量,方法為動作或行為)

}

//定義一個學生類
public class Student{
//學生類具有學号和名字屬性
  int no;//學号
  String name;//姓名
  //方法
  public void doSome(){
    System.out.println("我是一個學生");
  }
}      

類名為引用資料類型,方法體中的變量為局部變量,方法體外的變量為成員變量(屬性)

成員變量分為靜态變量和執行個體變量。

4.對象的建立

new 類名(); 一個類可以建立多個對象。

類名 變量名=new 類名();

//new了一個Student對象
Student s=new Student();      

5.執行個體變量

對象成為執行個體,執行個體變量是:對象級别的變量。

public class 明星類{

double height;

}

身高這個屬性所有的明星對象都有,但是每一個對象都有“自己的身高值”。

假設建立10個明星對象,height變量應該有10份。

是以這種變量被稱為對象級别的變量。屬于執行個體變量。

6.對象和引用的差別。

對象是new出來,在堆中存儲。

引用:儲存對象記憶體位址的變量。

JavaSE篇學習之路:(五)【面向對象------上】

7.通路執行個體變量

引用名.執行個體變量名。

Student s1=new Student();
s1.name;//通路name執行個體變量
s1.no;//通路no執行個體變量      

8. 空指針異常

“空引用”通路執行個體相關的資料時,都會出現空指針異常。

JavaSE篇學習之路:(五)【面向對象------上】

第二章:構造方法

1.1什麼是構造方法?

構造方法是一個特殊的方法,能夠建立對象,以及給對象屬性指派。

當一個類中沒有提供任何構造方法,系統預設提供一個無參數的構造方法。這個無參數的構造方法叫做預設構造器。

當一個類中手動的提供了構造方法,那麼系統将不再預設提供無參數構造方法。建議将無參數構造方法手動的寫出來,這樣一定不會出問題。

2.1文法結構

[修飾符清單]  構造方法名(形參清單){
    構造方法體;
}      

注意:

1.調用構造方法:使用new調用。

2.修飾符用public。

3.構造方法名與類名一緻,不需要指定傳回值類型。

public Student() {
    no=12312313; //學号指派
    name="張三";//姓名指派
    }      

構造方法支援方法重載嗎?

構造方法是支援方法重載的。在一個類當中構造方法可以有多個。并且所有的構造方法名字都是一樣的。

對于執行個體變量來說,隻要你在構造方法中沒有手動給它指派,統一都會預設指派。預設賦系統值。

第三章:封裝(private)

1.1什麼是封裝?作用?

現實生活中有很多現實的例子都是封裝的,例如:
    手機,電視機,筆記本電腦,照相機,這些都是外部有一個堅硬的殼兒。
    封裝起來,保護内部的部件。保證内部的部件是安全的。另外封裝了之後,
    對于我們使用者來說,我們是看不見内部的複雜結構的,我們也不需要關心
    内部有多麼複雜,我們隻需要操作外部殼兒上的幾個按鈕就可以完成操作。      

封裝的作用有兩個:

1.保證内部結構的安全。2.屏蔽複雜,暴露簡單。

2.1怎麼進行封裝,代碼怎麼實作?

第一步:屬性私有化(使用private關鍵字進行修飾。)
  第二步:對外提供簡單的操作入口。      

代碼示範:

class Student{
   private int no;
   private String name;
    
    public Student() {
    no=12312313;
    name="張三";
    }
}      

一個類體中的資料封裝後,必須通過一個入口進入。

3.1 set()和get()方法

封裝的代碼實作兩步:

第一步:屬性私有化

第二步:1個屬性對外提供兩個set和get方法。外部程式隻能通過set方法修改,隻能通過get方法讀取,
可以在set方法中設立關卡來保證資料的安全性。
  set和get方法都是執行個體方法,不能帶static。
  不帶static的方法稱為執行個體方法,執行個體方法的調用必須先new對象。

  **set和get方法寫的時候有嚴格的規範要求:
    set方法長這個樣子:
      public void set+屬性名首字母大寫(1個參數){
        xxx = 1個參數;
      }
    get方法長這個樣子:
      public 傳回值類型 get+屬性名首字母大寫(無參){
        return xxx;
      }**      

第四章:static 和this關鍵字

1.1 static關鍵字

1.static修飾的統一都是靜态的,都是類相關的,不需要new對象。直接采用“類名.”通路。

2.當一個屬性是類級别的屬性,所有對象的這個屬性的值是一樣的,建議定義為靜态變量。

3.static修飾的變量和方法都是靜态的。

4.類加載時初始化,存儲在方法區。

5.​

​static​

​靜态代碼塊,類加載時執行,隻執行一次,在main方法前執行,按自上而下的順序。(記錄日志)

static{
  Java代碼;
}      

6.​

​執行個體代碼塊​

​在構造方法前執行,調用一次執行一次。

{
  Java代碼;
}      

2.1 this關鍵字

1、this是一個關鍵字,是一個引用,儲存記憶體位址指向自身。
2、this可以使用在執行個體方法中,也可以使用在構造方法中。
3、this出現在執行個體方法中其實代表的是目前對象。
4、this不能使用在靜态方法中。
5、this. 大部分情況下可以省略,但是用來區分局部變量和執行個體變量的時候不能省略。
6、this() 這種文法隻能出現在構造方法第一行,表示目前構造方法調用本類其他的
構造方法,目的是代碼複用。      

代碼示範:

class Student{
   private int no;
   private String name;

    public Student() {
        this(123,"張三");
    }

    public Student(int no, String name) {
        this.no = no;
        this.name = name;
    }

    public int getNo() {
        return no;
    }

    public void setNo(int no) {
        this.no = no;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }
}      

一起學習,快樂程式設計,歡迎攻城獅們多多交流

繼續閱讀