温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

第一讲、类和对象

发布时间:2020-07-15 22:50:18 来源:网络 阅读:387 作者:遥星梦 栏目:开发技术

一、OC概述

代码格式

    int main(int argc, const char * argv[]) {
    @autoreleasepool {

             

                    代码区


         }
      return 0;
     }

1、OC中支持基本数据类型  int 、float 

2、C语言中使用字符串  "hello"                        OC中使用字符串对象 @"hello"

3、NSString是系统类库提供的--字符串类    
      定义对象类型的变量时必须加 *                  NSString * name = @"zhangyixing";

4、OC中的新类型      类类型(对象类型)

5、printf(C)  NSLog(OC)   输出字符串内容     NSLog( @"zhangyixing");

6、输出基本数据类型的值
      NSLog(@"number = %d, score= %.2f, age = %ld",number, score, age);

7、输出对象
      NSLog(@"name = %@", name);               NSLog(@"name = %@", @"zhangyixing"); 


二、面向对象编程

     面向对象编程OOP (Object Oriented Programming )

     面向对象语言:C++,Java,C#

     概念:对象、类、封装、继承、多态等


三、类和对象

       先定义类,再创建对象,使用对象。

       类是模板,对象是具体表现,任何对象都要占用内存空间.

1、定义类----接口部分、实现部分

      新建文件  OS X -------Cocoa Calss

      设置name:Person(使用类名命名文件)、Subclass of:NSObject、Language:OC

  1)接口部分----对外声明的特征和行为----------Person.h文件

        

         #import <Foundation/Foundation.h>

         // 接口的开始

        @interface Person:NSObject (类名:父类型)

         {

          // 声明类的特征

          // 实例变量:存储的是对象的特征     注意 : 首字母是_

          NSString * _name;

          int _age;

         }

        // 声明类的行为

        // 方法:与C中的函数相似,OC中没有函数的概念

            (1)+表示这个方法属于类,只能类执行          [类名 方法名]

            (2)-表示这个方法属于对象,只能对象执行    [对象 方法名]

         - (void)sayHi;

         // 接口的结束

        @end

      

  2)实现部分----对内实现行为----------Person.m文件


         #import "Person.h"
         // 实现部分的开始
         @implementation Person
         - (void)sayHi  // 减号 空格
         {
             NSLog(@"你好");
         }

         // 实现的结束
        @end


2、创建对象:分配内存空间、初始化、存在堆区-------main.m文件

      main函数上面导入文件----#import "Person.h"

   1)分配内存空间---[类名 alloc]
         OC中使用[]调用方法  alloc是系统提供的类可以调用的方法
         (1)在堆区分配内存空间;

         (2)内存空间的数据被自动清除,所有的实例变量默认值设置为0;

         (3)返回分配的存储空间的首地址

         Person * p1 = [Person alloc];
        指针p1指向堆区中存储的person对象,因此通常将p1代指为person对象

  2)初始化对象------[对象 init]

       初始化:为对象的实例变量设置初始值

        init初始化  是系统提供的进行对象初始化操作的方法,只能对象调用

        p1 = [p1 init];
        Person * p2 =[[Person alloc] init];
        p1 p2 是同类型的,两个不同的对象

        Person * p3 = nil; // p3指向空,是一个空指针,不能当成对象

        在OC中,对nil做任何操作都是无效的

        p3 = p1; // p3、p1 指向同一个对象

3、通过对象调用方法,实现功能

      OC中使用[]调用方法  alloc是系统提供的类可以调用的方法

      [p1 sayHi];   // 打印----你好


向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI