1. 程式人生 > >java基礎(5)----面向對象

java基礎(5)----面向對象

con 提升 一個 形參 允許 對象 耦合 變量 數據類型

  1. 編程思想:

    簡單的說一下,我們學習編程,最重要的就是要有編程思想,而編程思想無非就是面向過程和面向對象,以下談談我對編程思想的理解。

    面向過程:

    從過程入手,第一步,第二步…….借助過程與過程的配合,完成需求。

    例如: 小明進入房間,需要以下幾個步驟:

    第一步打開房間門,第二步小明進去,第三步把房間門關上。

    每一步都是一個過程,如果小王,小李等等進來呢,一直重復這幾個過程,會顯得程序冗余復雜。此時面向對象的出現完美解決了這種問題。

    面向對象:----模擬現實世界編程。

    從對象入手,把和需求相關的對象提取出來,借助對象和對象的配合,實現需求。

    例如:小明進入房間:

    先向小明下達開門的指令,然後向小明下達進入指令,最後向小明下達關門指令,小明就是對象,面向對象編程。

  2. 面向對象----Object Oriented
    1. 什麽是對象:----萬物皆對象。

      現實生活中的對象都具有兩個主要要素,一個是對象有什麽,一個是對象幹什麽

      對應程序中的屬性和方法。

    2. 計算機中的對象:----是一塊存儲空間,是現實對象在計算機中的抽象表示。
    3. 類:----是具體對象的共性提取,對象是類的具體存在。
  3. 類的組成。
    1. 屬性:
      1. 數據類型 變量名;//聲明----string name;
      2. 數據類型 變量名 = 值;//聲明並賦初值----string name="zhangsan"
    2. 方法:----修飾符 返回值類型 方法名(形參列表){//聲明部分

      //實現部分

      }

    3. 構造方法:----特殊的方法。
      1. 方法名必須和類名完全一致;
      2. 沒有返回值類型。

      使用:

      構造方法不允許手動調用,每次創建對象時由解釋器自動調用

      構造方法的作用是給屬性賦值

      如果類中沒有定義構造方法,系統會默認分配一個公共無參的構造方法。

      類的式例代碼:

package com.lvsling.test;

public class Student {

//屬性

String name;//聲明屬性

int age=10;//聲明屬性並賦值

boolean sex;

//無參構造方法

public Student() {

}

//有參構造函數

public Student(String name, int age, boolean sex) {

super();

this.name = name;

this.age = age;

this.sex = sex;

}

//普通方法

public void Test1(){

System.out.println("這是普通方法");

}

}

  1. 創建對象
    1. 語法:類名 變量名 =new 類名(構造參數);
    2. 使用:對象名.屬性名 = 新值;//修改對象的屬性值

      對象名.屬性名 //獲取對象的屬性值

      對象名.方法名(實參列表);//調用對象的方法。

package com.lvsling.test;

public class TestOO {

public static void main(String[] args) {

//創建對象

Student s=new Student("zhangsan",18,true);

//修改對象的屬性值

s.age=25;

//獲取對象的屬性值

System.out.println(s.age);

//調用對象的方法

s.Test1();

}

}

  1. 創建對象的過程
    1. 分配空間--------給所有屬性賦值默認值
    2. 初始化屬性---------給屬性賦初值
    3. 調用構造方法-------給屬性進行第三次賦值
  2. 總結:

    以上說明了面向對象中的類的書寫,創建對象以及調用方法的過程。面向對象是java學習的核心思想,面向對象編程是模擬現實生活進行編程的思想,對象共性提取抽象化,面向對象高內聚,弱耦合大大提高了程序代碼的可重用性和可擴展性。

提升與拓展:

類的屬性是實例變量,也叫全局變量:

  1. 位置:類以內,方法以外(方法內的是局部變量)
  2. 默認值:有默認值,string---null,int----0,Boolean----false等
  3. 作用域:至少本類可以用
  4. 命名沖突:實例變量和局部變量可以重名,重合範圍內局部變量優先。

方法重載----OverLord:在同一個類中,可以定義多個名稱相同,參數不同的方法

要求:形參列表不同----順序,類型,個數。對返回值無要求

好處:屏蔽因參數列表不同帶來的差異,方法調用簡單,靈活。

java基礎(5)----面向對象