黑马程序员——OC学习笔记 类与对象的使用
2015-11-08 09:58
459 查看
——Java培训、Android培训、iOS培训、.Net培训、期待与您交流! ——-
类是一种抽象的数据类型,而对象是类的实例。这么说可能还是不好理解。
举个例子人是一个类,类中有身高体重的属性。小明是个人,是一个对象,身高180,体重70KG。
我们先建一个类People,在OC中类的定义为@inteface
这样这个类就建成了,里面还有名字,身高,体重,和电话号码4个四个属性,四个属性前有修饰符 @public 说明这四个为共有成员。有点JAVA和C++基础的都明白public、private和protected的区别,这里就不再做详细说明,最后千万不要忘记@end。
那在如何创建一个对象呢,例如java可以写成 People jevon = new People;,在OC中和Java不同,OC中定义对象写法为People *jevon = [People new];
而定义对象中的属性类似C,jevon->name = @”JevonLin”;
主函数测试代码如下:
可以打印出 My name is JevonLin
这就是简单的创建了一个类
下面就是类方法的定义
大体分为4种
1.无返回值无参数方法
2.无返回值有单一参数方法
3.无返回值有多个参数方法
4.有返回值方法
首先说下如何定义 类方法定义在类成员括号后,end之前。如下
先分解说下方法定义的含义
-(int)liveIn:(NSString ) address andIn: (NSString ) home;
第一部分 -(int)liveIn 减号为对象方法 相反也有加号 加号为类方法。
int 为返回值类型 liveIn为方法名称
第二部分 (NSString ) address andIn: (NSString ) home
(NSString *) address 为第一个参数 括号内为参数类型
andIn: 为衔接两个参数的内容,可随便写只要实现时候写的一样,这个不为固定写法,比如可以叫andHome都可以。
(NSString *) home为第二个参数
再说一下实现方法
实现的代码写在类方法外 用@implementation+类名 定义 如下代码
在这里可对方法进行实现 方法名及参数同定义一样 里面就是需要进行的操作。
这样我们就做了一个查看人这个类信息的方法,在main函数中使用方法为
[jevon sawPeopleInfo];
这样可以打印出
My name is JevonLin
—JevonLin’s Info—
—height is 188 —
—weight is 80.0—
其他几个方法类似这个
基本上类和对象的简单使用就这些
我做了个 人的类属性有名字,身高,体重,和电话号码。
方法有查看人的信息、这个人从哪里来、这个人现在住哪和这个人的电话号。
代码如下,可以参考(引入的包只有 Foundation/Foundation.h CSDN编译器写不出来 不知道是不是要转义 这里没有贴 ):
OC学习笔记——类与对象的使用
首先区分类和对象的区别。类是一种抽象的数据类型,而对象是类的实例。这么说可能还是不好理解。
举个例子人是一个类,类中有身高体重的属性。小明是个人,是一个对象,身高180,体重70KG。
我们先建一个类People,在OC中类的定义为@inteface
@interface People:NSObject { @public NSString *name; int height; float weight; int telNum; } @end
这样这个类就建成了,里面还有名字,身高,体重,和电话号码4个四个属性,四个属性前有修饰符 @public 说明这四个为共有成员。有点JAVA和C++基础的都明白public、private和protected的区别,这里就不再做详细说明,最后千万不要忘记@end。
那在如何创建一个对象呢,例如java可以写成 People jevon = new People;,在OC中和Java不同,OC中定义对象写法为People *jevon = [People new];
而定义对象中的属性类似C,jevon->name = @”JevonLin”;
主函数测试代码如下:
void main(int argc,const char * argv){ People *jevon = [People new]; jevon->name = @"JevonLin"; NSLog(@"My name is %@",jevon->name); }
可以打印出 My name is JevonLin
这就是简单的创建了一个类
下面就是类方法的定义
大体分为4种
1.无返回值无参数方法
2.无返回值有单一参数方法
3.无返回值有多个参数方法
4.有返回值方法
首先说下如何定义 类方法定义在类成员括号后,end之前。如下
@interface People:NSObject { @public NSString *name; int height; float weight; int telNum; } -(void)sawPeopleInfo; @end
先分解说下方法定义的含义
-(int)liveIn:(NSString ) address andIn: (NSString ) home;
第一部分 -(int)liveIn 减号为对象方法 相反也有加号 加号为类方法。
int 为返回值类型 liveIn为方法名称
第二部分 (NSString ) address andIn: (NSString ) home
(NSString *) address 为第一个参数 括号内为参数类型
andIn: 为衔接两个参数的内容,可随便写只要实现时候写的一样,这个不为固定写法,比如可以叫andHome都可以。
(NSString *) home为第二个参数
再说一下实现方法
实现的代码写在类方法外 用@implementation+类名 定义 如下代码
@implementation People -(void)sawPeopleInfo { NSLog(@"---%@'s Info---",name); NSLog(@"---height is %d ---",height); NSLog(@"---weight is %.1f---",weight); } @end
在这里可对方法进行实现 方法名及参数同定义一样 里面就是需要进行的操作。
这样我们就做了一个查看人这个类信息的方法,在main函数中使用方法为
[jevon sawPeopleInfo];
void main(int argc,const char * argv){ People *jevon = [People new]; jevon->name = @"JevonLin"; NSLog(@"My name is %@",jevon->name); jevon->height = 188; jevon->weight = 80.0; jevon->telNum = 186426; [jevon sawPeopleInfo]; }
这样可以打印出
My name is JevonLin
—JevonLin’s Info—
—height is 188 —
—weight is 80.0—
其他几个方法类似这个
基本上类和对象的简单使用就这些
我做了个 人的类属性有名字,身高,体重,和电话号码。
方法有查看人的信息、这个人从哪里来、这个人现在住哪和这个人的电话号。
代码如下,可以参考(引入的包只有 Foundation/Foundation.h CSDN编译器写不出来 不知道是不是要转义 这里没有贴 ):
@interface People:NSObject { @public NSString *name; int height; float weight; int telNum; } -(void)sawPeopleInfo; -(void)comeFrom:(NSString *) address; -(void)liveIn:(NSString *) address andIn: (NSString *) home; -(int)getTelNum; @end @implementation People -(void)sawPeopleInfo { NSLog(@"---%@'s Info---",name); NSLog(@"---height is %d ---",height); NSLog(@"---weight is %.1f---",weight); } -(void)comeFrom:(NSString *) address { NSLog(@"%@ is come from %@",name,address); } -(void)liveIn:(NSString *) address andIn: (NSString *) home { NSLog(@"%@ is live in %@ -- %@",name,address,home); } -(int)getTelNum{ return telNum; } @end void main(int argc,const char * argv){ People *jevon = [People new]; jevon->name = @"JevonLin"; NSLog(@"My name is %@",jevon->name); 9154 jevon->height = 188; jevon->weight = 80.0; jevon->telNum = 186426; [jevon sawPeopleInfo]; [jevon comeFrom:@"DaLian"]; [jevon liveIn:@"BeiJing" andIn: @"ZGC"]; int jevonTelNum = [jevon getTelNum]; NSLog(@"Jevon's phone Number is %d",jevonTelNum); }
相关文章推荐
- 峰回路转,Firefox 浏览器即将重返 iOS 平台
- 峰回路转,Firefox 浏览器即将重返 iOS 平台
- 不可修补的 iOS 漏洞可能导致 iPhone 4s 到 iPhone X 永久越狱
- iOS 12.4 系统遭黑客破解,漏洞危及数百万用户
- 每日安全资讯:NSO,一家专业入侵 iPhone 的神秘公司
- [转][源代码]Comex公布JailbreakMe 3.0源代码
- 讲解iOS开发中基本的定位功能实现
- js判断客户端是iOS还是Android等移动终端的方法
- IOS开发环境windows化攻略
- 检测iOS设备是否越狱的方法
- .net平台推送ios消息的实现方法
- 探讨Android与iOS,我们将何去何从?
- Android、iOS和Windows Phone中的推送技术详解
- IOS 改变键盘颜色代码
- 举例详解iOS开发过程中的沙盒机制与文件
- Android和IOS的浏览器中检测是否安装某个客户端的方法
- 分享一个iOS下实现基本绘画板功能的简单方法
- javascript实现阻止iOS APP中的链接打开Safari浏览器
- IOS开发第三方语音-微信语音