黑马程序员——OC与C语言的异同比较

1.  文件介绍:Objective-C 也使用头文件(header files),后缀为 .h, 但使用 .m(即 message, 其他面向对象编程语言也叫 method),作为源文件的后缀。 
                  在objective-c中使用#import<>,而不使用#include<>,#import可以保证头文件只被包含一次。 
2. 与C一致的地方: 数据类型,表达式,各种运算符 
   循环:for, while, do while, break, continue 分支:if, else, switch 
3.NSlog()函数:与printf()类似,想控制台输出信息。但它增加了一些特性,如时间戳等。 【cocoa对起所有的函数,常量和类型名称都添加了NS前缀。】 
4.双引号的前面的@表示这双引号中的字符串应该作为cocoa的NSString元素来处理。

5.布尔类型BOOL:值为YES,NO;

6.%d表示输出整数%@表示输出NSString类型 %s表示输出字符串数组(char*);

7.    objective-c中的方括号: 1.       用于通知某个对象该做什么。 
                                        2.       方括号内第一项是对象,其余部分是你需要对象执行的操作。 
                                        3.       在objective-c中通知对象执行某种操作,称为发送消息。(也叫调用方法)

8. 标识符id:是一种泛型,用于表示任何种类的对象。

9. 类声明@interface:

@interface Circle:NSObject   //为Circle类定义接口;NSObject表示是父类。

{//以下是数据成员

ShapeColor fillColor;

ShapeRect bounds;

}

//以下是方法声明

-(void) setFillColor: (ShapeColor) fillColor;  // 前面的短线表明这是方法声明//短线后面是方法的返回类型//接着是方法名

// 冒号后面是参数,其中(ShapeColor)是参数类型, fillColor是参数名 
-(void) setBounds:(ShapeRect) bounds; -(void) draw; // 减号就是普通函数 加号就是静态函数 @end     //结束声明

objective-c看到@符号,就把它看成是C语言的扩展。 一个类的完整声明如下: 
    @interface CClassA(Category): CBaseClass<IA,IB...> //类名(类别名):父类<协议> 
10. 类实现@implementation

@implementation @implementation Circle 
-(void) setFillColor: (ShapeColor) c


   fillColor=c;


-(void) draw

{

    NSLog(@”drawing a circle at(%d %d %d %d) in %@”, 

bounds.x,bounds.y,bounds.width,bounds.height,colorName(fillName)); 

}

@end

隐藏对象self对应于C中的this。 Self->fillcolor来访问成员变量。 
11. 调用写好的类和类函数: 
//创建新对象,使用缺省初始化函数 
    Bank *bankDefault = [[Bank alloc] init]; //调用方法: 
    [bank addAmount: 1]; [bank print]; // 释放对象: 
    [bankDefault free];  
12. 
两个参数的方法: 
-(void) setTire: (Tire *) tire  //声明

atIndex: (int) index;

//使用

[car setTire:tire atIndex:2];

http://www.itheima.com/

时间: 2024-10-13 10:50:58

黑马程序员——OC与C语言的异同比较的相关文章

黑马程序员——oc语言学习心得—— 属性声明和赋值

黑马程序员——oc语言学习心得—— 属性声明和赋值 -------Java培训.Android培训.iOS培训..Net培训.期待与您交流! ------- 1,在oc中所有类继承与终极父类Object2,声明字符变量采用N是string  *_xxx 实例变量一般以下划线开头3,在oc中方法以+ -号区分 -号开头是实例方法或对象方法  +号开头是类方法  前置用对象调用 后者用类名调用4,在xcode4以后声明@property 不用在写@snysize  自动生成get.set方法5,属性

黑马程序员—oc语言学习心得—block

黑马程序员—oc语言学习心得—block -------Java培训.Android培训.iOS培训..Net培训.期待与您交流! ------- 1,程序一般用typedef定义一个block类型 然后调用 typedef void(^xxx)(); 可使用助记符 inlineblock 2,Block内部可以访问外部变量:默认情况下,Block内部不能修改外部的局部变量 给局部变量加上__block关键字,则这个局部变量可以在block内部进行修改. 3,block的作用: 利用block封

