1. 程式人生 > >IOS之OC入門--類方法和物件方法

IOS之OC入門--類方法和物件方法

程式碼時錯誤的  主要是為了瞭解類方法和物件方法的使用時注意的一些細節

/*
 4.設計一個成績類
 * C語言成績(可讀可寫)
 * OC成績(可讀可寫)
 * 總分(只讀)
 * 平局分(只讀)
 */


# import <Foundation/Foundation.h>

@interface Score : NSObject
{
    double _cScore;   //C語言成績
    double _ocScore;  //OC成績
    
    double _totalScore;   //總分
    double _averageScore;    //平均分
}

- (void)setCScore:(double)cScore;
- (double)cScore;

- (void)setOcScore:(double)ocScore;
- (double)ocScore;

//總分
- (double)totalScore;

//平均分
- (double)averageScore;

@end

@implementation Score

//C語言的set和get方法
- (void)setCScore:(double)cScore
{
    _cScore = cScore;
    
    //總分
    _totalScore = _cScore + _ocScore;
    
    //平均分
    _averageScore = _totalScore / 2;
}

- (double)cScore
{
    return _cScore;
}

//OC語言的set和get方法
- (void)setOcScore:(double)ocScore
{
    _ocScore = ocScore;
    
    //總分
    _totalScore = _cScore + _ocScore;
    
    //平均分
    _averageScore = _totalScore / 2;
}
- (double)ocScore
{
    return _ocScore;
}

//總分的get方法
- (double)totalScore
{
    return _totalScore;
}

//平均分分的get方法
- (double)averageScore
{
    return _averageScore;
}

@end

int main()
{
    Score *s = [Score new];
    
    [s setCScore:80];
    [s setOcScore:75];
    
    NSLog(@"C語言的成績是:%5.2f, OC成績是:%5.2f, 總分是:%5.2f, 平均分是:%5.2f", [s cScore], [s ocScore], [s totalScore], [s averageScore]);
    
    return 0;
}

工具類:基本沒有任何成員變數,裡面的方法基本都是類方法


相關推薦

IOSOC入門方法物件方法

程式碼時錯誤的  主要是為了瞭解類方法和物件方法的使用時注意的一些細節 /* 4.設計一個成績類 * C語言成績(可讀可寫) * OC成績(可讀可寫) * 總分(只讀) * 平局分(只讀) */ # import <Foundation/Founda

OC方法物件方法對比

方法 1. 方法的宣告和實現,都必須以+/—開頭 2. +表示類方法(靜態方法) 呼叫方式:[className classMethod]; 3. -表示例項方法(動態方法) 呼叫方式:[obj instanceMethod]; 區別:

黑馬程式設計師-OC-方法物件方法的呼叫

1.類方法 宣告:在.h檔案中宣告,必須以+開頭。 實現:在.m檔案中實現 2.物件方法 宣告:在.h檔案中宣告,必須以-開頭。 實現:在.m檔案中實現 對比: 1)類方法只能類呼叫,物件方法只能物件呼叫 2)類方法與物件方法可以

【Objective-C】05-OC物件方法物件方法的比較

一、類方法 1.1 噹噹前方法中不涉及類的成員變數時,可以把方法宣告成類方法。這樣做的好處是可以不用宣告類的例項物件,減少記憶體空間的佔用,提高執行效率。即類的方法不依賴於物件。 1.2 以加號 + 開頭 1.3 只能由類(名)來呼叫 1.4 類方法中不能訪問類的成員變

java中synchronized 用在例項方法物件方法上面的區別

https://bijian1013.iteye.com/blog/1836575    在Java中,synchronized 是用來表示同步的,我們可以synchronized 來修飾一個方法。也可以synchronized 來修飾方法裡面的一個語句塊。    

iOSOC使用原生控制元件實現分享到QQ、微信、簡訊、微博等的兩種方法

現在任何一款APP都離不開“分享”,產品設計可能是覺得有分享能更好的推廣自己的產品吧。。。 一種是使用UIActivityViewController, 另外一種是使用Social框架中的SLComposeViewController 一、UIActivityViewCon

