A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

//
//  OC1.h
//  OC1
//
//  Created by apple on 15-8-4.
//  Copyright (c) 2015年 itcast. All rights reserved.
//

#ifndef OC1_OC1_h
#define OC1_OC1_h


#endif
**********************************************************
1.【面试题】 引入头文件  为什么要用import?
    include 和 import都是引入头文件
    import引入的头文件,可以防止重复包含
    include 它是使用预处理指令防止重复包含,如果没有写预处理指令,则无法防止重复包含问题

2.【面试题】import 和@class的 区别


3. Foundation/Foundation.h是什么
        1)头文件
        2)头文件的位置
        3)文件中包含了其他的大量的头文件
        作用:把Foundation.h引入了,等于把OC的库文件都引过来了

4. @autoreleasepool 自动释放池

5. NSLog(@"");是一个函数
            作用:向控制台输出
    1)NSLog 与printf的使用差异
    NSLog 会自动换行 printf不会自动换行
    NSLog 会自动输出时间等项目信息  printf不会输出传递信息
    NSLog 函数的参数是一个NSString 对象 printf 是一个字符串常量指针

    2)  NSLog 格式化输出的问题
        printf函数能在OC中运行 ,寿命OC向下兼容C
        NSLog 也可以进行格式化输出

OC中特有的字符串表示方法
NSString *str=@"张三丰";// NSString是OC特有的  C 不能访问
NSLog(@"%@",str);

**********************************************************
1. @符号的使用
    @“”    这个符号表示将一个C的字符串转化为OC中的字符串对象NSString。
    @标示符    OC中大部分的关键字都是以@开头的,
2. OC中的注释
    单行注释 //
    多行注释 /*
           注意:多行注释不能嵌套
            */
    文本注释:/**
         
            */
    条件编译的注释:
                # if 0

                #endif

**********************************************************
OC和C的差异(一)
1.源文件对比
    C语言中  .c
            .o
            .out
            .h

    OC中     .h
             .m


2.基本语法对比
    1)数据类型对比
    C语言: 基本类型: 整型: 短整型 short
                            整型 int
                          长整型  long

                    字符型        char

                    实型   单精度  float
                          双精度  double

            构造类型  数组
                    结构体 struct
                    枚举类型

            指针类型

            空类型   void

            定义类型 typedef

    OC中:    基本数据类型  数值型









    2)







**********************************************************
OC和C的差异(二)
1.新增数据类型介绍

    1)逻辑性

      (1)Boolean  用于存储真值1和假值0 一般用于程序流程控制 逻辑判断
        OC 中也可以用 true 表示真 false表示假
        用来存放true和false的变量 我们声明为Boolean类型

      (2)BOOL 存放逻辑值的另外一种方法  它的取值 是YES 和 NO
            YES 真  1
            NO  假  0

2.异常捕捉方法

//注意:try catch 并不能检测所有的错误
@try {
    //此处放的事有可能出错的代码
    int result = a/b;
}
@catch (NSException *exception) {
    //此处放 出错后 我们处理的代码
    NSLog(@"exception = %@",exception);
}
@finally {
    //不管出没出错,这里的代码一定会执行
    printf("fengjie!\n");
   
}


**********************************************************
面向对象编程概念

1.编程就是将我们的思维转变成计算机能够识别的语言的一个过程

2.面向对象设计三个主要特征
封装
多态
继承




**********************************************************
类和对象

1.类(class)和对象(object)
类是具有相似内部状态和运动规律的实体的集合

对象 现实世界中各种各样的实体。可以指具体的事物也可以指抽象的事物。

消息 指对象间相互联系和相互作用的方式


2.类的构成

人的类设计,只关心3样东西:
事物名称(类名):人(Person)

属性:身高(height)、年龄(age)

行为(功能):跑(run)、打架(fight)


3.类的抽象
    拥有相同属性和行为的对象都可以抽象出一个类


**********************************************************
类的声明和实现

OC中类的定义有两部分:类的声明、类的实现

1.1).h类的声明文件   使用关键字 @interface @end

     .m类的实现文件   使用关键字 @implementation  @end

    2)方法的实现和声明都必须以+ -开头

        + 表示类方法(静态方法)

        - 表示对象方法(动态方法)

     3)成员变量(实例变量\属性)

        成员变量的常用作用域有3种:
        @public 全局都可以访问
        @protected 只能在类内部和子类中访问
        @private 只能在类内部访问

2.类的定义

结构体定义
struct Student{
   
   
};   ---->定义一个Student 结构体



类的定义分为两部分:

1)类的声明(规定当前类的:类名、属性、行为)

@interface 类名:父类名
{
    //定义类的属性
}
//类的行为
@end



2)类的实现(实现具体行为)

@implementation 类名

//行为的具体实现

@end


**********************************************************
创建一个对象 并访问成员变量
//车的类的声明
@interface Car:NSObject
{
    //类的属性
    @public //公有的
   
    int lunzi;  //车的轮子
    NSString *color;//车的颜色
    int speed;  //车的速度
}
//类的行为
@end


//类的实现
@implementation Car
//行为的具体描述
@end


在OC中用已经存在的类,如何创建一个对象?

    回顾 C的结构体 结构体 如何创建结构体变量
     struct Student stu;// stu 就是结构体变量
    struct Student *pstu; //pstu =&stu

    OC中对象的创建

        [Car new];//做了3件事情
            //向计算机申请内存空间
            //给类中的每一个成员初始化值
            //返回新申请的空间的首地址

//  int *p=[Car new];  //用int 类型不同

        Car *p=[Car new];
        //理解方式一:
            //定义了一个Car类型的指针变量
            //指针变量指向新申请的内存空间

        //理解方式二:
            //用Car类实例化了一个实例对象,对象的名称是p

Car *car1 =[Car new]; //创建Car类型的对象 car1

//创建一个对象 实质还是指针(用指针间接访问实例变量值)



**********************************************************
无参方法声明实现及调用

@interface Car:NSObject
{
    int lunzi;
    int speed;
    NSString *pp;
}
//行为
//车跑得方法   方法名是run
-(void)run;   //定义了一个无参无返回值的方法
-(void)stop;

@end


//类的实现
@implementation Car

//方法的具体的实现
-(void)run{
   
    NSLog(@"车跑在乡间的大道上");
   
}

-(void)stop{
   
    NSLog(@"咯吱,车停了!");
   
}

@end



**********************************************************
有参方法声明实现和调用

1.声明和实现
    C语言中 有参函数
int sum(int x,int y){

    return x+y;

}

OC中的方法

-(返回值类型)方法名1:(参数类型)参数名;//有一个参数的方法

-(返回值类型)方法名1:(参数类型1) 参数名1 and:(参数类型2) 参数名2;//有两个参数

//sum-------->>OC的方法

-(int)sum:(int) x and:(int)y;//方法的声明

//有参方法使用注意:
方法的类型    对象方法

方法的返回值  int 类型

方法的参数是 x  y

参数的类型  第一个int 第二个 int

方法名      sum:  and:   (冒号是方法名的一部分)


//方法的实现
-(int)sum:(int) x and:(int) y {
   
    return x+y;

}














1 个回复

正序浏览
学习了,虽然还没看到OC部分
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马