黑马程序员——oc语言学习心得----NSFileManager

黑马程序员——oc语言学习心得----NSFileManager -------Java培训.Android培训.iOS培训..Net培训.期待与您交流! ------- 自己总结了下NSFileManager的简单几个用法 : // 首先要创建文件管理器 NSFileManager *fm=[NSFileManager defaultManager]; 1,判断文件是否存在 fileExistsAtPath: 2,判断文件是否是目录 fileExistsAtPath: 3, 判断文件是否可读

黑马程序员 oc与c的区别,联系

1.文件的扩展名的区别       1>c语言源文件的扩展名是.c,而oc的扩展名是.m       2>c语言经过编译之后得到的目标模块扩展名是.obj,而oc编译之后是.o       3>c语言目标程序与其他目标程序和库函数经过连接得到可执行文件的扩展名是.exe,而oc是.out2.两者的编程思想是不同的        c语言是面向过程的编程语言,oc是面向对象的编程语言3.oc语言对于c语言的拓展       oc是面向对象的编程语言,它的基本数据类型比c语言多了个bool类型

黑马程序员-OC的类的构造方法

构造方法:用来初始化对象的:首先分解一下创建对象的过程: Person *p = [Person new]; // new方法是alloc 和 init 这两个方法的组合: 完整的创建可用对象的过程: 1:分配存储空间:  就是调用的  +alloc 方法,这个方法是类方法,返回的是一个分配好存储空间的 对象: 2:初始化:-init 方法,对象方法,由alloc方法返回的对象调用init对对象进行初始化: 所以创建一个对象的规范和常用的方式:  Person *p = [[Person all

黑马程序员-OC内存管理 @property的增强

涉及到内存管理,只读,多线程等很多功能时,setter和getter方法也就没那么简单了:当然@property依然强大,很好用: 1:内存管理相关参数: *:retain:  (如果是oc对象类型),生成的setter会自动release旧值,retain新值: *:assign:(适用于非oc对象)  这个是默认的值 *:copy:release旧值,copy新值: @property (retain) NSString *name; // 同类型的参数不能同时写 // @property

黑马程序员-OC self super isa指针

self指针: self是oc面向对象设计中的一个特殊指针,相当于java中的this,但是比this强大,this只能访问实例对象的相关方法和成员变量,或者说this只代表实例对象: self不仅可以代表实例对象,还可以代表类对象:谁调用当前方法,self就代表谁:如果self用在了以"-"号的方法中,也就是对象方法中,那么就代表实例对象,若果在"+"号开头的方法中,self就代表类对象,因为只有类对象才能调用以"+"号开头的方法: self调

黑马程序员-OC学习笔记之Foundation框架NSNumber、NSValue和NSDate

---------------------- IOS开发.Android培训.期待与您交流! ---------------------- 一.NSNumber 前几篇笔记中,小桥复习了Foundatio框架中的几个类,这三个是OC学习的尾声了. 小桥已经复习过OC数组类NSArray,也说过它只能存放OC的对象,对于基本的数据类型确无能为力,但是实际编程中经常要把基本的数据如int.float,结构体存放的OC数组中,怎么办?这里的NSNumber就有用了,它能够把基本数据类型包装成OC对象.

黑马程序员-OC面向对象继承关系和组合关系笔记

继承关系是描述类和类之间的关系,两个类分别称为子类和父类,子类继承了父类,子类就拥有了父类的属性和方法: 继承的关系特点描述出来就是:** "是" **  (例如:学生类 是 人类) 组合关系描述的语句是:**** "拥有" ***  (例如:学生有成绩这个属性,而成绩属性本来就是一个成绩类的对象 ) 继承示例代码: #import <Foundation/Foundation.h> //Animal类的声明 @interface Animal : NS