您的位置:首页 > 职场人生

黑马程序员——OC学习笔记 类与对象的使用

2015-11-08 09:58 459 查看
——Java培训、Android培训、iOS培训、.Net培训、期待与您交流! ——-

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);
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  ios