黑马程序员 面向对象编程

——- android培训java培训ios培训期待与您交流!

面向对象编程

一、什么是面向对象和面向过程

    面向对象编程的首字母缩写为OOP,它所关注的是解决一个问题需要多少个对象,以间接的形式解决问题。
    比如打电话或发短信,面向对象编程思想所思考的并不是如何打电话或发短信,而是借助用手机,使用手机来打电话发短信。
    直接用函数一步一步的把他们实现。就算是面向对象也是包含面向过程的思想。

二、类和对象

    类是现实世界或思维世界中的实体在计算机中的反映,它将数据以及这些数据上的操作封装在一起。
    对象是具有类类型的变量。类和对象是面向对象编程技术中的最基本的概念。

2.1一个简单的OC程序

    #import <Foundation/Foundation.h>
    @interface Person:NSObject
    {
        int age;
        double weight;
    }
    - (void)run;
    - (void)eat;
    - (void)print;
    @end
    @implementation Person
    - (void) run
    {
        weight+=1;
    }
    - (void)eat
    {
       weight-=1;
    }
    - (void)print
     {
     NSLog(@"年龄%d岁,体重%f",age,weight);
     }
    @end
    int main()
    {
        Person *s=[Person new];
        s->age=20;
        s->weight=50;
        [s run];
        [s print];
        [s eat];
        [s print];
        return 0;
   }

2.2程序剖析

1.@interface Person:NSObject
@interface Person告诉编译器这是一个新声明的一个类,名字叫Person,后面的NSObject则表明这个类是继承NSobject,目的是让Person这个类具有创建对象的能力。
2.成员变量
在类内部定义的变量成为成员变量,它们是类具有的一些属性。每个Person类的对象都具有这些属性。
{
    int age;
    double weight;
}
这个步骤就是为Person类声明了2个成员变量,即具有两个属性,age(年龄),weight(体重)。
3.声明方法
- (void)run;
- (void)eat;
- (void)print;

类不仅仅具有属性,而且具有行为即功能。其实方法与函数的功能是相同的,都是执行一些操作,然而声明方式却天差地别。方法的声明中类型必须用()括起来,前面必须具有减号“-”。
方法的声明方式:
-(类型)方法名称:(参数类型)参数名称;
注意:
如果方法具有参数那么方法的名称是:方法名:,冒号是方法名的一部分,它告诉编译器和编程人员后面将会出现参数。
参数的数据类型同样使用圆括号括起来。

4.@end
@end告诉编译器,我们类的声明到此就结束了。然而此时的类并不具备什么功能,虽然声明了方法,但是方法并未实现。
5.@implementation Person
类的实现都是在@implementation Person中书写的,虽然@interface中有方法的声明,但是并不包括任何的代码。
    - (void) run
    {
        weight+=1;
    }
    - (void)eat
    {
       weight-=1;
    }
    - (void)print
     {
     NSLog(@"年龄%d岁,体重%f",age,weight);
     }
 这几行代码就分别实现了@interface中声明的- (void) run, - (void)eat,- (void)print方法。
6.@end
此时的@end与上一步的@end用法相同,表明类的实现结束了。
7.实例化对象
实例化对象时,需要分配内存,并初始化内存,保存有用的默认值。为了创建对象,需要向相应的类发送new消息。
消息:对象可以执行的操作。使用方式[类名 消息名];
Person *s=[Person new];
指针s保存对象的地址
    [s run];
    [s print];
    [s eat];
    [s print];
分别发送了run,print,eat消息,其实就是调用类中的run方法,print方法,和eat方法。

总结

1.学习C#时就已经开始接触面向对象编程的思想,不论是c#还是oc他们的编程思想都是相同的。
2.c#中创建类是通过class关键字,而OC中是@interface 、@implementation、@end配合使用。
3.oc中对象方法使用“-”,类方法使用“+”。
4.c#调用对象的方法时使用的是点语法,OC使用[类名 消息名]的方式调用方法。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值