黑马程序员——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/
黑马程序员——OC与C语言的异同比较的更多相关文章
- 黑马程序员——OC语言基础语法 面向对象的思想
Java培训.Android培训.iOS培训..Net培训.期待与您交流! (以下内容是对黑马苹果入学视频的个人知识点总结)(一)基础语法 1)关键字 @interface.@implementati ...
- 黑马程序员——OC语言 类和对象
Java培训.Android培训.iOS培训..Net培训.期待与您交流! (以下内容是对黑马苹果入学视频的个人知识点总结) (一)类 1)类的声明 代码编写 ①定义一个Car类,拥有2个属性:轮子数 ...
- 黑马程序员——OC语言 核心语法 (3)
Java培训.Android培训.iOS培训..Net培训.期待与您交流! (以下内容是对黑马苹果入学视频的个人知识点总结) (一)分类Category 1) 基本用途 如何在不改变原来类模型的前提下 ...
- 黑马程序员——OC语言 核心语法(2)
Java培训.Android培训.iOS培训..Net培训.期待与您交流! (以下内容是对黑马苹果入学视频的个人知识点总结) (一)id 1)简介:万能指针,能指向任何OC对象,相当于NSObject ...
- 黑马程序员——OC语言 三大特性之多态
Java培训.Android培训.iOS培训..Net培训.期待与您交流! (以下内容是对黑马苹果入学视频的个人知识点总结) 三大特性之一的多态 (一)多态的基本概念 OC对象具有多态性体现在 Per ...
- 黑马程序员——OC语言 三大特性之继承
Java培训.Android培训.iOS培训..Net培训.期待与您交流! (以下内容是对黑马苹果入学视频的个人知识点总结) 三大特性之继承 (一)继承的基本用法 先建立个Animal再用Dog继承前 ...
- 黑马程序员——OC语言Foundation框架 (2) NSArray NSSet NSDictionary\NSMutableDictionary
Java培训.Android培训.iOS培训..Net培训.期待与您交流! (以下内容是对黑马苹果入学视频的个人知识点总结) (一)NSArray 1>NSArray :不可变数组 ①创建方法 ...
- 黑马程序员——OC语言 其他语法
Java培训.Android培训.iOS培训..Net培训.期待与您交流! (以下内容是对黑马苹果入学视频的个人知识点总结) (一)ARC的判断准则:只要没有强指针指向对象,就会释放对象 1.ARC特 ...
- 黑马程序员——OC语言 内存管理
Java培训.Android培训.iOS培训..Net培训.期待与您交流! (以下内容是对黑马苹果入学视频的个人知识点总结) (一)计数器 每个对象内部都保存了一个与之相关联的整数,称为引用计数器,当 ...
随机推荐
- ACMer(转)
我所了解的ACMer主要分为以下几类: A类:天才型(这个在咱们学校基本不存在),所以就不用考虑了-_- ! B类:刷题很快,题数是最多的几个之一,但有一个习惯就是喜欢看题解,思考问题一想不出来了就想 ...
- C++调用python
本文以实例code讲解 C++ 调用 python 的方法. 本文在util.h中实现三个函数: 1. init_log: 用google log(glog)初始化log 2. exe_command ...
- Java 字符串拼接方式
import java.util.ArrayList; import java.util.List; import org.apache.commons.lang.StringUtils; impor ...
- KMP,模式匹配算法
[QQ群: 189191838,对算法和C++感兴趣可以进来] 我们经常会遇到一种情况是匹配两个字符串,看strPar中是否含有str子串,如果有则返回子串在父串strPar中的位置,如果不存在则返回 ...
- [转载] 推荐的C++书籍以及阅读顺序
2014-06-17 转载自 oiramario 的文章 推荐的C++书籍以及阅读顺序 当读者有一定c/c++基础 推荐的阅读顺序: level 1 从<<essential c++> ...
- java.io.EOFException java.io.ObjectInputStream$PeekInputStream.readFully 错误
Tomcat 启动时 java.io.EOFException at java.io.ObjectInputStream$PeekInputStream.readFully 错误 这 个错误 碰到好几 ...
- mysql数据库导入外键约束问题
在网站搬迁过程中,很重要一点是数据的迁移.你的数据库可能已经包含了一个设计良好的数据表集合,并且在网站运营过程中,产生了重要的数据.这时你必须做好包含数据表schema以及数据本身的迁移. 完成上述数 ...
- [ionic开源项目教程] - 手把手教你使用移动跨平台开发框架Ionic开发一个新闻阅读APP
前言 这是一个系列文章,从环境搭建开始讲解,包括网络数据请求,将持续更新到项目完结.实战开发中遇到的各种问题的解决方案,也都将毫无保留的分享给大家. 关注订阅号:TongeBlog ,查看移动端跨平台 ...
- UVa 1607 (二分) Gates
这道题真的有点“神”啊.= ̄ω ̄= 因为输入都是x,所以整个电路的功能一共就四种:0, 1, x,!x 所以就确定了这样一个事实:如果电路的输出是常数,那么所有的输入都可以优化成常数. 否则,只需要将 ...
- JavaScript——关于字符串的replace函数中的function函数的参数
<!DOCTYPE> <html> <head> </head> <body> <script type="text/jav ...