• oc基础-OC基础-类的使用


               

     #import <Foundation/Foundation.h>

     //定义枚举类型
     typedef enum
    {
        sexMan,
        sexWomen
    } Sex;
    //定义日期类型
    typedef Struct
    {
      int year;
      int month;
      int day;
    } Date;
    //1.声明类 (此时不能初始化类的成员变量) 2 3 @interface Student:NSObject 5 { 6 @public; 9    int _age; 11    char *_name;
        Sex _enumSex;
    Date _birthday;
    13   //声明方法 15   - (void) study; 17 } 18 19 @end 20 21 //2.类的实现 22 23 @implementation Student 25 //方法的实现 27 - (void) study 29 { 31   NSLog(@"开始学习"); 33 } 35 @end

    int main()
    {
      Student *stu=[Student new];
      stu->name="aaa";
      stu->age=20;
      Date d={1995,1,12};
      stu->birthday=d;
      stu->enumSex=sexWomen;

      //调用方法
      [stu study];
    }

    1.声明类的同时不能对类里面的成员变量初始化

    2.要是外部的实例指针访问类的成员变量,就必须在成员变量前加上@public,默认是受保护的

    3.OC中操作对象,都是用指针间接操作的

    4.OC中方法的声明语法 :方法类型 (数据类型)方法名;  (oc中的方法类型都是减号-,oc中的()仅用来括住数据类型)

    5.操作类对象的行为语法:[执行者  行为]

    6.typedef 关键字用于定义类型, typeof int myInt;  那么在该文件中使用myInt 就是在使用int类型

    7.结构体仅在定义实例的时候可以直接赋值。(错误写法:Date d; d={1995,1,12})

    8.成员变量一般都用 下划线开头

    9.该代码的内存分析:

      1.当创建类的实例赋值给外部指针时,在内存中就分配一块空间给该指针对象,该内存的地址就是实例的地址,同时分配一块内存给创建的实例,该内存中存放了成员变量;

            若是第一次创建实例,那么还会给类分配一块内存,该内存中存放类的方法列表

         2.给类成员变量赋值时:由指针找到变量,并赋值

         3.调用方法时:在每个实例内存中默认存在一个isa内存,当指针向实例发送一条行为消息是,该isa内存就会指向类的内存中,找到行为

         

     

  • 相关阅读:
    STM32中GPIO的8种工作模式
    robots.txt与搜索引擎
    关于《腾讯工具类APP的千年老二》的读后感
    PCB布线的操作步骤
    c语言数据库编程ODBC
    锂电池相关结构优势特点及其保护电路解析方案
    C语言中的#与##字符的作用
    PADS中Layer的描述说明
    吃了单片机GPIO端口工作模式的大亏——关于强推挽输出和准双向口(弱上拉)的实际应用
    Protel与PADS之间相关文件的转换
  • 原文地址:https://www.cnblogs.com/hui1107464497/p/4491230.html
Copyright © 2020-2023  润新知