OC语言基础内容 类的定义 第一个OC

OC基础day01

第一个OC程序

  • OC与C的基本区别

    • C语言的源文件 XXX.c
    • OC语言的源文件 XXX.m
    • 在C语言中 用printf打印信息 OC中用NSLog()打印信息
  • OC中的改变

    • OC中 引入头文件的预处理指令 是 #import
    • C语言中多次包含 #include<”文件名”>不会有问题的
      #ifndef xxx_h
      #define xxx_h
      #include “头文件.h”
      #endif
    • 因为在C中 通过条件编译指令,来防止重复包含
    • 在OC中 #import指令 不需要条件编译来防止重复包含
  • 格式
    #import “自己的文件”
    #import <系统提供的文件>

Foundation 框架

  • 框架: 类似于 C语言中库文件(#include

NSLlog 函数

* NSLog函数是 printf 函数基本上一样的函数*
* NSLog函数 具有和printf 函数基本一样的功能
* NSLog函数 打印C中的字符串的时候纯英文没有问题 但是不能有中文
* 打印举出数据类型 一些常量 变量 都是一样
* 增强体现在
* 2016-08-14 10:28:03.946 day01课上代码[7550:655818] name = abdcef
* 自动智能换行:如果输出时 不加’\n’,会自动换行,如果想多换行,那么必须是两个’\n’
* 输出一些状态信息
输出时间信息,精确到毫秒 ” 2016-08-14 10:28:03.946
输出当前的Target名字 “day01课上代码
[7550:655818] “[进程号:线程]
* NSLog函数的格式
* NSLog(@”格式控制字符串”,要打印的变量或者常量);
NSLog函数还可以打印 OC中特有的一些数据类型

NSString字符串

  • OC中的字符串的写法
    “abcd” C语言中的字符串
    @”abcd” OC语言的字符串
  • 在IC中有一个专门的类型用来白村 IC中字符串的类型
    • NSString *str = @”abcdef”;
  • 打印OC中的字符串 用 %@ !!!!

  • oc 的其他基础语法

    • 在OC中国有大量的名字都是以NS开头的
    • @符号的作用
      • 在C字符串前加@ 就是变成了OC 字符串
      • OC中新增的关键字 大部分都是以@开头的
        • @interface
        • @implementation
        • @end
  • 注释: OC注释和C注释完全一样
  • OC中定义C函数的方式和语法一模一样
  • * OC程序的编译连接流程*
    • 创建文件xxx.m 写代码
    • 编译 —> cc -c xxx.m
    • 链接 —> cc xxx.o -framework Foundation
    • 运行 ./a.out

BOOL类型变量

  • C语言中数据类型
    • 基本数据类型
    • 结构体类型
    • 指针类型
    • 空类型void
    • typedef定义的数据类型
  • OC中特有的数据类型
    • BOOL类型
      • typedef signed char BOOL;
      • BOOL rel = YES/NO;
      • ES 代表真的 NO代表假的
    • Boolean类型
      • typedef unsigned char Boolean;
      • Boolean rel = true/false;
      • true 代表真 false 代表假
    • Class类型
      • 类 类型
    • nil
      • 和C中的NULL很相似
    • SEL类型
      • 这个类型变量 可以保存一个方法
    • block类型
      • 这个乐行的变量 可以保存一段代码

面向对象 和面向过程

  • 面向过程
    • C语言是一个面向过程的语言 每一步都亲力亲为
  • 面向对象
    • 特征:
      • 抽象
      • 封装
      • 继承
      • 多态
    • 面向过程编程和面向对象编程只能解决问题的两种不同的思路,没有谁有事谁劣势
    • 面向过程强调的是按照解决问题的逻辑,一步步实现 ,注重把控每一步骤的细节
    • 面向对象强调的是 解决问题找一个对应擅长解决这类问题的东西
  • 如何利用对象
    • 遇到问题 不要一步一步去实现
    • 框架 Foundation AVFoundation CoreGraphics
    • 有 直接用
    • 没有自己 写框架

类 和对象

  • 类: 具有相同属性的,共同行为的事物
  • 对象: 类中的一个个体 一个具体的存在
  • 类与对象的关系:
    • 一个类有多个对象
  • 在现实生活中 现有对象在有的类
  • 在代码中 先有的类 通过类可以创建对象
    • 通过类创建对象的过程叫做 实例化
  • * 如何设计一个类*
    • 设计类
      • 类名
      • 属性
      • 行为(方法)
1.定义一个类: 类的声明(.h) + 类的实现(.m)

类的声明:
    @interface 类名 : NSObject
    {
        //类的属性,以数据类型 变量名
        数据类型1 变量名1;
        数据类型2 变量名2;
        //注意:属性的变量名 必须一定要以"_"开头


    }
    //这里写行为(方法)
    @end

类的实现:(什么都没有 你也要写实现)
    @implementation 类名

    @end

常见错误

  1. 类的声明和类的实现的中,类的名字一定要一致
  2. 一个类的属性必须要写在@interface—@end 之间的一对花括号中 “写在花括号外面也不行

  3. 属性必须要以下划线开头,这是必须遵守的规范,因为后面所有的知识点的引申都是在这个基础上进行的

  4. 用指针指向一个对象的时候,要么和类名在一起,要么和指针变量在一起,要么放在类名和指针变量之间.

  5. 平常所说的对象名实际上是一个存储了对象的地址的指针变量,既然是变量,就遵守变量的命名规则.

    1. 规定:以字母或者下划线开头,英文字母/数字/_/$组成的
    2. 规范:驼峰命名法
  6. 访问对象的属性的时候是可以用 (*对象名).属性 这种语法格式,但是不要这样用,因为大家都不使用这种方式.

  7. 通过对象名访问对象的属性的时候注意正确的语法格式 对象名->属性名,注意属性名要添加下划线

  8. 默认情况在类的外部不允许直接通过对象名访问对象的属性,此时不要惊恐,只需要在定义属性的时候添加@public修饰

  9. 给对象的属性赋值的时候,实际上是给对象内部某个类型的变量赋值,此时要注意做到类型的匹配.

  10. 在类的声明中,属性只是一种描述,属性只有在对象被创建出来之后才有意义.所以在类的外部访问属性,必须要通过对象名来访问

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值