//  main.m
// 第一个OC类-方法2
#import <Foundation/Foundation.h> // 1.编写类的声明
@interface Iphone : NSObject
{
@public
float _model;
int _cpu;
double _size;
int _color;
}
// 注意: OC中的方法, 如果没有形参不需要写(), 而是直接写一个;因为OC方法中的()有特殊的用途, OC方法中的()是用来扩住数据类型的
- (void)about;
// 有返回值没有参数的, 读取短信
- (char *)loadMessage;
// 有返回值有参数的, 打电话
// int signal(int number);
// 注意: 当前这个有参数的方法它的方法名称是 signal: ,有没有冒号是2个方法,冒号也是方法名称的一部分
- (int)signal:(int)number;
- (int)signal;
// 有返回值并且有多个参数的, 发短信
// int sendMessage(int number, char *content);
// 下面这个方法的方法名称是 sendMessage::
- (int)sendMessage:(int)number :(char *)content;
// 为了提高我们的阅读性, OC方法允许我们给每个参数添加一个标签来说明当前参数的含义,注意: 标签也是方法名的一部分
// 方法名是 sendMessageWithNumber:andContent: (参数数据类型用括号括起来,参数的数据类型前面加冒号)
- (int)sendMessageWithNumber:(int)number andContent:(char *)content;
@end // 2.编写类的实现
@implementation Iphone
// 行为的实现
- (void)about
{
// 对象方法中访问该对象的属性, 直接写_属性名称,因为这里没有对象,
NSLog(@"型号 = %f, cpu = %i, 尺寸= %f, 颜色 = %i", _model, _cpu, _size, _color);
}
- (char *)loadMessage
{
char * content = "老婆我们家我做主";
return content;
// return "wife is god"; 返回字符串是char *,
}
- (int)signal:(int)number
{
NSLog(@"打电话给%i", number);
return ;
}
- (int)sendMessage:(int)number :(char *)content{
return ;
}
- (int)sendMessageWithNumber:(int)number andContent:(char *)content
{
NSLog(@"发短信给%i, 内容是%s", number, content);
return ;
}
@end int main(int argc, const char * argv[]) {
// 1.通过类创建对象,堆中,栈中内存函数结束是释放,堆中要自己释放。p是堆中字节最小的地址。p称之为Ipone的对象。
Iphone *p = [Iphone new];
// 2.修改对象的属性
p->_size = 3.5;
p->_color = ;
p->_model = ;
p->_cpu = ;
// 3.获取对象的属性
NSLog(@"size = %f, color = %i, model = %f, cpu = %i", p->_size, p->_color, p->_model, p->_cpu);
// 4.如果给对象发消息(如果调用对象的方法)
[p about];
// [对象 消息名称(方法名称)]
// 注意: OC中的NSLog对C语言的字符串支持不是很好, 如果返回的是中文的C语言字符串可能输出的是乱码, 也有可能什么都不输出
char *content = [p loadMessage];
NSLog(@"content = %s", content);
[p signal:];
[p sendMessage: :"luck"];
[p sendMessageWithNumber: andContent:"hi"];
return ;
}

最新文章

  1. 401 - 未授权:由于凭据无效,访问被拒绝”在iis的解决办法
  2. Shell脚本入门与应用
  3. 查看Linux软件信息
  4. GridView自带分页 1总页数 首页 下一页 上一页 尾页 X 页 go 实现方法 .
  5. Silverlight应用程序中调用WCF Ria Services访问数据库图片
  6. MySQL存储过程详解 mysql 存储过程
  7. POJ-2774-Long Long Message(后缀数组-最长公共子串)
  8. UVa 108: Maximum Sum
  9. Vue.js介绍
  10. (Jquery)避免数据相加小数点后产生多位数和计算精度损失
  11. Codeforces Round #551 (Div. 2) 题解
  12. OAuth2.0深入理解
  13. Velocity CheckingForNull
  14. upstream模块介绍
  15. 【刷题】AtCoder Regular Contest 003
  16. 数据库--&gt;记录操作
  17. Java-Runoob-高级教程-实例-方法:01. Java 实例 – 方法重载
  18. Linux创建桥接网络
  19. libgdx学习记录6——动作Action
  20. ZOJ 3981 &amp;&amp; 2017CCPC秦皇岛 A:Balloon Robot(思维题)

热门文章

  1. java 微信api开发
  2. 页面中word文本框的编辑,两种方式
  3. SQL中EXTRACT() 函数
  4. WEB笔记-5、字体和文本
  5. Deutsch lernen (01)
  6. WebGL画点程序v2
  7. theano和keras安装
  8. 【JSP】中文乱码问题
  9. 小功能__tab实录
  10. 如何安全使用dispatch_sync