美文网首页iOS技术文章
OC面向对象 ☀️

OC面向对象 ☀️

作者: LeaderBiao | 来源:发表于2016-06-23 23:16 被阅读47次
    • 版权声明:本文为博主原创文章,未经博主允许不得转载。
    1.OC: Object- C ,面向对象的语言
    2、OC 和 C的区别:

    <1> oc是 c的超集 ,oc是在c语言的基础上做了扩展,c语言中的所有语法,在oc中都可以使用,甚至你可以在工程里加入C++ 语言
    <2>oc在c基础上扩展了面向对象的特点
    <3>oc 是一门运行时语言
    <4>oc为我们提供了丰富的类库

    3、 如何学习好OC ?
    //1.百度 (ios)
    //2.看苹果的官方文档(API接口网站)
    //3.看博客
    //4.自己的错误总结
    
    4、 面向对象编程的核心:类和对象
    面向对象编程的三大特征:封装,继承,多态
    类:具有相同特征和行为(功能)事物的抽象
    对象:就是类的实例化
    
    5、 创建一个类:
    //1、通过Cocoa touch class 模板,创建类,自动生成.h 和 .m文件
    //2、在.h 文件中写类的特征(实例变量) 和方法的声明
    //3、在.m中写实现部分
    /——*使用类创建对象*——/
    //1、开辟内存空间
    //2、初始化
    
    6、[ ]中括号调用方法
    //[Person alloc] 给person 这个类发送一个消息alloc(开辟内存空间)
    //创建对象person1
    //每一个对象 isa指针 用来指向它的父类,之所有能够调用父类的方法,完全是因为这个 isa  指针;
    
    7、 初始化 如果初始化没有赋值这时默认所有的实例变量都为空;
                   person1 = [person1 init];
    

    这条语句同时完成了两件事:开辟内存并初始化;

    8、例子:
    /*.h文件:*/
    //@interface 是接口 Person 是类名    :继承自谁 NSObject 是所有Oc类中的基类
    //---------------------------Person类的创建对象的特征---------------------
    
    @interface Person : NSObject
    
    //特征一定要写在下面那对大括号里面
    {      @public    //实例变量对@public 修饰后的就能在类的外部访问到这些实例变量了;
        //类的外部指:.h 和.m 之外的其他文件就叫类的外部
        //类的内部指:.h 和.m 文件之内
        //NSString 是OC中字符串类
    
                   NSString *_name;//姓名NSString 不是基本数据类型,所以定义它需要加*
       
                  NSInteger   _age;//年龄NSInteger 是基本数据类型,所以定义变量时不需要加*号
                   NSString *_sex;//性别
    // ----------------------------Persson类型创建出对象所拥有的行为----------
    //行为的声明部分
    //用 (减号)(- )号 修饰的方法属于对象方法,这个方法只能有我们定义这个类的创建出来对象来调用
    //用加好(+)修饰的方法属于类方法,这这方法只能有类来调用
    }
    - (id)init;//重写inint写法
    - (void)sayHello;//小驼峰命名法
    - (void)eat;
    
    
    //添加一个带参数的方法
    //一个冒号:代表一个参数
    //写一个带有参数的方法时格式<    :(数据类型)参数名   >
    - (void)talk:(NSString *)content;     //隐匿有参数数据类型
    - (void)talk:(NSString *)content withSonmeone : (NSString *)name;
    @end
    ————————————————————————
    /*.m文件:*/
    /@implementation 是类的实现部分
    @implementation Person
    //id 范类型,返回值可以指向任何类型的对象   类似于void *  ;
    - (id)init{—————————赋给初始值————————
       _name = @"标哥";
       _sex = @"男";
        _age = 18;
       
        //打印self地址
        NSLog(@"self地址:%p",self);
       
        //谁调用这个方法self 指的就是谁
        return self;
    ———————————————————————————————
    /*main.m  文件:*/
     Person *p = [[Person alloc]init];
        //调用sayhello的方法
        [p sayHello];
        p->_name = @"zhangSan";
        p->_age = 18;
        p->_sex = @"妖";
        [p sayHello];
        //调用吃得方法
        [p eat];```

    相关文章

      网友评论

        本文标题:OC面向对象 ☀️

        本文链接:https://www.haomeiwen.com/subject/wgrodttx.html