1. 程式人生 > >類方法和類例項的區別

類方法和類例項的區別

先來看一道面試題:

下列說法錯誤的有()

A.在類方法中可用this來呼叫本類的類方法

B.在類方法中呼叫本類的類方法時可直接呼叫

C.在類方法中只能呼叫本類中的類方法

D.在類方法中絕對不能呼叫例項方法

曾經我做過兩次,都沒做正確,一:第一次做的時候 沒有回來查詢答案,二:當時確實不理解什麼是類方法。

******************歡樂的分割線***************************

方法根據是否有static修飾也可以分為類方法和物件方法(例項方法)。

訪問時,類方法可以直接通過類名引用,而例項方法必須通過物件名來訪問,也就是說要想使用例項方法,就必須建立一個該類的物件。

Math類的方法都是類方法,在使用時,可以如下:

int  i  = Math.abs(50);

一般而言,類方法的執行不依物件而改變。在定義方法時,一些與物件無關的通用方法通常被定義為類方法。由於類

方法是屬於整個類的,並不屬於哪個物件,所以類方法的方法體中不能有與類的物件有關的內容,所以出現下面的情

況的時候會出現編譯錯誤:

1 類方法中不能引用物件變數

2 類方法中不能呼叫類的物件方法

3 在類方法中不能使用super、this關鍵字

使用物件方法時,必須先建立物件例項,然後才能使用,如:

Student stu=new Student("0701956");

stu.showAcademicRecord();

與類方法相比,物件方法基本上沒有什麼限制:

1 物件方法可以引用物件變數,也可以引用類變數

2 物件方法中可以呼叫類方法

3 物件方法中可以使用super、this關鍵字。


轉載出處:http://blog.csdn.net/itmyhome1990/article/details/7791174

相關推薦

python例項方法方法靜態方法區別

類例項方法呼叫必須用例項, 類方法呼叫可以用例項也可以用類名, 類靜態方法調不需要例項化,通過類直接訪問 類方法的作用是它可以把例項當引數,也可以把類當引數傳進去 案例 class Person(): # 例項方法 def eat(self

方法例項區別

先來看一道面試題: 下列說法錯誤的有() A.在類方法中可用this來呼叫本類的類方法 B.在類方法中呼叫本類的類方法時可直接呼叫 C.在類方法中只能呼叫本類中的類方法 D.在類方法中絕對不能呼叫例項方法 曾經我做過兩次,都沒做正確,一:第一次做的時候 沒

Python的例項方法方法靜態方法之間的區別與聯絡