pythonproperty、方法靜態方法

new 增刪改查 turn 引用 dict 沒有 不同的 保護 實例化 一、完整的property1、定義一個方法被偽裝成屬性之後,應該可以執行一個屬性的增刪改查操作,增加和修改就對應著被setter裝飾的方法,刪除一個屬性對應著被deleter裝飾的方法。 @prope

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

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

PyQt單行文字框(QLineEdit)中的常用方法訊號

QLineEdit類中的常用方法和訊號 一、QLineEdit類中的常用方法 setAlignment(): 按固定方式對齊文字: Qt.AlignLeft:水平方向靠左對齊 Qt.AlignRight:水平方向靠右對齊 Qt.AlignCenter:水平方向居

Python學習手冊數據封裝、方法靜態方法

tle tro 變量 無法 code att span method 私有 在上一篇文章中,我們介紹了 Python 的內部方法、操作符重載和對象生命周期,現在我們介紹 Python 的數據封裝、類方法和靜態方法。查看上一篇文章請點擊:https://www.cnblogs

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

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

iOSOC、swift) 結構體的區別

OC: 相同點:都可以將多個數據封裝為一個整體。 不同點: 1. 結構體只能封裝資料,而類還可以封裝行為。 2. 賦值 :結構體是(拷貝),物件之間是(地址) 3. 結構體變數分配在棧空

Ruby中的反射(Reflection) 操作成員變數私有方法(完)

上一篇文章我們說到了Ruby中的反射(Reflection)-通過類名稱構造類物件。 使用過Java反射的同學們都知道,有了物件之後,操作成員變數和私有方法也就不在話下了。 Ruby中也是一樣。 先看操作成員變數的例子。我們嘗試更改一個成員變數的值。(接著上一片文章的程式碼) #manpulate

Xamarin.IOS快速入門

歡迎大家加入以下開源社群 Xamarin-Cn:https://github.com/Xamarin-Cn Mvvmcross-Cn:https://github.com/Mvvmcross-Cn  (另外微信訂閱號 Xamarin 所有者@善友兄也給予了運營許可權,後面將開始陸續運營起來,給大家推送相

Java 回撥函式(傳統方法lambda方法一個例子秒懂

背景: 想寫一個工具類 Tool.java ,其中方法 public void readOneLine() 負責一行一行地讀檔案,然後根據不同的業務,對每一行進行不同處理。最後輸出到檔案 out.txt 那麼問題來了,根據不同的業務,進行不同處理 怎麼實現?

黑馬程式設計師--OC基礎--方法物件方法self的使用

1、類方法 (1)類方法就是一個方法,它的使用不需要使用者去建立一個類的例項進行呼叫而可以直接通過類名對方法進行呼叫。 宣告一個類方法的格式: +(返回值型別) 方法名:(引數1型別)引數1名稱 方法名:(引數2型別)引數2名稱; 例:

OC 物件的記憶體儲存細節(方法物件方法的呼叫細節)

// //  main.m //  第二個OC類 #import <Foundation/Foundation.h> /* 定義一個類:person 屬性:age hei

ios圖片的拉伸、UIImageView的stretchableImageWithLeftCapWidth方法詳解

#import "UIImage+Extension.h" @implementation UIImage (Extension) + (UIImage *)resizedImageWithName:(NSString *)name { return [self resizedImageWithN

OC方法成員方法

今天中午,偶然間發現nsobject的description的函式為類函式,我想覆蓋這個函式,自定義類的描述,但要訪問到成員變數,必須是成員函式(這個符合類函式的特性,類名直接呼叫),那麼問題來了,我能直接覆蓋這個函式麼,需要其他關鍵字麼? 研究了一箇中午後,得出了結論:能

黑馬程式設計師 oc隨記 方法物件方法

------- android培訓、java培訓、ios培訓、期待與您交流! ---------- 類方法與物件方法相比較,最根本的好處在於節省記憶體空間。 物件方法在執行時是先從記憶體棧區訪問記憶體堆區的地址,再從記憶體堆區尋找方法位於記憶體程式碼區的地址,最終返回值。