对象做为类的属性

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之对象作为类的属性的更多相关文章

  1. 实例化类对象及类的属性set方法使用不当

    类的属性中set方法操作数据库,新建类对象并给其赋值时总会触发该set方法,而导致不期望的错乱: 库位类Storage,其中传感器状态SensorStatus和逻辑状态LogicStatus有一定的关 ...

  2. Python全栈--9.1--面向对象进阶-super 类对象成员--类属性- 私有属性 查找源码类对象步骤 类特殊成员 isinstance issubclass 异常处理

    上一篇文章介绍了面向对象基本知识: 面向对象是一种编程方式,此编程方式的实现是基于对 类 和 对象 的使用 类 是一个模板,模板中包装了多个“函数”供使用(可以讲多函数中公用的变量封装到对象中) 对象 ...

  3. python基础-9.1 面向对象进阶 super 类对象成员 类属性 私有属性 查找源码类对象步骤 类特殊成员 isinstance issubclass 异常处理

    上一篇文章介绍了面向对象基本知识: 面向对象是一种编程方式,此编程方式的实现是基于对 类 和 对象 的使用 类 是一个模板,模板中包装了多个“函数”供使用(可以讲多函数中公用的变量封装到对象中) 对象 ...

  4. Python-面向对象(类)二

    一.成员修饰符 • 共有成员 • 私有成员 __+字段 __:成员修饰符 无法直接访问,只能通过该成员所属类的方法简介访问 class Foo: def __init__(self, name, ag ...

  5. python3 类的属性、方法、封装、继承及小实例

    Python 类 Python中的类提供了面向对象编程的所有基本功能:类的继承机制允许多个基类,派生类可以覆盖基类中的任何方法,方法中可以调用基类中的同名方法. 对象可以包含任意数量和类型的数据. p ...

  6. Java 类的属性

    章节 Java 基础 Java 简介 Java 环境搭建 Java 基本语法 Java 注释 Java 变量 Java 数据类型 Java 字符串 Java 类型转换 Java 运算符 Java 字符 ...

  7. 【学习笔记】【oc】类和对象及类的三大基本特征

    1.类和对象 类是抽象化,对象是具体化. (1)定义类: 分为两个步骤,类的声明:定义类的成员变量和方法:@interface 用于声明定义类的接口部分,@end表面定义结束:. 成员变量的定义:{} ...

  8. OC语言的面向对象—类和对象、方法

    1. 面向对象和面向过程思想 OC是面向对象的,C是面向过程的.面向对象和面向过程只是解决问题的两种不同思想 1. 面向对象和面向过程的区别 1) 以用电脑听歌为例子 a) 面向过程 ➢ 打开电脑 ➢ ...

  9. 007-Scala类的属性和对象私有字段实战详解

    007-Scala类的属性和对象私有字段实战详解 Scala类的使用实战 变量里的类必须赋初值 def函数时如果没参数可不带括号 2.不需要加Public声明 getter与setter实战 gett ...

随机推荐

  1. Javascript实战开发:教你使用raphael.js绘制中国地图

    最近的数据统计项目中要用到中国地图,也就是在地图上动态的显示某个时间段某个省份地区的统计数据,我们不需要flash,仅仅依靠raphael.js以及SVG图像就可以完成地图的交互操作.在本文中,我给大 ...

  2. HDU 2079-课程时间(生成函数)

    课程时间(标题已被修改,注意阅读题) Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Other ...

  3. 初识Python-web框架的这两天

    前段时间打算学习python,其实时间蛮紧张的,看看文字教程,累了就看视频教程.算是把基本的语法过了一遍,但是OOP就费了好大的气力 ,C里有的对象,继承,等等等,还算能理解.不过高级点的就理解起来吃 ...

  4. leetcode第25题--Remove Element

    problem: Given an array and a value, remove all instances of that value in place and return the new ...

  5. .NET MVC4 实训记录之一(引入Unity3.0 Ioc框架)

    一直在做维护项目,没有机会接触完整的架构,于是自学.NET MVC.自今日起,将自学的过程.遇到的问题以及解决方案记录下来. 在WebApp项目中右键,使用NuGet引入Unity3.0.

  6. 我看TDD测试驱动开发

    今天在实验室给大家介绍了一下TDD和Docker,大家对TDD都比较感兴趣,包括老板,也问了一些问题. 还是从头来说TDD吧,TDD作为敏捷开发领域的领头军,充满魅力,同时也充满争议.一切从三大军规说 ...

  7. memcached内存分配及回收初探

    对memcached(后面简称mc) 的内存分配及回收机制进行了深度分析和测试,以下是一些学习的心得,和大家共同探讨一下,期望能抛砖引玉 mc简介: mc是由LiveJournal技术团队开发的一套分 ...

  8. Leetcode:Unique Binary Search Trees & Unique Binary Search Trees II

    Unique Binary Search Trees Given n, how many structurally unique BST's (binary search trees) that st ...

  9. .Net 异步随手记(一)

    今天要记录的内容摘要是: 什么时候异步代码能“等”在那里,什么时候不会“等” 这两天Coding的时候碰到一个事儿,就是想让异步等在那里结果却直接执行过去了,比如这样: async static vo ...

  10. LIS 最长递增子序列问题

    一,    最长递增子序列问题的描述 设L=<a1,a2,…,an>是n个不同的实数的序列,L的递增子序列是这样一个子序列Lin=<aK1,ak2,…,akm>,其中k1< ...