• 基础知识


    • 运行过程

    1.编写OC程序:.m源文件

    2.编译.m文件为.o目标文件:cc -c xxxx.m

    3.链接.o文件为a.out可执行文件:cc xxxx.o -framework Foundation

    4.执行a.out文件:./a.out

    • #import 的功能跟#include一样,只是更好用,他避免了头文件的多次包含
    • 为了能使用OC的特性, 一定要引入#import <Foundation/Foundation.h>
    •  类定义// @implementation 和 @end

    复制代码
    // 设计(定义)一个车类
    // @implementation 和 @end
    // : NSObject :让Car这个类具备创建对象的能力(继承)
    @implementation Car : NSObject
    // 这个大括号里面只能写所有的属性
    {
        // @public:让对象的属性可以被外面的指针访问,默认是私有的
        @public
        int wheels; // 默认基本数据类型的初始值都是0
    }
    
    // 在@end的前面,大括号{}外面写行为
    // 给Car对象增加一个行为(方法)
    // 给对象增加一个行为,必须以减号 - 开头, 给类增加一个对象是+。
    // OC方法中的小括号()只是主要扩住类型
    - (void) run
    {
        // 访问车子对象内部的属性,直接用属性名就可以
        NSLog(@"%i个轮子,%f时速的车子跑起来了!", wheels, speed);
    }
    + (Void) test
    {
        // 这是类方法。上面那个-号的是对象方法。
    }
    
    @end
    复制代码
    •  类调用
    复制代码
        // 在OC中想执行一些行为,首先写个 [行为执行者  行为名称]
        
        // new这个行为执行完毕后,会返回这个对象的地址
        Car *c = [Car new];
        // 给c指向的车子对象的wheels属性赋值
        c->wheels = 4; // 等价于 (*c).wheels = 4
        
        // 给指针变量c指向的对象“发送”一条run消息,让这个对象执行run这个行为
        [c run];
    复制代码
    •  声明&实现
    复制代码
    // 声明一个类
    /*
     1.类名
     2.继承了NSObject
     3.声明属性
     4.声明方法(仅仅是声明,不需要实现)
     5.实现和声明中的成员变量不能同名
     */
    @interface Book : NSObject
    {  
        @public
        double price;// 这些属性称为对象的“成员变量”
    }
    
    // 声明一个方法(行为)
    - (void)reng;
    
    @end
    复制代码
    复制代码
    // 定义(实现)一个类
    /*
     只用来实现@interface中声明的方法
     */
    @implementation Book 
    
    - (void)reng
    {
        NSLog(@"%f的书被扔了!", price);
    }
    复制代码
    •  多参数的声明和使用
    复制代码
    - (void) fly
    {
        NSLog(@"i can fly, my age is %d", age);
    }
    
    // 一个参数对应一个冒号
    // 冒号也是方法名的一部分
    - (void)fly:(int)howHeight
    {
        NSLog(@"i can fly, my age is %d, my height %d", age, howHeight);
    }
    
    // 多个参数的情况。  withTime是方法名的一部分.times是参数名称
    - (void)fly:(int)howHeight :WithTime(int)times
    {
    }
    复制代码
        Person *p = [Person new];
        [p fly];
        [p fly:99];
        [p fly:99 WithTime:10];
  • 相关阅读:
    object sender和EventArgs e含义
    将十进制小数转化为二进制小数的方法
    什么是类、对象、方法、属性、类的成员
    asp.net代码中尖括号和百分号的含义
    打开某个AVI文件,explorer.exe遇到问题需要关闭的解决方法
    中国娱乐学习门户负责人吴晓林讲解项目
    系统流程图与业务流程图
    如何去掉Zblog的版权信息(powered by)
    利用教育游戏丰富与深化综合实践活动课程教与学的理论与实践研究 课题
    浅析C# 中object sender与EventArgs e(转)
  • 原文地址:https://www.cnblogs.com/xubin-123/p/4307233.html
Copyright © 2020-2023  润新知