OC学习笔记4

面向对象的三大特征:封装,继承,多态

封装:隐藏实现细节,将属性私有化,提供公有方法访问私有属性

类是对数据的行为封装

对数据的封装可以私有或保护的成员变量对数据进行封装

行为封装可以通过私有方法堆不希望外界访问的方法进行封装,在OC中可以通过只有实现没有声明的方式来实现私有方法,但OC中没有真的私有方法;因为没声明只有实现的方法外界依然可以调用

 

封装

/*

 1.类事数据与功能的封装,数据就是成员变量,功能就是对象方法和类方法

 2.对数据的封装

    如果我们把属性设置为@public那么这个属性外面就可以任意的修改,我们就失去了管理这个属性的权利

    1,当你把属性暴露在外面的时候你就失去了对他的管理一旦这个属性被多个人使用时如果在管理这个属性就变得非常麻烦

        这个类的可维护性就会变的很差

 */

属性封装语法

向外部提供设置属性的set方法

 

向外部提供访问属性的get方法

 

 

 

 

 

 

Setget方法的使用场合

@public的成员可以被随意赋值,应该使用set方法和get方法来管理成员的访问

 

代码封装的好处

过滤不合理的值

屏蔽内部的赋值过程

让外部不必关注内部细节

 

关联关系

关联关系是类鱼类之间的关系

一个类拥有另外一个类就是关联关系也称未必HasA关系

关联关系是开发中一种常见的对象与对象间的关系

HasA关系使用场景

当一个对象对另一个对象是拥有关系时

 

依赖关系与关联关系的区别

一对一

一对多

多对多

依赖关系:当一个类中的某个方法的形参或方法中的局部变量使用了另外一个类,那么我们就称这两个中存在依赖关系

关联关系的耦合度要大于依赖关系的耦合度

 

继承性

OC中的类都继承自NSObject

继承性是类与类之间的关系—对象与对象之间的关系

OC中只有单继承

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

通过继承扩展功能

重写父类方法

 

 

 

资源下载链接为: https://pan.quark.cn/s/9e7ef05254f8 行列式是线性代数的核心概念,在求解线性方程组、分析矩阵特性以及几何计算中都极为关键。本教程将讲解如何用C++实现行列式的计算,重点在于如何输出分数形式的结果。 行列式定义如下:对于n阶方阵A=(a_ij),其行列式由主对角线元素的乘积,按行或列的奇偶性赋予正负号后求和得到,记作det(A)。例如,2×2矩阵的行列式为det(A)=a11×a22-a12×a21,而更高阶矩阵的行列式可通过Laplace展开或Sarrus规则递归计算。 在C++中实现行列式计算时,首先需定义矩阵类或结构体,用二维数组存储矩阵元素,并实现初始化、加法、乘法、转置等操作。为支持分数形式输出,需引入分数类,包含分子和分母两个整数,并提供与整数、浮点数的转换以及加、减、乘、除等运算。C++中可借助std::pair表示分数,或自定义结构体并重载运算符。 计算行列式的函数实现上,3×3及以下矩阵可直接按定义计算,更大矩阵可采用Laplace展开或高斯 - 约旦消元法。Laplace展开是沿某行或列展开,将矩阵分解为多个小矩阵的行列式乘积,再递归计算。在处理分数输出时,需注意避免无限循环和除零错误,如在分数运算前先约简,确保分子分母互质,且所有计算基于整数进行,最后再转为浮点数,以避免浮点数误差。 为提升代码可读性和可维护性,建议采用面向对象编程,将矩阵类和分数类封装,每个类有明确功能和接口,便于后续扩展如矩阵求逆、计算特征值等功能。 总结C++实现行列式计算的关键步骤:一是定义矩阵类和分数类;二是实现矩阵基本操作;三是设计行列式计算函数;四是用分数类处理精确计算;五是编写测试用例验证程序正确性。通过这些步骤,可构建一个高效准确的行列式计算程序,支持分数形式计算,为C++编程和线性代数应用奠定基础。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值