oc之对象作为类的属性
对象做为类的属性
1. 一个Target中的类无法直接在另外1个Target中访问.
2. 类的属性代表什么?
a. 类的属性代表这类事物具有的共同的特征
b. 类的属性代表这个类所拥有的东西.
灯:
属性: 形状 功率 价格 品牌 剩余寿命
方法: 照明.
音响:
方法: 发声音.
门:
属性: 尺寸 材料 颜色 价格
方法: 开 关
3. 类的方法代表什么?
a. 代表这个类所具备的行为. 这个类所具备的功能.
b. 一个类有什么方法 就去分析这个类有什么功能.
4. 属性的本质是变量.
在创建对象的时候,对象中的属性是按照类模板中的规定挨个挨个的创建出来的.
类模板中属性是什么类型.那么对象中的属性就是什么类型.
如果对象的属性是另外1个类的对象,这个属性仅仅是1个指针变量而已.并没有对象产生.
这个时候 还要为这个属性赋值1个对象的地址 才可以正常使用.
5. A类可以作为B类的属性. 代表B拥有A.
属性仅仅是1个变量而已. 是1个指针变量而已.默认值是nil 并没有创建对象.
如果要正常的使用的话. 还要为B对象的A属性赋值1个对象.
异常处理
1. 错误:
1). 一般情况下,指的是我们的程序的源代码有语法错误.
2). 错误的后果: 无法编译 更谈不上执行.
2). 解决方案: 将错误的代码修改为符合语法规范的代码不就OK了.
2. BUG
1). 指的是,程序可以编译、链接、执行. 只不过程序执行出来的结果并不是所预设的那样.
2). 解决方案: 99%的Bug都是因为变量的值没有按照所预想的那样去变化.
通过断点调试 去监视变量的值是如何变化的.
分析为什么会乱变化. 这样就可以找到的BUG
3. 异常
1).概念:指的是,程序可以编译、链接、执行.
当程序在运行的时候,程序处于某种特殊情况下的时候 程序的执行就会报错.
这种情况叫做异常.
特点: 异常不是一定会发生.而是当程序在运行的时候处于某种特定情况的时候才会发生.
2).后果: 程序立即终止运行.后面的代码不会执行.
闪退的原因:
a. 程序所占用的空间太大.
b. 程序发生了异常
.....
4. 异常的处理.'
1). 处理异常的目的: 希望程序在执行的时候,如果发生了异常. 程序不要崩溃,而是继续往下执行代码.
2). 使用@try...@catch处理异常.
3). 将有可能发生异常的代码使用@try围起来.
@try
{
在执行的时候有可能会发生异常的代码;
}
@catch(NSException *ex)
{
}
4). 执行步骤
a. 如果@try中的代码在执行的时候,发生了异常. 这个时候程序不会崩溃.
而是会立即跳转到@catch中执行代码. @catch中的代码执行完毕之后,再继续往下执行.
如果@try中的代码在执行的时候,没有发生异常,这个时候就会跳过@catch 往下执行.
5).作用: 让代码在执行的时候如果发生了异常 而不崩溃.
5. 使用注意
1). 在@try中的代码执行的时候,如果发生了异常.
会将发生异常的信息.封装为1个 NSException 对象
把这个对象的地址.赋值给@catch的参数.然后再执行@catch的代码.
所以,@catch的参数指向了错误对象.
在@catch中如果想要拿到发生异常的原因.就可以访问这个参数对象.
2). @catch中的代码只有在发生异常的时候,才会执行.
所以.@catch中一般我们写处理异常的代码.
3). @catch后面还可以跟1个@finally代码块.
无论@try中是否有异常发生.@finally中的代码都会被执行 .
4). @try..@catch并不是万能的 不是所有的异常都可以处理.
C语言的异常处理不了. 只能处理OC的异常.
5). @try..@catch在我们的代码中很少使用.
一般情况下都是 通过逻辑判断来减少异常的发生.
oc之对象作为类的属性的更多相关文章
- 实例化类对象及类的属性set方法使用不当
类的属性中set方法操作数据库,新建类对象并给其赋值时总会触发该set方法,而导致不期望的错乱: 库位类Storage,其中传感器状态SensorStatus和逻辑状态LogicStatus有一定的关 ...
- Python全栈--9.1--面向对象进阶-super 类对象成员--类属性- 私有属性 查找源码类对象步骤 类特殊成员 isinstance issubclass 异常处理
上一篇文章介绍了面向对象基本知识: 面向对象是一种编程方式,此编程方式的实现是基于对 类 和 对象 的使用 类 是一个模板,模板中包装了多个“函数”供使用(可以讲多函数中公用的变量封装到对象中) 对象 ...
- python基础-9.1 面向对象进阶 super 类对象成员 类属性 私有属性 查找源码类对象步骤 类特殊成员 isinstance issubclass 异常处理
上一篇文章介绍了面向对象基本知识: 面向对象是一种编程方式,此编程方式的实现是基于对 类 和 对象 的使用 类 是一个模板,模板中包装了多个“函数”供使用(可以讲多函数中公用的变量封装到对象中) 对象 ...
- Python-面向对象(类)二
一.成员修饰符 • 共有成员 • 私有成员 __+字段 __:成员修饰符 无法直接访问,只能通过该成员所属类的方法简介访问 class Foo: def __init__(self, name, ag ...
- python3 类的属性、方法、封装、继承及小实例
Python 类 Python中的类提供了面向对象编程的所有基本功能:类的继承机制允许多个基类,派生类可以覆盖基类中的任何方法,方法中可以调用基类中的同名方法. 对象可以包含任意数量和类型的数据. p ...
- Java 类的属性
章节 Java 基础 Java 简介 Java 环境搭建 Java 基本语法 Java 注释 Java 变量 Java 数据类型 Java 字符串 Java 类型转换 Java 运算符 Java 字符 ...
- 【学习笔记】【oc】类和对象及类的三大基本特征
1.类和对象 类是抽象化,对象是具体化. (1)定义类: 分为两个步骤,类的声明:定义类的成员变量和方法:@interface 用于声明定义类的接口部分,@end表面定义结束:. 成员变量的定义:{} ...
- OC语言的面向对象—类和对象、方法
1. 面向对象和面向过程思想 OC是面向对象的,C是面向过程的.面向对象和面向过程只是解决问题的两种不同思想 1. 面向对象和面向过程的区别 1) 以用电脑听歌为例子 a) 面向过程 ➢ 打开电脑 ➢ ...
- 007-Scala类的属性和对象私有字段实战详解
007-Scala类的属性和对象私有字段实战详解 Scala类的使用实战 变量里的类必须赋初值 def函数时如果没参数可不带括号 2.不需要加Public声明 getter与setter实战 gett ...
随机推荐
- Nancy学习
Nancy学习 一.认识Nancy 今天听讲关于Nancy框架的培训,被Nancy的易用性所吸引.故晚上回来梳理了一下知识. 什么是Nancy呢?如标题所述,Nancy是一个轻量级的独立的框架: Na ...
- Mysql高级之索引
原文:Mysql高级之索引 索引:是针对数据所建立的目录. 作用: 可以加快查询速度 负面影响: 降低了增删改的速度. 索引的创建原则: 1:不要过度索引 2:在where条件最频繁的列上加.在重复度 ...
- 2008技术内幕:T-SQL语言基础
2008技术内幕:T-SQL语言基础 单表查询摘记 这里的摘抄来自<Microsoft SQL Server 2008技术内幕:T-SQL语言基础>,书中用到的案例数据库是这个 TSQLF ...
- 玩转python之每次处理一个字符
在Python中字符就是长度为1的字符串,所以可以循环遍历一个字符串,依次访问每一个字符,得到你想要的处理前提: 一个列表是个好主意,就像这样:thelist = list(thestring) 当然 ...
- 领域模型中分散的事务如何集中统一处理(C#解决方案)
领域模型中分散的事务如何集中统一处理(C#解决方案) 开篇 什么是事务,事务的应用场景 做项目时,经常会遇到一些需求,比如注册用户时,要求同时存入用户的基本信息和初始化该用户的帐户,如果在这两个环 ...
- Oracle 补丁及opatch 工具介绍
一. CPU(Critical Patch Update) 一个CPU内包含了对多个安全漏洞的修复,并且也包括相应必需的非安全漏洞的补丁.CPU是累积型的,只要安装最新发布的CPU即可,其中包括之前发 ...
- twisted学习笔记4 部署Twisted 应用程序
原创博文,转载请注明出处. Twisted是一个可扩展,跨平台的网络服务器和客户端引擎. Twisted Application 框架有五个主要基础部分组成:服务,应用程序,TAC文件插件和twist ...
- 【GitHub】在Mac上配置/使用Github
以前一直听说过Github,但是自己一直不会用.最近不是太忙,于是想捣鼓捣鼓Github,没想到用了将近3个小时,才在Mac上配置成功. 首先简单介绍一下Git和Github 集中化的版本控制系统( ...
- nhibernate+autofac+mvc的demo
想自己做一个小的demo.目的是能够提供一个系统架构,在这个基础上,可以快速开发一些小型的系统.
- iframe跨域通讯
工作中遇到一个问题,IFRAME嵌套了一个外部页面用于统计 统计的JS由我们提供,并且需要提供热点图 一开始就碰到的问题就是 不知道页面高度 需要子页面传回页面高度用于将IFRAME拉升到合适高度 当 ...