OC中的类方法
2015-11-13 00:52
232 查看
//
// main.m
// 第一个OC方法-类方法
//
// Created by Caoxia on 15/11/10.
// Copyright © 2015年 Caoxia. All rights reserved.
//
#import <Foundation/Foundation.h>
typedef enum color
{
KcolorBlack,
KcolorWhite,
KcolorPink,
KcolorGold
} phoneColor;
//---------------------------------------------华丽的分割线-----------------------------------------------
//---------------------------------------------华丽的分割线-----------------------------------------------
@interface iPhone :
NSObject
//在手机类定义三个成员变量
{
@public
float _inches;
phoneColor _myPhonecolor;
//这里将结构体当做iPhone的一个属性
NSString *_name;
}
- (void)describeMyPhone;
//类方法
+ (void)classmethod;//这是没有返回值,没有参数的
@property NSString *number;
//类工厂方法也是一种特殊的类方法
+ (instancetype) iphoneWithNumber:(NSString *)number;
@end
@implementation iPhone
- (void)describeMyPhone
{
if (_myPhonecolor ==
KcolorBlack) {
NSLog(@"我手机的颜色是黑色的");
}else if (_myPhonecolor ==
KcolorWhite)
{
NSLog(@"我手机的颜色是白色的");
}else if (_myPhonecolor ==
KcolorGold)
{
NSLog(@"我手机的颜色是粉红色的");
}else if (_myPhonecolor ==
KcolorPink)
{
NSLog(@"我手机的颜色是金色的");
}else
{
NSLog(@"滚犊子");
}
NSLog(@"手机是%f英寸的,手机的名字叫%@",_inches,_name);
}
+ (instancetype) iphoneWithNumber:(NSString *)number
{
iPhone *myPhone = [[self
alloc]init];
myPhone.number = number;//这里用到了点语法,就相当于 [myPhone setNumber:number];后面会有对点语法的详细解释
return myPhone;
}
+ (void)classmethod
{
NSLog(@"我就是为了说明我是一个类方法");
}
@end
int main(int argc,
const char * argv[]) {
@autoreleasepool {
// insert code here...
NSLog(@"Hello, World!");
[iPhone
classmethod]; //调用class method方法
iPhone *phones = [iPhone
iphoneWithNumber:@"15627895058"];
NSLog(@"手机的电话号码是%@",phones.number);
}
return 0;
}
// main.m
// 第一个OC方法-类方法
//
// Created by Caoxia on 15/11/10.
// Copyright © 2015年 Caoxia. All rights reserved.
//
#import <Foundation/Foundation.h>
typedef enum color
{
KcolorBlack,
KcolorWhite,
KcolorPink,
KcolorGold
} phoneColor;
//---------------------------------------------华丽的分割线-----------------------------------------------
//---------------------------------------------华丽的分割线-----------------------------------------------
@interface iPhone :
NSObject
//在手机类定义三个成员变量
{
@public
float _inches;
phoneColor _myPhonecolor;
//这里将结构体当做iPhone的一个属性
NSString *_name;
}
- (void)describeMyPhone;
//类方法
+ (void)classmethod;//这是没有返回值,没有参数的
@property NSString *number;
//类工厂方法也是一种特殊的类方法
+ (instancetype) iphoneWithNumber:(NSString *)number;
@end
@implementation iPhone
- (void)describeMyPhone
{
if (_myPhonecolor ==
KcolorBlack) {
NSLog(@"我手机的颜色是黑色的");
}else if (_myPhonecolor ==
KcolorWhite)
{
NSLog(@"我手机的颜色是白色的");
}else if (_myPhonecolor ==
KcolorGold)
{
NSLog(@"我手机的颜色是粉红色的");
}else if (_myPhonecolor ==
KcolorPink)
{
NSLog(@"我手机的颜色是金色的");
}else
{
NSLog(@"滚犊子");
}
NSLog(@"手机是%f英寸的,手机的名字叫%@",_inches,_name);
}
+ (instancetype) iphoneWithNumber:(NSString *)number
{
iPhone *myPhone = [[self
alloc]init];
myPhone.number = number;//这里用到了点语法,就相当于 [myPhone setNumber:number];后面会有对点语法的详细解释
return myPhone;
}
+ (void)classmethod
{
NSLog(@"我就是为了说明我是一个类方法");
}
@end
int main(int argc,
const char * argv[]) {
@autoreleasepool {
// insert code here...
NSLog(@"Hello, World!");
[iPhone
classmethod]; //调用class method方法
iPhone *phones = [iPhone
iphoneWithNumber:@"15627895058"];
NSLog(@"手机的电话号码是%@",phones.number);
}
return 0;
}
相关文章推荐
- Java基础教程之类数据与类方法
- python中的实例方法、静态方法、类方法、类变量和实例变量浅析
- Python类方法__init__和__del__构造、析构过程分析
- OC类方法和对象方法对比
- 黑马程序员——Objective-C语言知识整理——类方法与对象方法
- 类方法和实例方法
- 黑马程序员_set方法和get方法及类方法总结
- 黑马程序员-IOS学习笔记 OC 关于对象方法类方法的一些概念
- iOS判断某个类是否可以调用某个类方法
- java学习之类-this,类变量,类方法
- 新人学ruby---方法的分类
- 类方法的使用
- OC中类方法的使用实例
- 类方法、实例方法、静态方法详细诠释(重要)
- oc学习笔记1——self,super
- Object-C中的类方法和实例方法区别
- 类方法和实例方法
- 习题
- 类方法