1. 程式人生 > >OC溫故:類的三大特性(封裝,繼承,多型)

OC溫故:類的三大特性(封裝,繼承,多型)

我們都知道,面向物件程式設計中的類有三大特性:繼承,封裝,多型,這個也是介紹類的時候,必須提到的話題,那麼今天就來看一下OC中類的三大特性:

一、封裝

封裝就是對類中的一些欄位,方法進行保護,不被外界所訪問到,有一種許可權的控制功能,Java中有四種訪問許可權修飾符:

1 public,default,protected,private

訪問許可權依次遞減,這樣我們在定義類的時候,哪些欄位和方法不想暴露出去,哪些欄位和方法可以暴露,可以通過修飾符來完成,這就是封裝,下面來看一個例子吧:

Car.h

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 //  Car.h   //  05_ObjectDemo   //   //  Created by jiangwei on 14-10-11.   //  Copyright (c) 2014年 jiangwei. All rights reserved.   //   #import    @interface Car : NSObject{  
//這個屬性就是對外進行保密的相當於private,所以我們需要在外部訪問的話,必須定義get/set方法   //預設的是private的,但是我們可以使用@public設定為public屬性的,那麼在外部可以直接訪問:person->capcity = 2.8;   //當然我們一般不這麼使用,因為這會破壞封裝性,這種用法相當於C中的結構體中許可權   //一共四種:@public,@protected,@private,@package,這個和Java中是相同的   @public   float _capcity; //油量屬性   }   - (void)run:(float)t;  
@end

這裡我們可以看到,OC中也是有四種訪問許可權修飾符:

1 @public、@protected、@private、@package

其中預設的修飾符是@private

但是這裡要注意的是:OC中的方法是沒有修飾符的概念的,這個和Java有很大的區別,一般都是公開訪問的,即public的,但是我們怎麼做到讓OC中的一個方法不能被外界訪問呢?

OC中是這麼做的,如果想讓一個方法不被外界訪問的話,只需要在.m檔案中實現這個方法,不要在標頭檔案中進行定義,說白了就是:該方法有實現,沒定義,這樣外界在匯入標頭檔案的時候,是沒有這個方法的,但是這個方法我們可以在自己的.m檔案中進行使用。

為什麼要介紹這點知識呢?因為在後面我們會說到單利模式,到時候就會用到這個知識點了。

二、繼承

繼承是類中的一個重要的特性,他的出現使得我們沒必要別寫重複的程式碼,可重用性很高。當然OC中的繼承和Java中是一樣的,沒多大區別,這裡在看一個例子吧:

首先來看一下父類:Car

Car.h

1 2 3 4 5 6 7 8 9 10 11 12 13

相關推薦

Java面向物件三大特性-封裝繼承

在講Java面向三大特性之前,我們先了解一下訪問修飾符的訪問範圍: (1):private:同類中具有訪問許可權。 (2):protected:本類 和同包以及不同包的子類才具有訪問許可權。 (3):public:統一工程中都具有訪問許可權。 (4):預設 本類和同包範圍內具有訪問許可權。 一、Ja

補習:C# 面向物件三大特性:封裝繼承

C# 面向物件三大基本特性 封裝、繼承、多型 1、封裝 隱藏物件的屬性和實現細節,僅對外公開介面,控制在程式中屬性的讀取和修改的訪問級別。 C# 封裝根據具體的需要,設定使用者的訪問許可權,並通過 訪問修飾符 來實現。 一個 訪問修飾符 定義了一個類成員的範圍和可

面向物件程式設計三大特性------封裝繼承

一、封裝     封裝從字面上來理解就是包裝的意思,專業點就是資訊隱藏,是指利用抽象資料型別將資料和基於資料的操作封裝在一起,使其構成一個不可分割的獨立實體,資料被保護在抽象資料型別的內部,儘可能地隱藏內部的細節,只保留一些對外介面使之與外部發生聯絡。系統的其他物件只能

面向物件三大特性-----封裝繼承

前言   前面有文章寫到了面向物件程式設計和麵向物件設計的頭五大原則(SOLID五大原則)。今天我們再來談談面向物件的三大特性--封裝、繼承、多型 封裝    被定義為"把一個或多個專案封閉在一個物理的或者邏輯的包中"。在面向物件程式設計方法論中,封裝是為了防止對實現細節的訪問。封裝只公開某些

OC:三大特性(封裝繼承)

我們都知道,面向物件程式設計中的類有三大特性:繼承,封裝,多型,這個也是介紹類的時候,必須提到的話題,那麼今天就來看一下OC中類的三大特性: 一、封裝 封裝就是對類中的一些欄位,方法進行保護,不被外界所訪問到,有一種許可權的控制功能,Java中有四種訪問許

Java三大特性封裝繼承

