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,告诉系统类的属性是公用的就可以了。
这时再调用类的属性
可以看到红线全部都消失了。我们可以对对象的属性进行赋值。
是不是很简单呢?
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,告诉系统类的属性是公用的就可以了。
这时再调用类的属性
可以看到红线全部都消失了。我们可以对对象的属性进行赋值。
是不是很简单呢?
相关文章推荐
- js面向对象 多种创建对象方法小结
- jQuery获取对象简单实现方法小结
- OC中的基础知识点、类和类方法的创建、调用 以及对象
- A.3.2-创建简单的类(人类),包含的概念(字段,构造,封装字段,创建方法,创建对象,赋值,调用方法)
- CSS创建竖排文字的简单方法小结
- 简单小结java持久层框架快捷生成实体对象方法
- 运行时错误 429,ACTIVEX部件不能创建对象的解决方法小结
- 简单属性,方法,对象的创建和使用
- OC语言学习 (二) 创建OC对象类、成员/静态变量、对象/类方法
- 模仿mootools对象创建方法 简单的实现
- 创建ajax对象并兼容多个浏览器方法简单记录
- 黑马程序员——OC基础---基础小结(类方法,匿名对象,封装)
- OC基础之创建OC对象类、成员/静态变量、对象/类方法
- js面向对象 多种创建对象方法小结
- OC实例方法和类方法创建的对象区别是什么
- OC多文件开发简单例子实现(重点:self在对象方法中调用其他对象方法的3种方法)
- jQuery获取对象简单实现方法小结
- 构造方法和对象的创建简单例题
- js面向对象 多种创建对象方法小结
- 设计模式:对象创建(原型,单例,简单工厂,工厂方法,抽象工厂,生成器)