一.OC基础之:1,OC语言的前世今生 ,2,OC语言入门,3,OC语言与C的差异,4,面向对象,5,类和对象的抽象关系,6,类的代码创建,7,类的成员组成及访问
1,OC语言的前世今生 ,
一, 在20世纪80年代早期,布莱德.麦克(Brad Cox)设计了OC语言,它在C语言的基础上增加了一层,这意味着对C进行了扩展,从而创造出一门新的程序设计语言,支持对象的创建和操作。
二,1985年,被赶出苹果公司的乔帮主成立了Next公司;
三, 1988年,Next计算机公司获得了OC语言的授权,并发展了OC语言库和一个开发环境,
1994年,Next计算机公司(同年更名为Next软件公司)和Sun公司针对NEXTSTEP系统联合发布了一个标准规范,名为OPENSTEP。
四,1996年,苹果公司宣布收购了Next软件公司,并把NEXTSTEP/OPENSTEP环境变成苹果操作系统下一个主要发行版本OS X的基础,这个开发环境的版本被苹果公司称为Cocoa,它得到了Mac开发人员的广泛认可。另外,由于Cocoa内置了对OC语言的支持,久而久之,OC成了Mac OS X平台的首选开发语言。直到后来IOS系统发布,OC也是它的首选开发语言。一下提升了了OC在开发语言中的地位;
2,OC语言入门,
一,import和include的区别;import可以防止头文件的重复包含
二,NSLog 和printf的区别:
1,NSLog可以自动换行, 输出调试信息, printf不能.
2,NSLog 函数的参数是一个NSString 对象
3,printf函数的参数是一个字符串常量指针
三,@符号的含义:
1,@“” 将双引号的C字符串转换为OC的字符串对象NString;
2,OC中的一个特有标示符,很多关键字前面都加@。
四,OC可以访问C源文件中的函数。C不能方位OC中的源文件中的方法。(这里其实是向下兼容)
3,OC语言与C的差异,
一,源文件对比
1,C中常见的源文件有.c 和 .h ;
2,OC中常见的源文件有.h 和 .m ;
二,基本语法对比
1. 数据类型对比:
首先OC兼容C中的所有数据类型, c不能兼容oc数据类型
OC新增的数据类型:boolen, block, nil, class, SEL等;
2,流程控制语句对比;
首先OC兼容了C中所有的流程控制语句;
OC又新增了自己的for in 增强型的循环语句;
for(NSString *str in arr){
NSLog(@"%@",str);
}
3,函数和方法定义声明的对比;
C语言中函数的声明和实现
函数声明:
int sum(int a,int b);
函数实现
int sum(int a,int b){
return a+b;
}
OC方法的声明和实现
方法声明:
-(int)sum:(int) a and:(int) b;
方法实现
-(int)sum:(int) a and:(int )b{
return a+b;
}
4. 异常捕捉方法
@try {
//此处放的事有可能出错的代码
int result = a/b;
}
@catch (NSException *exception) {
NSLog(@"exception = %@",exception);
}
@finally {
//不管出没出错,这里的代码一定会执行
printf("fengjie!\n");
}
4,面向对象,
一,面向对象编程(Object Oriented Programming-OOP) 是一种解决软件复用的设计和编程方法。这种方法把软件系统中相近相似的操作逻辑和操作应用数据、状态,以类的型式描述出来,以对象实例的形式在软件系统中复用,以达到提高软件开发效率的作用。
面向对象是基于面向过程的。
也就是对象的内部,其实也是过程。只是将这些个过程给封装起来了。
我们做一件事:
如果是面向过程思维的话:
一般都是找方法;
如果是面向对象思维的话:
一般就是找对象;
5,类和对象的抽象关系,
一,什么是类?
通俗一点讲就是 将具有相同属性和行为的实体的向上抽象。
比如:将男人,女人,向上抽象为一类,即为 人;Person类;
将狗,猫,老虎等动物向上抽象为一类,即为动物的类;Animal类等;
二,什么是对象?
即指现实世界中各种各样的实体。它可以指具体的事物也可以指抽象的事物。
简称万物皆对象
三,类和对象的抽象关系:
类和对象时分不开的;
每个对象,一定有自己所属的类;
每个类,一定有自己对应的实例(对象);
类由对象的抽象而来;
对象由类的具体实例(new)而来;
6,类的代码创建,
一,OC中类的创建分为两步:
1,类的声明:
@interface Car:NSObject
{
//类的属性
int lunzi;
NSString *color;
int speed;
}
//方法声明
@end
2,类的实现:
@implementation Car
//方法实现
@end
7,类的成员组成及访问
一,类的成员有哪些?
成员变量(属性)
成员方法(行为)
二,访问成员变量:
前提:成员变量需要用@public修饰符修饰;
Car *car1=[Car new]; // 类名:Car 对象名:car1
car1->lunzi = 3; // 使用->来访问;
三,访问方法:
Car *car = [Car new];
[car run]; // 用 [ ] 来访问方法;
类方法的访问: [Car stop] // [类名 加号方法名];
四,OC方法的定义;
//有一个参数的方法
-(返回值类型)方法名1:(参数类型) 参数名;
- (void)num1:(int)one; //方法名:num1: 参数类型:int 参数名:one
//有2个参数的方法
-(返回值类型)方法名1:(参数类型1) 参数名1 方法名2:(参数类型2) 参数名
- (int)num1:(int)one andTwoNum:(int)two; // 方法名:num1: andTwoNum: 参数类型:int int 参数名:one two
一.OC基础之:1,OC语言的前世今生 ,2,OC语言入门,3,OC语言与C的差异,4,面向对象,5,类和对象的抽象关系,6,类的代码创建,7,类的成员组成及访问的更多相关文章
- PHP类和对象之间的关系
类是对象的描述: 类和对象之间的关系类似于建房子的图纸和房子: 创建类--new对象--用对象: 一.对象的两个特性: --对象的行为(功能):可以对对象施加操作,例如,电视机的开.关.转换频道: - ...
- 【Java学习】类、对象、实例—类是对象的抽象,对象是类的实例
类.对象.实例的关系是什么,如果不能很好的理解什么是类什么是对象就无法讲清楚, 类:某种事物与另一种事物具有相似性,比如哈士奇和泰迪,我们发现他们有一些相似的特性和行为,在生物学上,他们都属于“狗”, ...
- Python面向对象02/类的空间问题、类与对象之间的关系、类与类之间的关系
Python面向对象02/类的空间问题.类与对象之间的关系.类与类之间的关系 目录 Python面向对象02/类的空间问题.类与对象之间的关系.类与类之间的关系 1. 类的空间问题 2. 类与对象之间 ...
- python 面向对象专题(二):类的空间问题、类与对象之间的关系、类与类之间的关系
https://www.cnblogs.com/liubing8/p/11308127.html 目录 Python面向对象02/类的空间问题.类与对象之间的关系.类与类之间的关系 1. 类的空间问题 ...
- 如何:从代码创建 UML 类图(ZZ)
您拖动的一个或多个类将显示在关系图上. 它们依赖的类将显示在"UML 模型资源管理器"中. 参见 模型表示类型的方式. 将程序代码中的类添加到 UML 模型 打开一个 C# 项 ...
- [类和对象]3 C++面向对象模型初探
? C++编译器如何完成面向对象理论到计算机程序的转化? [C++编译器是如何管理类.对象.类和对象之间的关系] 通过下面的代码,我们可以的得出:C++类对象中的成员变量和成员函数是分开存储的 成员变 ...
- Java中的类与对象
一.类与对象的概念 1.类:类是一组相同属性.方法的对象的集合:对象是类的具体化. 2.对象具有类所有的特征,类拥有的,对象就拥有. 3.类与对象他们的关系是相对的. 类有什么特点 1) 类是对象的类 ...
- OC基础-第1天
#pragma mark - Day01_01_OC语言的历史(了解) 1) Objective - C 是一门面向对象的高级语言 2) Objective - C 简称 obj - C \ OC ...
- OC基础笔记目录
OC基础(1) Objective-C简介 OC和C对比 第一个OC程序 面向对象思想 OC基础(2) 类与对象 类的设计 第一个OC类 对象方法的声明和实现 类方法的声明和实现 OC基础(3) 对象 ...
随机推荐
- Selenium学习系列---- FirePath的安装和使用
在用Selenium编写测试用例的时候,需要对对网页元素上定位,而现在很多的浏览器是可以看到网页上相关的元素信息,可以查看某一个网页的元素信息,通过定位的方式查找元素.另外安装好Selenium ID ...
- 使用using current logfile实现DG备库实时更新
DG1是主库,DG2是备库:运行在最大可用模式. 实验一:未使用using current logfile参数时,备库在最大可用模式下,不能实时同步备库的更新 -此时需要等待主库进行归档---侧面证明 ...
- hihoCoder#1127 二分图三·二分图最小点覆盖和最大独立集
原题地址 主要是介绍了两个定理: 1. 二分图最大匹配数 = 二分图最小点覆盖数 2. 二分图最小点覆盖数 = 二分图顶点数 - 二分图最小点覆盖数 注意,都是二分图 代码:(匈牙利算法) #i ...
- HDU 1874 最直接的最短路径问题
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1874 Problem Description 某省自从实行了很多年的畅通工程计划后,终于修建了很多路. ...
- [luoguP1186] 玛丽卡(spfa)
传送门 因为要随机删除一条边,而枚举所有边肯定会超时,经过发现,先求出一遍最短路,而要删除的边肯定在最短路径上,删除其他的边对最短路没有影响. 所以可以先求出最短路,再枚举删除最短路上的每一条边再求最 ...
- java、android拼音,中文姓名排序
http://blog.sina.com.cn/s/blog_81a9aa7e0100tizj.html 在java或者是android编程的时候,我们经常要用到对姓名或者其他字符串排序,现在我写写自 ...
- Go---设计模式(策略模式)
策略模式定义了算法家族,在调用算法家族的时候不感知算法的变化,客户也不会受到影响. 下面用<大话设计模式>中的一个实例进行改写. 例:超市中经常进行促销活动,促销活动的促销方法就是一个个策 ...
- 元数据的概念以及相关的操作os模块、shutil模块
查看文件的元数据 stat [OPTION]… FILE… OPTION: -f 输出文件系统的状态,而非文件的状态 -t 显示简要格式的文件元数据信息 FILE:可同时查看多个文件的元数据信息,多个 ...
- 【转载】Unix设计哲学 & 回车换行八卦 & EOF八卦 & UNIX目录结构八卦
昨天看了这篇文章 <关于Unix哲学> 首先用了两个例子,用风扇吹出空肥皂盒 和 太空铅笔,来说明简单设计也能派上作用吧. Unix哲学,Wikipedia上列出了好几个版本,不同的人有不 ...
- 蚂蜂窝VS穷游最世界-自由行类App分析
很多其它内容请关注博客: http://www.china10s.com/blog/? p=150 一.产品概述 体验环境: 机型:iPhone 6 型号:64G版 系统:iOS9.2 蚂蜂窝APP版 ...