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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 长厢厮守℡ 中级黑马   /  2015-12-9 10:09  /  613 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

一.第一个OC程序

代码演示:
#import <Foundation/Foundation.h>
int main(int argc ,const char *argv[]){
   @autoreleasepool {
       NSlog(@"hello heima!");
    }
  return 0;
}
1.#import与#include
(1)都是预编译指令,把文件拷贝到指令所在位置
(2)#import <> 与#import <>都是用来包含系统头文件的
(3)#import ""与#import "" 都是用来包含自己项目中的头文件
(4)#import <> 是#import <>的升级版,可以自动防止文件重复包含
2.Foundation :就是Foundation框架
3.@autoreleasepool :是内存管理的一个东西(了解即可)
4.NSlog :Foundation框架提供的用于日志输出的函数
NSlog与printf对比
(1)printf 是由C语言提供,在stdio.h头文件中
(2)NSlog是由Foundation框架提供,在NSObjCRuntime.h文件中
(3)NSlog包含日志输出的日期,以及对应的应用程序
(4)NSlog自动换行,在末尾加\n无效
(5)NSlog中的格式字符串不是普通C语言字符串,@" " 是NSString对象的字 面量表示
(6)printf中所有占位符在OC中都支持
(7)NSlog新增占位符%@用于输出对象的

二.面向对象思想
1.面向对象与面向过程:面向对象是相对面向过程而言,他们都是一种思想。
面向过程:强调的是功能行为,关注的是解决问题需要哪些步骤
面向对象:将功能封装进对象,强调具备了功能的对象,关注的是解决问题需要哪些对象
面向对象是基于面向过程的
2.面向对象特点:
(1)是一种符合人们思考习惯的思想
(2)可以将复杂的事情简单化
(3)将程序员从执行者变为指挥者

三.类与对象的关系
OC中描述事物通过类的形式体现。类是具体事物的抽象(概念上的定义)
对象即是该类事物实实在在存在的个体


四.创建第一个类
1.[类名 new]作用 :通过类来创建一个对象
  (1)为对象在堆中分配内存
  (2)初始化成员变量
  (3)返回指向刚刚创建出来的的对象的指针
2.OC中方法声明的格式
   对象方法:是属于对象的,只能通过对象调用,方法类型符是 -
   2.1无形参的对象方法声明格式   - (返回值类型) 方法名称
   2.2有形参的对象方法声明格式

注意点:(1)冒号 : 是方法名称的一部分
        (2)一个冒号:对应一个形参
        (3)冒号:前面的文字用来描述参数

3. OC中一个类包含2个部分:声明和实现
3.1声明:@interface 类名 : NSObject
         {
         @public
         // 一定要在大括号中声明类的属性(成员变量)
         // 命名规则:标识符规则
         // 命名规范:_开头  _后面字母小写,其后的单词首字母大写
         }
         方法声明; // 此处须加分号
         @end
      (1)类的声明必须以@interface开头,必须以@end结尾
      (2): NSObject 基类(所有类的祖先类),作用是让类具有创建对象的能力
  注意点:(1)成员的声明必须放在@interface与@end之间的大括号中
         (2)方法的声明必须放在{}与@end之间
         (3)@implementation 就是用来实现方法的
         (4)类只有声明没有实现,链接会报错
         (5)在OC中定义类、枚举、结构体的时候需要加前缀(_CZ)
3.2实现:类的实现必须以@implementation开头,必须以@end结尾
          @implementation 类名
          方法
          {
            方法实现// 对象方法中可以直接访问该对象的成员变量
          }
          @end

代码演示:
类名:Person  
属性 :姓名  年龄
行为 :吃
// 声明类
@interface _CZPerson  :NSObject
{// 声明属性(成员)
@public
char *_name;
int _age;
}
//声明方法
- show;
- void eat: (char*) food;
@end
//实现类
@implementation _CZPerson
- show
{
  NSlog(@"name=%s,age=%d",_name,_age);
}

- void eat: (char*) food
{
   NSlog(@"吃了%s",food);
}
@end

#import <Foundation/Foundation.h>
int main(int argc ,const char *argv[]){
// 通过类创建对象
   _CZPerson p = [_CZPerson new];
   p->name = "xm";
   p->age = 18;
// 调用方法
   [p show];
   [p eat:apple];
return 0;
}

         


  

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马