二、代码
#import <Foundation/Foundation.h>
#pragma mark 类
@interface IPhone : NSObject
{
@public
float _model; // 型号
int _cpu; // cpu
double _size; // 尺寸
int _color; // 颜色
}
-(void)about;
/*
C语言的函数 :
没有返回值没有参数的
没有返回值参数的
有返回值没有参数的
有返回值有参数的
OC的方法 :
没有返回值没有参数的 - (void)text1;
没有返回值参数的 - (void)text2WithNumber:(int)number;
有返回值没有参数的 - (int)text3WithNumber;
有返回值有参数的 - (int)text2WithNumber:(int)number andNumber2:(int)number2; // 多个参数
*/
// 有返回值没有参数的, 读取短信
-(char *)loadMessage;
// 有返回值有参数的, 打电话
//int signal(int number)
//call
// 注意 : OC中的方法如果有参数, 那么每个参数的数据类型前面添加上一个 :
// 注意 : 当前这个有参数的方法 他的方法名称 是 signal :
// 冒号也是方法名称的一部分
-(int) signal:(int)number;
// 有返回值并且多个参数的,发短信
// sendMessage(int number, char *content)
// 下面这个方法名称是 sendMessage::
//- (int)sendMessage:(int)number :(char *)content;
// 为了提高我们的阅读性, OC方法允许我们 给方法给每个参数添加一个表情,说明当前参数的含义
// 注意 : 标签也是方法名的一部分
// 方法名 是 sendMessageWithNumber:andContent:
- (int)sendMessageWithNumber:(int)number andContent:(char *)content;
@end
#pragma mark 实现
@implementation IPhone
// 行为的实现
-(void)about
{
// NSLog(@"打印本机信息\n");
// 如果在对象方法里面 想访问该对象的属性, 可以直接写上 _属性名称即可
NSLog(@"型号 = %f cpu = %i,尺寸 = %f, 颜色 =%i",_model,_cpu,_size,_color);
}
-(char *)loadMessage
{
char *content = "老婆我们家我做主";
return "lyh is cool";
}
-(int) signal:(int)number
{
NSLog(@"打电话 %i",number);
return 1;
}
/*
- (int)sendMessage:(int)number :(char *)content
{
NSLog(@"发短息 %i, 内容: %s",number,content);
return 1;
}
*/
- (int)sendMessageWithNumber:(int)number andContent:(char *)content
{
NSLog(@"发短息 %i, 内容: %s",number,content);
return 1;
}
@end
#pragma mark main函数
int main(int argc, const char * argv[])
{
IPhone *p = [IPhone new];
p->_model = 4;
p->_size = 3.5;
p->_color = 0;
p->_cpu = 1;
#warning 注意 : OC中的NSLog 对C语言的字符串支持不是很好,如果返回的是 中文的C语言字符串 可能输出的是乱码, 也有可能什么都不输出
[p about];
char *content = [p loadMessage];
NSLog(@"content %s",content);
[p signal:10010];
// [p sendMessage:10010 :"fuck"];
[p sendMessageWithNumber:10010 andContent:"hehe"];
return 0;
}
输入图片说明