1、类和对象

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!");
比较NSLogprintf
换行YESNO
时间等项目信息YESNO
参数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
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值