摘要:面向對象面向對象的概述面向對象是什么面向對象編程的全稱是,簡稱。面向對象編程是用抽象方式創建基于現實世界模型的一種編程。面向對象編程可以看做是使用一系列對象相互協作的軟件設計。面向對象編程的山歌主要的特征是封裝繼承多態。
面向對象 面向對象的概述 面向對象是什么
面向對象編程的全稱是Object Oriented Programming,簡稱OOP。
面向對象編程是用抽象方式創建基于現實世界模型的一種編程。
面向對象編程可以看做是使用一系列對象相互協作的軟件設計。面向對象程序設計的目的是在編程中促進更好的靈活性和可維護性。憑借其對模塊化的重視,面向對象的代碼開發更簡單,更加容易理解。
面向對象編程的山歌主要的特征是:1.封裝;2.繼承;3.多態。
所有的程序是由一定的屬性和行為對象組成的,不同的對象的訪問通過函數調用來完成,對象間所有的交流都是通過方法調用,通過對封裝對象數據,提高復用率。
JavaScript是一種基于原型的面向對象語言,而不是基于類的。正式由于這一根本的區別,其如何創建對象的層級結構以及對象的屬性與屬性值是如何繼承的并不是那么清晰。
基于原型語言(如JavaScript)并不存在這種區別:它只有對象。基于原型的語言具有所謂原型對象(prototypical object)的概念。原型對象可以作為一個模板,新對象可以從中獲得原始的屬性。任何對象都可以指定其自身的屬性,既可以是創建時也可以在運行時創建。而且,任何對象都可以作為另一個對象的原型(prototype),從而允許后者共享前者的屬性。
所謂封裝就是按照要求使用并得到對應的結果,而不需要知道其真實的執行原理是怎么樣的。
封裝主要用于闡述對象中所包含(或封裝)的內容,他們通常由兩部分組成:
1.相關數據(用于存儲屬性)
2.基于這些數據所能做的事情
繼承通過是指類與類之間的關系。如果兩給類都有相同的屬性或方法,那么可以讓一個類繼承于另一個類,這樣就不需要再前者再次定義同樣的屬性或方法。
創建一個或多個類的專門版本類方式稱為繼承(JavaScript只支持單繼承)。創建的專門版本的類通常叫做子類,另外的類通常叫做父類。
在JavaScript中,繼承通過賦予子類一個父類的實例并專門化子類來實現。
不同的對象可以定義具有相同名稱的方法,方法是作用于所在的對象中。這種不同對象通過相同方法的調用實現各自行為的能力,被稱之為多態。
例如A對象具有sayMe()方法,B對象繼承于A對象,那么B對象中也具有sayMe(),當調用sayMe()方法時,并不知道該方法時A對象還是B對象。但這并不影響代碼的真誠噶很難過工作。
構造函數又稱為構造器或對象模板,是對象中的一個方法,在實例化時構造器被調用。在JavaScript中函數就可以作為構造器使用,因此不需要特別地定義一個構造器方法。
創建構造函數(類的概念) - 用于創建對象(屬性和方法) function 構造函數名稱(){ this.屬性名 = 屬性值; this.方法名 = function(){ 方法體 } } this關鍵字 -> 指代利用當前構造函數創建的對象 function Hero(name){ this.name = name; this.sayMe = function(){ console.log("我是" + name); } } // 利用構造函數創建對象 var hero = new Hero("張無忌"); console.log(hero); var obj = { name : "張無忌", sayMe : function(){ console.log("我是張無忌"); } }
注意;
1.這里的Person()并不是作為函數,而是構造函數。
2.創建person對象需要使用new關鍵字。
0構造函數的屬性實際上就是對象的變量。一個對象可以包含多個屬性,定義構造函數的屬性時使用this關鍵字。
// 1.函數;2.構造函數 function Hero(name){ var v = 100;// 局部變量 function n(){}// 內部函數 this.name = name;// 屬性 this.sayMe = function(){// 屬性 console.log("我是"+name); } } // 1.函數調用 Hero(); // 2.構造函數使用 var hero = new Hero(); function fun(){ var v = 100;// 局部變量 // 方法 this.get = function(){ return v; } this.set = function(value){ v = value; } } // 構造函數 var f = new fun(); console.log(f); console.log(f.get()); f.set(200); console.log(f.get());構造函數的方法
構造函數的方法很想構造函數的屬性,不同的方法是一個函數(或者象函數一樣被定義)。
定義構造函數的方法是使用this關鍵字。
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/108156.html
摘要:很多情況下,通常一個人類,即創建了一個具體的對象。對象就是數據,對象本身不包含方法。類是相似對象的描述,稱為類的定義,是該類對象的藍圖或原型。在中,對象通過對類的實體化形成的對象。一類的對象抽取出來。注意中,對象一定是通過類的實例化來的。 showImg(https://segmentfault.com/img/bVTJ3H?w=900&h=385); 馬上就要到七夕了,離年底老媽老爸...
摘要:很多情況下,通常一個人類,即創建了一個具體的對象。對象就是數據,對象本身不包含方法。類是相似對象的描述,稱為類的定義,是該類對象的藍圖或原型。在中,對象通過對類的實體化形成的對象。一類的對象抽取出來。注意中,對象一定是通過類的實例化來的。 showImg(https://segmentfault.com/img/bVTJ3H?w=900&h=385); 馬上就要到七夕了,離年底老媽老爸...
摘要:很多情況下,通常一個人類,即創建了一個具體的對象。對象就是數據,對象本身不包含方法。類是相似對象的描述,稱為類的定義,是該類對象的藍圖或原型。在中,對象通過對類的實體化形成的對象。一類的對象抽取出來。注意中,對象一定是通過類的實例化來的。 showImg(https://segmentfault.com/img/bVTJ3H?w=900&h=385); 馬上就要到七夕了,離年底老媽老爸...
摘要:說到底面向對象才是程序語言的根本。其實面向對象編程說的就是自定義對象。里并沒有類的概念,所以嚴格上來講這是個假的面向對象里的面向對象編程現在好了,終于聽到別人鄙視我們了,給我們提供了類這個概念,其實是向傳統語言更靠齊了。 通過前兩篇文章,我們了解了對象的概念以及面向對象里的相關概念等知識,那前面說了對象分類里的前兩種,這篇文章要詳細去說第三種自定義對象,那真正的好戲這就來了! 面向對象...
摘要:如果要理解基于原型實現面向對象的思想,那么理解中得三個重要概念構造函數原型原型鏈對幫助理解基于原型的面向對象思想就顯得尤為重要。函數對象的原型在中,函數是一種特殊的對象,所有的函數都是構造函數的實例。 介紹 和java這種基于類(class-base)的面向對象的編程語言不同,javascript沒有類這樣的概念,但是javascript也是面向對象的語言,這種面向對象的方式成為 基...
閱讀 3216·2023-04-25 18:43
閱讀 896·2021-11-24 09:39
閱讀 1364·2021-10-14 09:43
閱讀 3896·2021-09-22 15:58
閱讀 1911·2019-08-29 17:18
閱讀 415·2019-08-29 14:14
閱讀 3082·2019-08-29 13:01
閱讀 1619·2019-08-29 12:33