您的位置:首页 > 其它

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

2016-08-14 00:00 363 查看
摘要: 学oc有一周了,在此做个小结,复习和归纳下一周以来学到的知识。

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,告诉系统类的属性是公用的就可以了。



这时再调用类的属性



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



是不是很简单呢?
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: