首頁 資料庫 mysql教程 面向对象的特征

面向对象的特征

Jun 07, 2016 pm 04:11 PM
uml 了解 物件 特徵 面向

在UML中,了解到了面向对象,所以对面向对象有个初步的认识,为以后能够更加方便的理解面向对象打下一个好的基

在UML中,了解到了面向对象,所以对面向对象有个初步的认识,为以后能够更加方便的理解面向对象打下一个好的基础。

抽象、封装、继承和多态,这是面向对象技术的四大基本特征,也是面向对象程序设计思想的组成。正是这些特征,使得程序的安全性、可靠性和可重用性得到保证,并且经过发展,面向对象的思想应用范围更加广泛,不光是软件,在硬件、人工智能、分布式计算、操作系统等领域的应用也越来越重要。

抽象

抽象可以忽略事物中与当前目标无关的非本质特征、强调与当前目标有关的特征。比如地球仪,我们的目标是通过地球仪来认识地球的全貌,而不考虑地球仪上的部分与地球对应部分的比例是多少。这只是一个地球的模型,抽象的模型越简单、展露的特点越少,模型就越通用。我们通过观察地球仪,可以找到大家公认的七大洲四大洋,并不一定要知道每个大洲或大洋的具体模样,在地球仪上都有,随便一看就可以分辨出来。

抽象也可以对信息进行分类处理,将对象按照一定的标准进行划分,实现抽象模型的层次结构,更加通用和易处理。这样,抽象出来的类就为对象的重用提供了保障。

封装

把对象的状态和行为绑到一起的机制,使对象形成一个独立的整体,并且尽可能的隐藏对象的内部细节。封装的信息屏蔽作用反应了事物的相对独立性,帮助保护数据的完整性。绑定有两个含义:一时把对象的全部状态和行为结合在一起,形成一个不可分割的整体。对象的私有属性只能够由对象的行为来修改和读取;二是尽可能隐蔽对象的内部细节,与外界的联系只能通过外部接口来实现。封装的结果是使对象以外的部分不能随意更改对象的内部属性或状态,可以通过公共访问控制器来控制对象封装了的属性或状态的改变。

在面向对象的程序设计中,不能一味的限制对象的属性被外部直接读取,否则将增加很多无用的操作,要对对象的属性进行分析后再设置。

继承

各种事物之间不光有它们的共性,还有各个事物自己的特性,如果忽略了事物的特性,那么世界就会变得一层不变,失去了特色的精彩世界。事物的各自的特色和个性是这个层次的世界稳固的原因,这些特色也是来区别事物共性的部分,相辅相成。

与抽象对比,抽象是把事物间的特性舍弃,抽象出事物间的共性成为一个类;而继承则是提取了事物间的不同特性形成的多个类,这个类具有前一个类的全部特征,是前一个类的子集,形成了一个层次的结构。这样就可以看出,继承和抽象是两个相逆的过程,抽象是从多个对象中抽象出来了共性的类,是一个由多到少的过程;继承则是从对象类中分层为多个具有自己特性的子类,是一个由少到多的过程。


特别的,继承意味着“自动拥有”,即在特殊类中不必重新对已经存在一般类中的所定义过的属性和行为进行定义,而是特殊类自动的,隐含的拥有其一般类的属性和行为,且继承后这些属性和行为都是自己确实存在的。一般类称为基类,特殊类称为派生类。以上图为例,小学生和中学生,大学生,研究生这四个特殊类是学生类这个一般类的子类,也是从学生类中继承来的新类,它们自动的拥有了所有属于学生类的属性和方法,而同时它们又有自己的特性,不用再重新定义在学生类中已经定义过的属性和方法。学生类是基类,小学生等类是派生类。

继承在面向对象软件的开发过程中有如下目的,或者可以说是优势:1.对类的描述更加简洁;2.能够重用和扩展现有类库资源;3.是软件易于维护和修改。

多态

多态是指两个或多个属于不同类的对象,对于同一个消息或方法调用所作出的不同相应的能力。在面向对象的程序设计中,多态性是指在两个或多个属于不同类的同一函数名对应于多个具有相似功能的不同函数,可以使用相同的调用方式来调用这些具有不同功能的同名函数。这个可以这样理解,在一个图形的基类中有一个方法是画图,派生类矩形和派生类椭圆中也有画图的方法,但是通过同一个画图动作,矩形类画出来的图形是矩形,椭圆中画图画出来的是椭圆。

