zoukankan      html  css  js  c++  java
  • 基础知识

    • 运行过程

    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];
  • 相关阅读:
    Jzoj4822 完美标号
    Jzoj4822 完美标号
    Jzoj4792 整除
    Jzoj4792 整除
    Educational Codeforces Round 79 A. New Year Garland
    Good Bye 2019 C. Make Good
    ?Good Bye 2019 B. Interesting Subarray
    Good Bye 2019 A. Card Game
    力扣算法题—088扰乱字符串【二叉树】
    力扣算法题—086分隔链表
  • 原文地址:https://www.cnblogs.com/xubin-123/p/4307233.html
Copyright © 2011-2022 走看看