Python的例項方法、類方法和靜態方法 class Test: def test1(self): print('test......') @classmethod def test2(cls): print('test2......c

iOS的方法例項方法區別與使用 + -

1.什麼是類方法? 在OC類定義方法時以 + 開頭的方法,又稱為靜態方法。如:+ (viod)方法名{ }. 作用:不用例項話就可以直接呼叫的方法,一般是有返回值的,返回對應的例項(陣列、字串等),還有可能就是本身類的例項物件。常用於一些common或者UtiKit等公共方法類中。如對N

iOS的方法例項方法區別與使用

1.什麼是類方法? 在OC類定義方法時以 + 開頭的方法,又稱為靜態方法。如:+ (viod)方法名{ }. 作用:不用例項話就可以直接呼叫的方法,一般是有返回值的,返回對應的例項(陣列、字串等),還有可能就是本身類的例項物件。常用於一些common或者UtiK

synchronized 用在例項方法方法區別

在Java中,synchronized 是用來表示同步的,我們可以synchronized 來修飾一個方法。也可以synchronized 來修飾方法裡面的一個語句塊。       修飾例項方法: Java程式碼   publicsynchronizedvoid no

JAVA中例項變數與變數的區別例項方法方法區別

class TiXing{ private float up,height; private static float down; TiXing(float x,float y,float z){ up=x; height=y;

例項方法方法區別

1、類方法是屬於整個類,而不屬於某個物件。 2、類方法只能訪問類成員變數,不能訪問例項變數,而例項方法可以訪問類成員變數和例項變數。 3、類方法的呼叫可以通過類名.類方法和物件.類方法,而例項方法只能

實例的方法方法區別

屬性 類方法 .cn 空間 com min cnblogs 對象創建 行為 一、什麽是類: 在Java中類是用於描述客觀世界裏某一對象的共同特征,是一組相關的屬性和行為的集合。 二、什麽是對象(實例): 對象也被稱為實

objc中的方法實例方法有什麽本質區別聯系

實例 屬於 通過 實例對象 對象方法 self 類方法 緩存 變量 類方法: 類方法是屬於類對象的 類方法只能通過類對象調用 類方法中的self是類對象 類方法可以調用其他的類方法 類方法中不能訪問成員變量 類方法中不能直接調用對象方法 類方法是存儲在元類對象的方法緩存

屬性、例項屬性,靜態方法方法

類屬性、例項屬性 在瞭解了類基本的東西之後,下面看一下python中這幾個概念的區別 先來談一下類屬性和例項屬性 在前面的例子中我們接觸到的就是例項屬性(物件屬性),顧名思義,類屬性就是類物件所擁有的屬性,它被所有類物件的例項物件所共有,在記憶體中只存在一個副本,這個和C++中類的靜

Python 的例項方法方法靜態方法

Python 的例項方法、類方法和靜態方法 轉載請註明出處:https://blog.csdn.net/jpch89/article/details/84442713 文章目錄 Python 的例項方法、類方法和靜態方法 0. 參考資料

淺談c#語言的,事件,物件,方法函式的區別

在討論這些關係之前讓我們先來了解一下面向過程和麵向物件的區別: 所謂面向過程就是把一切事物或者需要解決的問題都當做是一個過程來處理,而面向物件則是把一切事物當成一個一個的物件來處理,這兩者有什麼區別呢,舉一個簡單的例子: 編寫一個駕駛汽車的程式: (1)面向過程的程式設計:

5分鐘搞懂Python中例項方法,方法靜態方法

1. 例項方法: 由例項物件呼叫且至少有一個self引數; 執行例項方法時,自動將呼叫該方法的物件賦值給self. 2.類方法: 由類物件呼叫且至少有一個cls引數; 執行類方法時,自動將呼叫該方法的類賦值給cls. 3.靜態方法: 由類呼叫, 沒有預設引數. class Foo(object

runtime如何通過selector找到對應的IMP地址?(分別考慮方法例項方法

最近在看《招聘一個靠譜的iOS》,這是其中的一個題目,看著別人的解答不是很詳細,於是就想弄清楚一些,通過查找了一些資料並且自己寫了一些測試的程式碼,在這裡做個總結! 概述 類物件中有類方法和例項方法的列表,列表中記錄著方法的名詞、引數和實現,而selec

Python靜態方法(staticmethod)方法(classmthod)區別

因為對方法和函式兩者概念有些混淆,所以研究了一下。後來順帶把靜態方法和類方法也摸索了一下,稍微有了一些感覺。 直接上程式碼: # coding:utf-8 class Apple:

python進階14:例項方法方法、types.MethodType()

1 例項方法   一個例項的私有屬性就是以__開頭的屬性,無法被外部訪問,那這些屬性定義有什麼用?雖然私有屬性無法從外 部訪問,但是,從類的內部是可以訪問的。除了可以定義例項的屬性外,還可以定義例項的方法。例項的方法就是在 類中定義的函式,它的第一個引數永遠是 self,指

Python 靜態方法方法區別

python staticmethod and classmethodThough classmethod and staticmethod are quite similar, there’s a slight difference in usage for both en

例項變數變數、方法例項方法

類體中包括成員變數和區域性變數,而成員變數又可以細分為例項變數和類變數,在宣告成員變數的時候,用static給予修飾的稱作類變數,否則稱作例項變數。(類變數也稱為static變數,靜態變數) 那麼,類變數和例項變數有什麼區別呢? 我們知道,一個類通過使用ne

Java使用static的方法與不使用的區別

一、靜態變數與例項變數的區別(對於常量和變數而言): 1. 區域性變數: 區域性變數是類的方法中的變數; 2. 例項變數: 例項變數也是類中獨立於方法之外的變數,不過沒有static修飾,也叫 物件變數 3. 類變數(靜態變數): 類變數是類中獨立於方法之外的變數,用static 修飾,也叫 靜態變數 p