文档章节

OC 简单对象、创建类方法小结

JoshSone
 JoshSone
发布于 2016/08/14 23:30
字数 1040
阅读 39
收藏 0

1.首先是输出函数,在学c语言时我们都习惯写prinft 但是到了oc中 就要用NSLog 来输出语句了

 NSLog(@"Hello, World!");

NSLog有一个注意点就是在双引号前面加上@,说到这不得不提一点,在oc中@出现的频率之高,简直令人发指,你会发现在刚创建.m文件的时候,主函数里面的第一行就是@autoreleasepool 这句代码是作用简单来说就是:可以在某些情况下,大幅度降低程序的内存占用。当你还是新手打着简单的代码,运行却发现出现问题时,不防可以看看是不是哪里缺了一个@,作为刚刚学完 c 转而来学oc的人,这个@加的真的很不适应。

2.类和对象,也是新的名词,形象的解释一下,类就好比 🐶这个群体,而你家的大黄啊,小白啊,就是🐶这个类里面的一个对象。

在创建类的方法 :快捷键(小菊花+n),选择OC X source 里的Cocoa class 新建一个类,类名首字母大写(习惯吧),  这时你的目录里就会出现两个文件 一个.h结尾一个.m结尾。那么一个对象应该有哪些内容呢? 正常来说,每个人都具有他的属性和方法(行为)。属性 就比如人的身高体重年龄学历等等。方法就是人要做的事情,就像是吃饭喝水睡觉之类的事。该如何创建对象的属性和方法呢?

我来演示一下 创建一个Person的类

 

@interface Person : NSObject

{  NSString *_name;

    int weight;

    int heigh;}

在.h文件中 NSObject 后面加上两个花括号,里面就是对象具有的属性,这里注意一点,在oc里是有专门对应字符串的数据类型 也就是NSString 不用像在c语言里通过字符数组或者字符指针去接字符串那样来定义字符串了,当你定义完属性之后,接下来要声明对象方法

-(void)eat;

-(void) drink;

 这里跟c中的结构体相似,void 也可以被int double NSString*等替换

我们已经声明了对象的属性和方法,那么我们怎么样来实现它们呢?

这时进入到.m文件 把刚刚声明的对象方法复制到这里面来,分号换成花括号,跟结构体是类似的,在这里说明一点,不删除分号直接加花括号也是可以的,系统不会报错,但是规范一些还是写成:

-(void)eat

{

NSLog(@"Apple");

}

-(void) drink

{

NSLog(@"Water");

}

里面的内容就是你要实现的行为方法了。声明实现之后 我们就要调用它们了

在main.m文件中 ,先创建一个对象。

Person * LiHua =[ Person new];//这样你就创建了一个名为李华的对象

[LiHua eat];// 调用这个eat 的方法,也就是会输出 apple 这个字符串

如果想调用对象里面的属性该怎么办呢?

在main.m里添加头文件

首先创建一个Peter的对象,用->来调用对象的属性,但我们看到提示上都有一个红色的横线,这是什么意思呢?

可以尝试一下,如果在此时调用对象里面的属性,其实是调用不到的,这是因为我们在定义Person的属性时,系统默认添加了一个@private的头文件,这个头文件代表私人,我们是看不到的,只能在类文件的方法中调用,在其他类文件和主函数中是无法调用的,解决方案也很简单,只要在.h文件中,声明@public,告诉系统类的属性是公用的就可以了。

这时再调用类的属性

可以看到红线全部都消失了。我们可以对对象的属性进行赋值。

是不是很简单呢?

 

 

© 著作权归作者所有

JoshSone
粉丝 7
博文 76
码字总数 32794
作品 0
长春
iOS工程师
私信 提问
OC学习篇之---Foundation框架中的NSString对象和NSMutableString对象

在之前的一篇文章中我们说到了Foundation框架中的NSObject对象: http://blog.csdn.net/jiangwei0910410003/article/details/41788121 那么今天在在来继续看一下Foundation框架中的常用对象:...

jiangwei0910410003
2014/12/07
0
0
XZ_Swift之Swift面向对象

Swift面向对象 1、关于命名空间 在 Swift 中,默认同一个项目中,所有的类都是共享的,可以直接访问,不需要 import 所有对象的属性 var,也可以直接访问到 在Swift中,所有类都默认有一个命名空间...

understand_XZ的博客
2017/12/22
0
0
iOS 编写高质量Objective-C代码(二)

《编写高质量OC代码》已经顺利完成一二三四篇! 附上链接: iOS 编写高质量Objective-C代码(一) iOS 编写高质量Objective-C代码(二) iOS 编写高质量Objective-C代码(三) iOS 编写高质量...

MrLiuQ
2018/08/13
0
0
Swift实际开发中遇到的小问题

从上周开始, 正式使用Swift语言进行实际项目的开发, 虽然之前Swift的语法已经了解过, 并且写过几个简单的小Demo, 但是在实际应用到了公司项目中还是遇到了一些小问题. 主要是Swift与OC语法对...

Sunxb
2016/12/02
0
0
OC学习篇之---Foundation框架中的NSObject对象

前一篇文章讲到了OC中的代理模式:http://blog.csdn.net/jiangwei0910410003/article/details/41777627,而且前几篇文章就介绍了OC中的类相关知识,从这篇文章开始我们开始介绍Foundation框架...

jiangwei0910410003
2014/12/07
0
0

没有更多内容

加载失败,请刷新页面

加载更多

好程序员Java教程分享Zookeeper基本原理与运用场景

好程序员Java教程分享Zookeeper基本原理与运用场景一、什么是Zookeeper? zookeeper是一个分布式的一致性协调服务。 换句话说,也可以把zookeeper看成一个小型的分布式文件系统。但是和FastD...

好程序员官网
7分钟前
2
0
mysql表情符

1 修改表字段为utf8md4 ALTER table property_info MODIFY `address` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL 2 MySQL数据库服务器配置文件mysqld.cn......

干死it
27分钟前
2
0
正则表达式的基本语法

本文摘自LTP.NET知识库。 正则表达式的形式一般如下: /love/ 其中位于“/”定界符之间的部分就是将要在目标对象中进行匹配的模式。 用户只要把希望查找匹配对象的模式内容放入“/”定界符之...

木庄
29分钟前
3
0
java 框架有哪些?

十大常用框架: 一、SpringMVC 二、Spring 三、Mybatis 四、Dubbo 五、Maven 六、RabbitMQ 七、Log4j 八、Ehcache 九、Redis 十、Shiro 延展阅读: 一、SpringMVC Spring Web MVC是一种基于J...

java框架开发者
29分钟前
6
0
细谈Mysql事务

文章原创于公众号:程序猿周先森。本平台不定时更新,喜欢我的文章,欢迎关注我的微信公众号。 上一篇着重谈到了MySQL锁的概念,里面谈到了事务的概念,其实大部分开发者对于事务肯定不陌生,...

程序猿周先森
38分钟前
5
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部