zoukankan      html  css  js  c++  java
  • IOS学习之路--OC的基础知识

    • 运行过程

    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];
    •  OC对象方法和函数的区别

      1. 函数属于整个文件,在文件的任意地方都能调用;对象的方法只属于这个对象,只有对象才能调用

      2. 对象的方法只能声明在@infterface 和@end 之间,对象方法只能实现在@implementation 和@end之间。

       函数的声明和定义可以写在任意地方,函数不能归某个类所有,只属于某个文件。

    • 消息机制

      给指针变量所指向的对象发送一条消息(消息名称就是方法名),让那个对象执行相应的方法(动态)

  • 相关阅读:
    Why Choose Jetty?
    Jetty 的工作原理以及与 Tomcat 的比较
    Tomcat设计模式
    Servlet 工作原理解析
    Tomcat 系统架构
    spring boot 打包方式 spring boot 整合mybaits REST services
    wireshark udp 序列号 User Datagram Protocol UDP
    Maven 的聚合(多模块)和 Parent 继承
    缓存策略 半自动化就是mybaitis只支持数据库查出的数据映射到pojo类上,而实体到数据库的映射需要自己编写sql语句实现,相较于hibernate这种完全自动化的框架我更喜欢mybatis
    Mybatis解决sql中like通配符模糊匹配 构造方法覆盖 mybits 增删改
  • 原文地址:https://www.cnblogs.com/xitang/p/3835590.html
Copyright © 2011-2022 走看看