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

——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);
    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);
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值