OC中的数据类型 #import指令 类和对象

IOS学习第17天

#import指令

1.#import指令?
    OC中 引入头文件的预处理指令

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

###NSLog函数

NSLog函数 是 printf函数的增强

1.NSLog函数 具有和printf函数基本上一样的功能

2.NSLog函数 打印C中的字符串的时候纯英文 没有问题,但是不能有中文

3.打印基数据类型 一些常量 变量 都是一样

4.增强体现在什么地方?
2016-08-14 10:28:03.946 day01课上代码[7550:655818] name = abdcef
4.1>自动智能换行:如果输出时 不加’\n’,会自动换行,如果想多换行,那么必须是两个’\n’

4.2>输出一些状态信息
    输出时间信息,精确到毫秒    " 2016-08-14 10:28:03.946
    输出当前的Target名字       "day01课上代码
    [7550:655818]  "[进程号:线程]
    5.NSLog函数的格式
NSLog(@"格式控制字符串",要打印的变量或者常量);
NSLog函数还可以打印 OC中特有的一些数据类型
    ```

NSString

1.在OC中有大量的名字 都是以NS开头的

2.@符号的作用:
    2.1> 在C字符串前加@ 是它变成OC的字符串


    2.2>OC中新增的关键字 大部分都是以@开头
        @interface
        @implementation
        @end

3.注释:OC注释和C注释完全一样


4.OC中定义C函数的方式和语法一模一样

OC程序的编译链接流程

1.创建文件 xxx.m   写代码
2.编译 ---> cc -c xxx.m
3.链接 ---> cc xxx.o -framework Foundation
4.运行 ./a.out
  • OC程序和C程序各个阶段的文件后缀名对比.
源文件目标文件可执行文件
C语言.c.o
OC语言.m.o

补充:删除某一个文件命令行 rm 文件名1 文件名2

BOOL与Boolean类型

"OC 支持C语言中所有的数据类型

1.C语言中数据类型
    1>基本数据类型

    2>构造类型

    3>指针类型

    4>空类型void

    5>typedef定义的数据类型

2.OC中特有的数据类型
    1>BOOL类型

    2>Boolean类型

    3>Class 类型
    4>nil
    5>SEL类型
    6>block类型

3.BOOL类型
    1>本质:
       typedef signed char BOOL;

    2>赋值:
    BOOL rel = YES/NO;
    一般来说 BOOL 类型的变量 来表示一个条件表达式的值

    3>意义:
        YES 代表真的 NO代表假的
    BOOL 布尔类型 也可以写成bool


4.举例:写一个函数 判断 一个数是否为偶数

    BOOL panDuan(int num)
    {
        //判断 num是不是偶数
        if (num %2 == 0) {
            return YES;
        }else {
            return NO;
        }

    }


Boolean类型

1.本质:
    typedef unsigned char  Boolean;
2.赋值:
    Boolean rel = true/false;

3.意义:
    true 代表真 false 代表假
4.BOOL 和  Boolean

面向过程与面向对象的优缺点分析

"强调
1.面向过程编程和面向对象编程只是解决问题的两种不同的思路,没有谁优谁劣的说法.
2.面向过程强调的是按照解决问题的逻辑,一步步实现,注重把控每一个步骤的细节.
3.面向对象强调的是解决问题找一个对应的擅长解决这类问题的"专家",这些"专家"在框架中有很多是存在了的,我们可以直接用,如果没有提供,我们就自己创造,并且以后可以复用,这样代码的可维护性就强了,

如何利用面向对象
1.遇到问题:千万不能 自己一步一步去实现

2.框架:Foundation AVFoundation CoreGraphics

3.有:直接拿过来用

4.没有:自己写框架

类和对象

类:具有相同属性,相同行为的一些事物的统称

对象:类中的一个个体,一个具体存在

  • 类与对象之间的关系
一个类 可以有 多个对象
概念:
在现实中:先有对象,再有类
代码中:
    先有类,通过类 可以创建对象
    通过类创建对象的过程 "实例化
    ```

* 如何定义一个类

1.定义一个类: 类的声明(.h) + 类的实现(.m)

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

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

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

@end
```
  • 对象的创建与使用

“`
类 可以创建对象 这个过程 “实例化

1.写一个类,学生类
属性:姓名 学号 年龄 语文成绩 数学成绩 外语成绩
//类的声明
@interface Student : NSObject
{
//属性 必须用”_”开头
NSString * _name;
int _number;
int _age;
float _ChineseScore;
float _MathScore;
float _WaiYuScore;

}
@end
//类的实现
@implementation Student

@end

2.如何根据类 来创建一个对象
格式:类名 * 对象名 = [类名 new];

如何给对象赋值?

对象名->成员变量名 = 具体数据

“注意 默认情况下 在外界是无法访问 成员变量的

解决方案: 如下 在所有成员变量前 加上一个关键字修饰 @public 即可
//类的声明
@interface Student : NSObject
{
//属性 必须用”_”开头
//因为 类的属性/成员变量 默认外界是不能访问
@public//共用,就改成 外界可以访问
NSString * _name;
int _number;
int _age;
float _ChineseScore;
float _MathScore;
float _WaiYuScore;

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值