第04天OC語(yǔ)言(14):類工廠方法基本概念

  • 不要等到明天,明天太遙遠(yuǎn),今天就行動(dòng)。
須讀:看完該文章你能做什么?

能學(xué)會(huì)基本創(chuàng)建類工廠方法

學(xué)習(xí)前:你必須會(huì)什么?

什么是類,什么是類方法

1.什么是類[替換鏈接 Day01-05-類與對(duì)象],什么是類方法[替換鏈接 Day01-09-第一個(gè)OC類方法
]
生活中描述事物無(wú)非就是描述事物的名稱、屬性和行為
    人:年齡、身高、體重
程序如何表現(xiàn)一個(gè)類(下面只不過是簡(jiǎn)單的一個(gè)聲明而已):
@interface Person : NSObject
{
 int _age;//年齡
}
// 行為
- (void)eat;// 對(duì)象方法 需要實(shí)例化一個(gè)對(duì)象 才能調(diào)用 [[Person new] eat];
+ (void)eat;// 類方法以+開頭 直接使用類調(diào)用 [Person eat];
@end

一、本章筆記
 一、
 什么是類工廠方法:
     用于快速創(chuàng)建對(duì)象的類方法,我們稱之為類工廠方法
     類工廠方法中 主要用于 給對(duì)象分配存儲(chǔ)空間 和 初始化這塊存儲(chǔ)空間
 規(guī)范:
     1.一定是類方法
     2.方法名 以類的名稱開頭, 首字母小寫
     3.一定有返回值, 返回值是 id/instancetype
 二、
     自定義類工廠方法 是蘋果的一個(gè)規(guī)范,
     一般情況下,我們會(huì)給一個(gè)類提供自定義構(gòu)造方法 和自定義類工廠方法
     用于創(chuàng)建一個(gè)對(duì)象

二、code
main.m
#pragma mark 14-類工廠方法基本概念
#pragma mark 概念
/*
 一、
 什么是類工廠方法:
     用于快速創(chuàng)建對(duì)象的類方法,我們稱之為類工廠方法
     類工廠方法中 主要用于 給對(duì)象分配存儲(chǔ)空間 和 初始化這塊存儲(chǔ)空間
 規(guī)范:
     1.一定是類方法
     2.方法名 以類的名稱開頭, 首字母小寫
     3.一定有返回值, 返回值是 id/instancetype
 二、
     自定義類工廠方法 是蘋果的一個(gè)規(guī)范,
     一般情況下,我們會(huì)給一個(gè)類提供自定義構(gòu)造方法 和自定義類工廠方法
     用于創(chuàng)建一個(gè)對(duì)象
 */
#pragma mark - 代碼
#import <Foundation/Foundation.h>
#pragma mark 類

#import "Person.h"

#pragma mark - main函數(shù)
int main(int argc, const char * argv[])
{
    
//    Person *p = [Person person];
//    p.age = 20;
//    NSLog(@"age = %i",p.age);

    Person *p = [Person personWithAge:33];
    NSLog(@"age = %i",p.age);

//    [[NSString alloc]init];
//    [NSString string];    
//    [NSString alloc]initWithString:<#(nonnull NSString *)#>
//    [NSString stringWithString:<#(nonnull NSString *)#>]
    
//    [[NSArray alloc]init];
//    [NSArray array];
//    [NSArray alloc]initWithObjects:<#(nonnull id), ...#>, nil
//    [NSArray arrayWithObjects:<#(nonnull id), ...#>, nil]
    
    return 0;
}

Person
>>>.h
#import <Foundation/Foundation.h>

@interface Person : NSObject

@property int age;

/*
 什么是類工廠方法:
 用于快速創(chuàng)建對(duì)象的類方法,我們稱之為類工廠方法
 類工廠方法中 主要用于 給對(duì)象分配存儲(chǔ)空間 和 初始化這塊存儲(chǔ)空間
 
 規(guī)范:
 1.一定是類方法
 2.方法名 以類的名稱開頭, 首字母小寫
 3.一定有返回值, 返回值是 id/instancetype
 */

+ (instancetype)person;
+ (instancetype)personWithAge:(int)age;

@end

>>>.m
#import "Person.h"

@implementation Person

/*
+ (instancetype)person
{
    Person *p = [Person alloc];
    Person *p1 = [p init];
    return p1;
}
 */

+ (instancetype)person
{
    return [[Person alloc]init];
}

+ (instancetype)personWithAge:(int)age
{
    Person *p = [[Person alloc]init];
    p.age = age;
    
    return p;
}
@end

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

推薦閱讀更多精彩內(nèi)容

  • 1. Java基礎(chǔ)部分 基礎(chǔ)部分的順序:基本語(yǔ)法,類相關(guān)的語(yǔ)法,內(nèi)部類的語(yǔ)法,繼承相關(guān)的語(yǔ)法,異常的語(yǔ)法,線程的語(yǔ)...
    子非魚_t_閱讀 31,779評(píng)論 18 399
  • 下面是我最近兩年學(xué)習(xí)OC中的一些基礎(chǔ)知識(shí),對(duì)于學(xué)習(xí)OC基礎(chǔ)知識(shí)的人可能有些幫助,拿出來(lái)分享一下,還是那句話不喜勿噴...
    小小趙紙農(nóng)閱讀 2,662評(píng)論 1 7
  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 134,993評(píng)論 19 139
  • 對(duì)于前男友,她唯獨(dú)忘不掉的是他身上淡淡的煙草味道。那是一種很干凈的味道。工作后,她見到許許多多抽煙的人,但是他們...
    蔡筱墨閱讀 306評(píng)論 0 1
  • 自己一直都是一個(gè)古裝劇控,特別愛看古裝劇。最近有三部古裝劇挺火的,我想從個(gè)人的角度談?wù)劇?《大唐榮耀》 豆瓣評(píng)...
    菀桑閱讀 1,183評(píng)論 0 4