1. 程式人生 > 其它 >資料結構與演算法之插值查詢

資料結構與演算法之插值查詢

技術標籤:學習總結java

這裡寫目錄標題

面向物件

面向物件概論

面向物件的三大基本特徵是:封裝、繼承、多型

  • 封裝隱藏了類的內部實現機制,從而可以在不影響使用者的前提下改變類的內部結構,同時保護了資料
  • 繼承是為了重用父類程式碼,同時為實現多型性作準備
  • 多型性是傳送訊息給某個物件,讓該物件自行決定響應何種行為。通過將子類物件引用賦值給超類物件引用變數來實現動態方法呼叫。

程式設計概述

面向過程是一種自上而下的程式設計方法,主要思路專注於演算法的實現

  • 過程式的特徵是以函式為中心,用函式作為劃分程式的基本單位;資料在過程式設計中處於從屬的位置
  • 過程式設計的優點是易於理解和掌握,這種逐步細化問題的設計方法與大多數人的思維方式比較接近
  • 軟體程式碼的重用性很差,即使重用,也是簡單的複製和拷貝,程式碼數量急劇增加。而不能直接繼承和應用

面向物件是一種自下而上的程式設計方法,以資料為中心,類是表現資料的單位,是劃分程式的基本單位

  • 面向物件設計是自下而上的特性,允許開發者從問題的區域性開始,在開發過程中逐步加深對系統的理解。需求變化會作用到系統開發本身,形成一種螺旋式的開發方式
  • 面向物件設計中,類封裝了資料,而類的成員函式作為其對外的介面,抽象地描述類,用類將資料和操作這些資料的函式放在一起,這就是面向物件設計方法的本質

物件的引入

造房子的磚頭有紅色的磚、有方磚、有圓磚,此時現實生活中的各種各樣的磚頭都可以稱作是物件.

方磚、圓磚,他們之間頭共同點,但也有不同方面,這些不同的地方使得它們不可能是同一種物件,然而磚頭是所有種類磚的總成,所有的磚都是由它派生出來的,所以這個磚可以稱為是一個類.

類就是模板,也可以說類就是建立物件的基地,能產生出很多不同的物件

  • java語言與其他面嚮物件語言一樣,引入類的概念是用來建立物件的模板,它包含被建立物件的狀態描述和方法的定義。java是面嚮物件語言,它的原始檔是由若干個類組成,原始檔的副檔名為.java的文字檔案
  • 要學習java程式設計就必須學會怎樣去編寫類,即怎樣用java的語法去描述一類事物共有的屬性和功能。屬性通過變數來刻畫,功能通過方法來體現,即方法操作屬性形成一定的演算法來實現一個具體的功能

類把資料和對資料的操作封裝成一個整體

  • 資料是描述某種型別的相關引數
  • 操作是允許執行的動作
class 學生{ //這就是人為定義的新的資料型別,和int/double之類系統預定義型別沒有什麼區別
String 學歷;
int 身高;
public void 設定學歷(String str){}
}

如何描述現實生活中的事物

對於事物描述通常只關注屬性和行為兩方面

明確該事物的屬性和行為並定義在類中即可

抽象資料型別

不要把自定義的類和一般資料型別對立

不同於int型別:具有方法

一切事物皆物件

通過面向物件的方式,將現實世界的事物抽象成物件,現實世界中的關係抽象成類、繼承,幫助人們實現對現實世界的抽象與數字建模。通過面向物件的方法,更利於用人理解的方式對複雜系統進行分析、設計與程式設計。同時,面向物件能有效提高程式設計的效率,通過封裝技術,訊息機制可以像搭積木的一樣快速開發出一個全新的系統

抽象

抽象是從特定的例項中抽取共同的性質以形成一般化概念的過程

  • 把眾多的事物歸納、劃分成類是我們在認識世界時經常採用的方法
  • 分類所依據的原則是抽象,也就是忽略事物的非本質特徵,只注意那些與當前目標有關的本質特徵
  • 找出事物的共性並將具有共同性質的事物劃分為同一個類

面向物件的概念