继承性和多态性的结合,实现了软件的个性化设计。面向对象中的抽象和继承更加重要,对面向对象的理解非常有帮助,当对面向对象陌生的时候可以以这两个为突破点,全面理解面向对象。

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

使用PHP的json_encode()函數將陣列或物件轉換為JSON字串 使用PHP的json_encode()函數將陣列或物件轉換為JSON字串 Nov 03, 2023 pm 03:30 PM

JSON(JavaScriptObjectNotation)是一種輕量級的資料交換格式,已成為Web應用程式之間資料交換的常用格式。 PHP的json_encode()函數可以將陣列或物件轉換為JSON字串。本文將介紹如何使用PHP的json_encode()函數,包括語法、參數、傳回值以及具體的範例。語法json_encode()函數的語法如下:st

了解 Redisson 快取技術 了解 Redisson 快取技術 Jun 21, 2023 am 09:54 AM

Redisson是一種基於Redis的Java應用程式快取解決方案。它提供了許多有用功能,使得在Java應用程式中使用Redis作為快取變得更加方便和高效。 Redisson提供的快取功能包括:1.分散式映射(Map):Redisson提供了一些用於建立分散式映射的API。這些映射可以包含鍵值對、哈希表項或對象,它們可以支援在多個節點之間共

使用Python的__contains__()函數定義物件的包含操作 使用Python的__contains__()函數定義物件的包含操作 Aug 22, 2023 pm 04:23 PM

使用Python的__contains__()函數定義物件的包含操作Python是一種簡潔而強大的程式語言,提供了許多強大的功能來處理各種類型的資料。其中之一是透過定義__contains__()函數來實現物件的包含操作。本文將介紹如何使用__contains__()函數來定義物件的包含操作,並且給予一些範例程式碼。 __contains__()函數是Pytho

一目了然:JSP檔案開啟的方法速覽 一目了然:JSP檔案開啟的方法速覽 Jan 31, 2024 pm 09:28 PM

JSP檔案開啟方式JSP(JavaServerPages)是一種動態網頁技術,它允許程式設計師在HTML頁面中嵌入Java程式碼。 JSP檔案是一個文字文件,其中包含HTML程式碼、XML標記和Java程式碼。當JSP檔案被要求時,它會被編譯成JavaServlet,然後由Web伺服器執行。開啟JSP檔案的方法有幾種方法可以開啟JSP檔案。最簡單的方法是使用文字編輯器,

如何將 MySQL 查詢結果陣列轉換為物件? 如何將 MySQL 查詢結果陣列轉換為物件? Apr 29, 2024 pm 01:09 PM

將MySQL查詢結果陣列轉換為物件的方法如下:建立一個空物件陣列。循環結果數組並為每一行建立一個新的物件。使用foreach迴圈將每一行的鍵值對賦給新物件的對應屬性。將新物件加入到物件數組中。關閉資料庫連線。

Go語言和Golang之間的差異:你清楚嗎? Go語言和Golang之間的差異:你清楚嗎? Feb 24, 2024 pm 06:06 PM

Go和Golang是同一種程式語言,它們之間沒有實質的區別。 Go是該程式語言的正式名稱,而Golang則是Go語言開發者在網路領域中常用的簡稱。在本文中,我們將探討Go語言的特點、用途,以及一些具體的程式碼範例,幫助讀者更了解這門強大的程式語言。 Go語言是由Google開發的靜態編譯型程式語言,具有高效、簡潔、並發性強的特點,旨在提高程式設計師的工作效

PHP 函數如何傳回物件? PHP 函數如何傳回物件? Apr 10, 2024 pm 03:18 PM

PHP函數可以透過使用return語句後接物件實例來傳回對象,從而將資料封裝到自訂結構中。語法:functionget_object():object{}。這允許創建具有自訂屬性和方法的對象,並以對象的形式處理資料。

使用Python的__le__()函數定義兩個物件的小於等於比較 使用Python的__le__()函數定義兩個物件的小於等於比較 Aug 21, 2023 pm 09:29 PM

標題:使用Python的__le__()函數定義兩個物件的小於等於比較在Python中,我們可以透過使用特殊方法來定義物件之間的比較操作。其中之一就是__le__()函數,它用來定義小於等於比較。 __le__()函數是Python中的一個魔法方法,並且是一種用於實現「小於等於」操作的特殊函數。當我們使用小於等於運算子(<=)比較兩個物件時,Python

See all articles