1、类和对象

来源:互联网 发布:手机源码怎么做成软件 编辑:程序博客网 时间:2024/06/08 20:28

Objective-C概述

Objective-C简称OC,扩充⾃C语⾔的⾯向对象编程语⾔。是OS X和iOS操作系统的主要编程语⾔
OC语⾔的特点

  • C语⾔的超集,允许在OC中使⽤C语⾔源代码,编译器兼容C语⾔程序
  • 具备完善的⾯向对象特性
  • 包含⼀个运⾏时系统
  • 类库丰富

⾯向对象编程

  • ⾯向对象编程 OOP (Object Oriented Programming )
  • ⾯向对象语⾔:C++,Java,C#
  • 概念:对象、类、封装、继承、多态等等
  • 面向对象设计具有良好的可扩展性、可重⽤用性。

  • 面向过程 Procedure Oriented

面向对象(Object Oriented -> OO)

基于对象(实体)的概念建立模型,模拟客观世界分析、设计、实现软件的方法。

面向对象编程(Object Oriented Programming -> OOP)

解决软件复用的方法,用以提高软件开发效率

优点:
- 大幅提高软件项目的成功率
- 减少维护费
- 提高可移植性和可靠性

面向对象的特征

  • 封装性
  • 多态性
  • 继承性

面向对象的特征

过程\对象 ⾯向过程 ⾯向对象 特点 分析解决问题的步骤,实现函数,依次调⽤函数 分析某问题需要参与的对象,各个对象的作⽤,多个对象协作完成任务 侧重点 实现功能 对象的设计(具有哪些功能) 语⾔举例 C语⾔ OC,C++,Java等

面向对象和面向过程的区别

面向过程:

  • 强调的是功能行为;
  • 关注的是解决问题需要哪些步骤

面向对象:

  • 将功能封装进对象,强调具备了功能的对象
  • 关注的是解决问题的是哪些对象
  • 面向对象是基于面向过程的

类(Class)

具有相同特征和⾏为的事物的抽象,由3个部分构成

  • 类的名称:类名
  • 类的属性:一组包含数据的属性
  • 类的方法:允许对属性中包含的数据进行操作的方法

类的声明和实现

.h

类的声明文件,用于声明成员变量、方法。关键字:@interface和@end
类的声明

.m

类的实现文件,用于实现.h中声明的方法。关键字:@implementation和@end,实现类主要是对方法的具体实现
类的实现

方法的声明和实现

  • +表示类方法(静态方法)
  • -表示实例方法(动态方法)
  • 在.h中声明的所有方法作用域都是public类型,不能修改

对象(Object)

对象是类的实例,类是对象的类型

  • 对象是系统中的基本运行实体
  • 对象是类类型(class type)的变量
  • 一个类可以创建多个对象
  • 类是具有相同类型的对象的抽象

对象

创建对象

//类名   Car类型的指针变量   使用类名调用alloc类方法,开辟空间,并用init进行初始化   Car        * car         = [[Car alloc] init];

只要是用new操作符定义的实体就在会堆内存中开辟一个新的空间

[[Car alloc] init];
在内存中干三件事:

  1. 开辟存储空间
  2. 初始化成员变量(写在类声明大括号中的属性就叫成员变量,也叫实例变量)
  3. 返回指针地址

实例变量操作

每一个对象中都有一份属于自己的属性。
通过 ” 对象->对象成员”(注意声明属性为:@public)的方式操作对象中的成员, 对其中一个对象的成员进行了修改。和另一个对象没有关系


OC学习路线

OC学习路线


OC程序注意事项

include与import的异同

  • include和import都是引入头文件
  • import引入的头文件可以防止重复包含
  • include是使用与处理指令防止重复包含的,如果没有写预处理指令,则无法防止重复包含问题

Foundation/Foundation.h

  • 是程序的头文件,里面包含了其他的大量的头文件
  • 查看方式:comand + 鼠标点击
  • 作用:把此文件引入,等于把OC的库文件均引过来了

@autoreleasepool:自动释放池

NSLog

NSLog是Foundation框架提供的OC日志输出函数,与printf功能相同,可格式化输出

NSLog和printf的异同

NSLog(@"Hello,World!");printf("Hello,World!");
比较 NSLog printf 换行 YES NO 时间等项目信息 YES NO 参数 NSString对象 字符串常量指针

OC占位符

类型 关键字 占位符 字符型 char %c 短整型 short int %hd,%hi,%ho,%hx 无符号短整型 unsigned short int %hu 整型 int %d,%i,%o,%x 无符号整型 unsigned int %u,%o,%x 长整形 long int %ld,%li,%lo,%lx 无符号长整形 unsigned long int %lu,%lo,%lx 双长整型 long long int %lli,%llo,%llx 无符号双长整型 unsigned long long int %llu,%llo,%llx 浮点数 float %f,%e,%g,%a 双精度浮点数 double %f,%e,%g,%a 长双精度 long double %lf,%le,%lg 指针 id(pointer) %p 对象 NSObject object %@ 字符串 string %s output character count %n output characters %[] accuracy %%

NSLog输出

//NSLog格式化输出NSLog(@"%d,%.2f,%.2f,%c",a,f1,d1,ch);//@表示是字符串//NSLog(@"%s",str);//语法错误//NSLog的表示字符串的方法NSString *str1 = @"张三丰";NSLog(@"%@",str1);//不是%s,而是%@

NS前缀

@符号的使用

  1. @”“:表示将一个C的字符串转化为OC中的字符串对象NSString
  2. @标识符:OC中大部分标识符均是以@开头的(@interface,@end,@class)

OC文件

  1. .h文件,头文件,包含方法、属性的声明
  2. .m文件,类的实现文件,参与编译,用于实现类中生命的方法

数据类型

OC数据类型

Boolean

用来存放逻辑值:真(!0)假(0)
存储的值:true(真) false(假)

Boolean flag = true;if(flag){    NSLog(@"真 %d",flag);}else{    NSLog(@"假 %d",flag);}

BOOL

也是用来保存逻辑值
存储的值:YES(真) NO(假)

BOOL flag2 = YES;if(flag2){    NSLog(@"真 %d",flag2);}else{    NSLog(@"假 %d",flag2);}

OC中的异常捕捉机制

异常:程序运行的时候有Bug
捕捉机制:排除Bug

@try {    //如果有异常    < #statements#>}@catch (NSException *exception) {    //捕捉最具体的异常类型     //    < #handler#>}@catch (NSException *ne) {     //捕获一个比较重要的异常类型。}@catch (id ue) {     //再次掷出捕获的异常。}@finally {    //不管有没有异常finally内的代码都会执行。     < #statements#>}

流程控制语句

OC中提供一种增强型的for循环

//OC中的增强for循环NSArray *arr = @[@"one",@"two",@"three"];for (NSString *str in arr) {    NSLog(@"%@",str);}

OC的函数

OC中把函数称为方法


0 0
原创粉丝点击