(尊重勞動成果,轉載請註明出處:https://blog.csdn.net/qq_25827845/article/details/84592274冷血之心的部落格)           面向物件的語言有三大特性,即封裝繼承與多型。三大特

JAVA基礎第三章-與物件、抽象、介面 JAVA基礎第一章-初識java JAVA基礎第二章-java三大特性封裝繼承

 業內經常說的一句話是不要重複造輪子,但是有時候,只有自己造一個輪子了,才會深刻明白什麼樣的輪子適合山路,什麼樣的輪子適合平地! 我將會持續更新java基礎知識,歡迎關注。   往期章節: JAVA基礎第一章-初識java JAVA基礎第二章-java三大特

JAVA基礎第四章-集合框架Collection篇 JAVA基礎第一章-初識java JAVA基礎第二章-java三大特性封裝繼承 JAVA基礎第三章-與物件、抽象、介面 記一次list迴圈刪除元素的突發事件!

 業內經常說的一句話是不要重複造輪子,但是有時候,只有自己造一個輪子了,才會深刻明白什麼樣的輪子適合山路,什麼樣的輪子適合平地! 我將會持續更新java基礎知識,歡迎關注。   往期章節: JAVA基礎第一章-初識java JAVA基礎第二章-java三大特性

JAVA基礎第五章-集合框架Map篇 JAVA基礎第一章-初識java JAVA基礎第二章-java三大特性封裝繼承 JAVA基礎第三章-與物件、抽象、介面 JAVA基礎第四章-集合框架Collection篇

 業內經常說的一句話是不要重複造輪子,但是有時候,只有自己造一個輪子了,才會深刻明白什麼樣的輪子適合山路,什麼樣的輪子適合平地! 我將會持續更新java基礎知識,歡迎關注。   往期章節: JAVA基礎第一章-初識java

面向物件的三大特性封裝繼承

1.封裝  將一些資訊放入類內部(private),不允許外部程式直接訪問,如果需要使用這些資訊則需要通過該類提供的方法來實現對資料資訊的操作和訪問。 2.繼承(extends) 將已經存在的一個類A的屬性作為自己的屬性,並新增其他新的屬性或修改原來的方法使之符合新的需求所產生

java基礎-------面向物件三大特性封裝繼承

面向物件三大特性: 封裝、繼承、多型; 一、封裝 1、定義: 封裝就是將類的資訊隱藏在類內部,不允許外部程式直接訪問,而是通過該類的方法實現對隱藏資訊的操作和訪問。 2、實現方法: 使用private關鍵字修飾 類內部的屬性; 3、如何訪問: 在類內部定義get、set方法,實行使用物件呼叫

JAVA基礎第二章-java三大特性封裝繼承 JAVA基礎第一章-初識java

業內經常說的一句話是不要重複造輪子,但是有時候,只有自己造一個輪子了,才會深刻明白什麼樣的輪子適合山路,什麼樣的輪子適合平地! 我將會持續更新java基礎知識,歡迎關注。   往期章節: JAVA基礎第一章-初識java      

java三大特性封裝繼承

至今記得若干年前,去面試排了半天的隊,到我的時候,面試官問我的第一個問題,java三大特性是什麼~我支支吾吾的沒有答全~0.0 什麼是封裝? 舉個例子:有一個房子,房子裡面有廚房,衛生間,臥室,客廳等房間,每一個房間都有各自的用途,而客人要來我家吃飯也好,閒聊也好,那麼他只能從我家的門(對外暴露的介面)進

面向物件三大特性封裝繼承

封裝: 將屬性和方法放到一起做為一個整體,然後通過例項化物件來處理; 隱藏內部實現細節,只需要和物件及其屬性和方法互動就可以了; 對類的屬性和方法增加 訪問許可權控制。 私有許可權:在屬性名和方法名 前面 加上兩個下劃線 __ 類的私有屬性 和 私有

Java面向物件概述及三大特徵(封裝繼承

一、面向物件思想 Java是面向物件的高階語言,對於Java語言來說,萬事萬物皆物件! 它的基本思想是使用類,物件,繼承,封裝,訊息等基本概念進行程式設計。面向物件程式的最小單元是類,類代表了客觀世界中具有某一特徵的一類事物,封裝了這類事物所具有的屬性和行為。 所以,類定義=成員變數(屬性)+方法(行為

java基礎之面向物件的三大特徵:封裝繼承學java必會!

java它是OOP語言(ObjectOrientedProgramming)面向物件程式語言,那麼什麼是物件?物件是什麼?毫無疑問這個問題有很多個答案,每個人對物件的理解是不一樣。 java面向物件的三大基本特徵之封裝: 我們為什麼要對我們的程式碼進行封裝?當我們定義一個人類的體重,要

面向物件的三大特徵封裝繼承的個人理解以及程式碼分析

面向過程:我們以前使用的是面向過程程式設計,你需要清除每個實現步驟,每個步驟每行程式碼都要仔仔細細的編寫,      不知道過程就找不到結果,找到實現過程就可以得到實現結果。      例如: 我們在外打工租房子,我們需要了解每個每個房屋的出租資訊,不然是找不到房子的。 面向物件:物件幫我們做事情,找到

Python中的封裝繼承

面向物件的三大特性:封裝,繼承和多型 封裝:在類的內部定義屬性和方法,通過物件或類名來訪問屬性和方法,隱藏功能的實現細節,也可以設定訪問許可權。 廣義的封裝:例項化一個物件,給物件空間封裝一些屬性;狹義的封裝:私有制;私有成員:私有靜態欄位,私有方法,私有物件屬性 繼承:子類需要重用父類的屬性和方法,子

python封裝繼承

#案例:小智今天想出去,但不清楚今天的天氣是否適宜出行,需要一個幫他提供建議的程式,程式要求輸入daytime#和night,根據可見度和溫度給出出行建議和使用的交通工具,需要考慮需求變更的可能#需求分析:使用python類的封裝、繼承、多型比較容易實現,由父類封裝檢視可見度和檢視溫度的方法,#子類繼承父類。

Java之路:封裝繼承

面向物件有三大特點:封裝性、繼承性和多型性。 一、封裝 1、封裝的含義 封裝 (Encapsulation)是將描述某類事物的資料與處理這些資料的函式封裝在一起,形成一個有機整體,稱為類。 類所具有的封裝性可使程式模組具有良好的獨立性與可維護性,這對大型程式的開發是特別重要的