Object_C 回顾 0.0.1

来源:互联网 发布:长春绝命毒师网络比赛 编辑:程序博客网 时间:2024/05/16 16:55

Object-C作为一种面向对象的编程语言,虽然在iOS中日趋衰落(相对的是swift的崛起),但是作为apple公司多年开发使用的语言,其有着不可代替的属性或者说很多优点:Object-C相对swift来说更加全面(swift可以说是在Object-C的基础上发展起来的)成熟(不可否认swift还存着很多bug)等,可以说swift是趋势,但是现下国内来说Object-C仍将在一段时间内占据iOS开发主流。

Object-C(以下都将以OC来代替Object-C)作为面向对象编程的语言,那么面向过程和面向对象有什么区别?

面向过程编程:分析解决问题的步骤;实现函数,依次调用(以事件为中心,关心的是完成事件的详细步骤,一步一步执行程序);

面向对象编程:分析解决问题的对象,协调对象之间的联系和通讯(比如OC采用的消息发送机制),解决问题(以事物为中心,关心的是解决问题参与的对象有哪些完成事件所需要的功能 );

两者区别:以事件为中心,关心过程<-->以事物为中心,关心对象功能过程

面向对象体现的封装特性也可以在其关注点的不同看出:将问题封装成类,利用类初始化的对象的动作来完成任务;

 :具有相同特征和行为事物的抽象 .是对象的类型 

 对象:具体的事物,类的实例.

类的接口 类的实现

接口部分 :@interface 开头 @end 结尾只要符合这种形式 ,就可以完成类的接口部分

接口部分 :完成实例变量方法声明

实例变量 (静态特征):写在{}内部

方法(动态行为):写在{}下面

@interface Person : NSObject//Person当前类名,NSObject父类名 ":"表示继承

静态特征:(实例变量)

{

    NSString *_name;//姓名

    NSString *_sex;//性别

    NSInteger _age;//年龄

    CGFloat _weight;//体重

}

动态行为(方法)

-(void)thinking;

-(void)sayHi;//sayHi--->方法名;

类的实现部分 : @implementation为开头 @end为结尾 只要符合这种形式就可以 完成类的实现

类的实现部分完成方法的实现

@implementation Person

-(void)thinking

{

    NSLog(@"我正在思考...");

}

//思考

-(void)sayHi

//打招呼

//sayHi--->方法名

{

    NSLog(@"Hi! My name is:%@ sex : %@ age : %ld weight : %f",_name,_sex,_age,_weight);

}

@end

"[]" --> 发送消息;(脱胎于smalltalk http://www.oschina.net/news/21428/why-i-love-smalltalk)


OK 来一个类

//类的接口部分(声明)

@interface Person : NSObject

{

//实例变量

    @public//将实例变量的可见度修饰为公共的;

    NSString *_name;

    NSString *_sex;

    NSInteger _age;

    CGFloat _weight;

}

//初始化方法

-(instancetype)init;

//==-(id)init;

//方法

-(void)sayHi;


//类的实现

@implementation Person

-(instancetype)init

{

    _name =@"小明";

    _sex =@"";

    _age =18;

    _weight =70;

    NSLog(@"初始化方法 :%p",self);

    returnself;

}


-(void)sayHi

{

    NSLog(@"你好,我是%@,%@今年%ld,体重%f",_name,_sex,_age,_weight);

}


调用:

创建一个类:

Person *p = [[Person alloc] init];

       

        [p sayHi];

       

结果:

初始化方法 :0x100203790

你好,我是小明,今年18,体重70.000000

修改一下

        p->_name = @"小红";

        p->_age = 19;

        p->_sex = @"女";

        p->_weight = 65.0;

      //打招呼       

      [p sayHi];

结果

你好,我是小红,今年19,体重65.000000



0 0
原创粉丝点击