面向物件是一種新興的程式設計方法或者是一種新的程式設計規範paradigm,其基本思想是使用物件、類、繼承、封裝、訊息等基本概念來進行程式設計

  • 從現實世界中客觀存在的事物(即物件)出發來構造軟體系統,並且在系統構造中儘可能運用人類的自然思維方式
  • 開發一個軟體是為了解決某些問題,這些問題所涉及的業務範圍稱作該軟體的問題域。其應用領域不僅僅是軟體,還有計算機體系結構和人工智慧等
  • 面向物件的思想已經涉及到軟體開發的各個方面。如面向物件的分析OOA、面向物件的設計OOD以及面向物件的程式設計實現OOP

OOP使得現實世界中的概念在計算機程式中程式設計模組,它包括構造程式的特徵以及組織資料和演算法的機制

面向物件是一種對現實世界理解和抽象的方法

OOP語言有3大特徵:封裝、繼承及多型,所有這些特徵與類的概念是息息相關的

物件

物件是要進行研究的任何事物,從最簡單的整數到複雜的飛機等均可看作物件,它不僅能表示具體的事物,還能表示抽象的規則、計劃或事件

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

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

  • 現實世界中所有的事物都是物件
  • 物件都具有某些特徵,並展現某些行為

物件的兩個要素

  • 屬性
    於描述物件靜態特性(結構特性)的一個數據項, 描述一個人可用姓名、性別、身份證號等屬性
  • 方法(也稱服務)
    用於描述物件動態特性(行為特性)的一個操作系列,每個人都具有工作、學習等行為特性物件將資料和施加於資料上的操作打包成一個不可分割的最基本的模組,使得僅有該類的有限個方法才可以操縱、改變這些資料,

物件的狀態和行為

物件具有狀態,一個物件用資料值來描述它的狀態

物件還有操作,用於改變物件的狀態,物件及其操作就是物件的行為

物件實現了資料和操作的結合,使資料和操作封裝於物件的統一體中

用Java語言對現實生活中的事物進行描述,通過類的形式來體現

類是具有共同屬性和行為的物件的抽象

  • 類是用於組合各個物件所共有操作和屬性的一種機制

  • 類是具有相同屬性和行為的一組物件的集合

  • 物件的抽象是類,類的具體化就是物件,也可以說類的例項是物件
    類可以定義為資料和方法的集合,類也稱為模板,因為它們提供了物件的基本框架

  • 一旦定義類後,就可以用這種新類來建立該型別的物件

  • 類就是物件的模板(template )而物件就是類的一個例項(instance)
    類實際上就是一種資料型別

類具有屬性,它是物件的狀態的抽象,用資料結構來描述類的屬性

  • 類具有操作,它是物件的行為的抽象,用操作名和實現該操作的方法來描述

類和物件之間的關係

類是事物的描述

  • 類是Java程式的核心,它定義了物件的形狀和本質,可以用類來建立物件。當使用一個類建立了一個物件時,通常說給出了這個類的一個例項
  • 類由類宣告和類體構成,一般命名方法為:首字母大寫,大寫字母分詞,例如XueSheng
class className{
//類體;
}
  • 類包含資料成員(資料、屬性)和成員方法(函式)。一般建議資料成員應該是通過函式(方法)訪問的
  • 物件是類的例項,就是應用中定義的某個類的變數,例如Person p=new Person(); p就是物件
  • 類是和問題域相關的具有相同屬性和行為的物件的抽象
    物件是該類事物的例項,在Java中通過new來建立的

訊息和方法

物件之間進行通訊的結構叫做訊息。傳送一條訊息至少要包括說明接受訊息的物件名、傳送給該物件的訊息名(即物件名、方法名)

類中操作的實現過程叫做方法,一個方法有方法名、返回值、引數、方法體

面向物件的三大特徵:封裝、繼承、多型

定義類
定義類其實就是在定義類中的成員
class Car{}

類成員

  • 成員屬性;表示當前物件的狀態或者用於描述當前物件。例如public int age;

  • 成員方法就是行為,成員方法表示具有的功能或者邏輯,語法:“範圍限定詞 返回型別(void沒有返回值) 方法名稱(引數列表,例如int age, String username)”,例如public void pp(){}
    Java類的定義

  • 類是組成Java程式的基本要素。它封裝了一類物件的狀態和方法,是這一類物件的原型

[類的修飾字] class 類名稱 [extends 父類名稱][implements 介面名稱列表]

變數定義及初始化;

方法定義及方法體;

  • 類體,其中定義了該類中所有的變數和該類所支援的方法,稱為成員變數和成員方法