看懂面向对象- 类,对象,复数相加- 对初学者很有帮助

oc中面向对象的思想是非常先进的思想,现在很多人工智能也是运用对象的思想思考问题。

对ios学习使用过程中,再重复使用和巩固中我又学到了很多以前忽略或者没有完全理解的问题。

例如:对于属性

@public//公共的谁都可以访问

   int _legs;

    

@protected//受保护的,只有类和其子类可以访问,没有标注默认情况下都是这种

   int _height;

    

@private//私有,只有类定义内部可以访问

   int _weight;

    

这个单独理解比较困难也很抽象。

因为实际中大家都是通过声明过的实现(也可理解为方法)来实现赋值或者调用,所以直接修改也大可不必,只需注意即可。

下面分享1个例子:理解他你就对面向对象有了更深的理解。

题目 : 两个复数相加:即实部 + 虚部i   (两部分都为整数)

解题思路:定义一个类(虚、实两个属性)

定义一个相加的方法,生成了两个复数,用一个复数1的虚实部分别加上两一个复数2的虚实部,用一个新的复数3来接受他俩的和!

具体过程如下

#import "Complex.h"

@implementation Complex

// 对象初始化

- (void) setReal:(int)real andVir:(int)vir{

_real = real;

_vir = vir;

}

// 展示

- (void)showAll{

NSLog(@"%i+%ii",_real,_vir);

}

// 两个数复数相加,对象发送消息同时传入另一个对象进行相加,返回相加后的新对象

- (Complex *)add:(Complex *)added{

Complex *newNum = [[Complexalloc]init];//定义新对象以便接受

int tempReal =_real + [addedreal];

int tempVir =_vir + [addedvir];

[newNumsetReal:tempRealandVir:tempVir];

return newNum;

}

// 返回实部

- (int)real{

return_real;

}

// 返回虚部

- (int)vir{

return_vir;

}

@end

#import <Foundation/Foundation.h>

#import "Complex.h"

int main(int argc,constchar * argv[]) {

@autoreleasepool {

// 计算两个复数的和

Complex *complex1 = [[Complexalloc]init];

[complex1setReal:3andVir:2];

Complex *complex2 = [[Complexalloc]init];

[complex2setReal:6andVir:12];

Complex *sumComplex = [[Complexalloc]init];

sumComplex = [complex2add:complex1];

[sumComplexshowAll];

}

return0;

}

时间: 2024-08-07 21:17:05

看懂面向对象- 类,对象,复数相加- 对初学者很有帮助的相关文章

看懂UML类图和时序图

内容目录: 从一个示例开始 类之间的关系 时序图 附录:<图说设计模式> 看懂UML类图和时序图 这里不会将UML的各种元素都提到,我只想讲讲类图中各个类之间的关系: 能看懂类图中各个类之间的线条.箭头代表什么意思后,也就足够应对 日常的工作和交流: 同时,我们应该能将类图所表达的含义和最终的代码对应起来: 有了这些知识,看后面章节的设计模式结构图就没有什么问题了: 本章所有图形使用Enterprise Architect 9.2来画,所有示例详见根目录下的design_patterns.EA

[转] 看懂UML类图和时序图

PS: 组合关系:实心,一个类A属于另一个类,或多个类,但是类A不能单独存在去使用,A一般是一种抽象的东西 聚合关系:空心,一个类A可以单独存在使用 不论组合聚合,A的方法都会被直接调用. 看懂UML类图和时序图 这里不会将UML的各种元素都提到,我只想讲讲类图中各个类之间的关系: 能看懂类图中各个类之间的线条.箭头代表什么意思后,也就足够应对 日常的工作和交流: 同时,我们应该能将类图所表达的含义和最终的代码对应起来: 有了这些知识,看后面章节的设计模式结构图就没有什么问题了: 本章所有图形使

[转]看懂UML类图

这里不会将UML的各种元素都提到,我只想讲讲类图中各个类之间的关系: 能看懂类图中各个类之间的线条.箭头代表什么意思后,也就足够应对 日常的工作和交流: 同时,我们应该能将类图所表达的含义和最终的代码对应起来: 有了这些知识,看后面章节的设计模式结构图就没有什么问题了: 本章所有图形使用Enterprise Architect 9.2来画,所有示例详见根目录下的design_patterns.EAP 从一个示例开始 请看以下这个类图,类之间的关系是我们需要关注的: 车的类图结构为<<abstr

16.Python内置函数?面向对象-类-对象

一. 面向对象初识 1.1.回顾面向过程编程vs函数式编程 # 面向过程编程 测量对象的元素个个数. s1 = 'fjdsklafsjda' count = 0 for i in s1: count += 1 l1 = [1,2,3,4] count = 0 for i in l1: count += 1 def func(s): count = 0 for i in s: count += 1 return count func('fdsafdsa') func([1,2,3,4]) 通过对比

看懂UML类图

这里不会将UML的各种元素都提到,我只想讲讲类图中各个类之间的关系: 能看懂类图中各个类之间的线条.箭头代表什么意思后,也就足够应对 日常的工作和交流: 同时,我们应该能将类图所表达的含义和最终的代码对应起来: 有了这些知识,看后面章节的设计模式结构图就没有什么问题了: 本章所有图形使用Enterprise Architect 9.2来画,所有示例详见根目录下的design_patterns.EAP 从一个示例开始 请看以下这个类图,类之间的关系是我们需要关注的: 车的类图结构为<<abstr

(转)看懂UML类图和时序图

从一个示例开始 请看以下这个类图,类之间的关系是我们需要关注的: 车的类图结构为<<abstract>>,表示车是一个抽象类: 它有两个继承类:小汽车和自行车:它们之间的关系为实现关系,使用带空心箭头的虚线表示: 小汽车为与SUV之间也是继承关系,它们之间的关系为泛化关系,使用带空心箭头的实线表示: 小汽车与发动机之间是组合关系,使用带实心箭头的实线表示: 学生与班级之间是聚合关系,使用带空心箭头的实线表示: 学生与身份证之间为关联关系,使用一根实线表示: 学生上学需要用到自行车,

【IOS 开发】Object - C 面向对象 - 类 , 对象 , 成员变量 , 成员方法

. 一. 类定义 类定义需要实现两部分 : -- 接口部分 : 定义类的成员变量和方法, 方法是抽象的, 在头文件中定义; -- 实现部分 : 引入接口部分的头文件, 实现抽象方法; 1. 接口部分定义 (1) 接口部分定义格式 接口部分定义格式 : @interface className : superClassName { type _variableName; ... ... } - (type) methodName : type parameterName; @end -- 接口定义

五分钟看懂UML类图与类的关系详解

在画类图的时候,理清类和类之间的关系是重点.类的关系有泛化(Generalization).实现(Realization).依赖(Dependency)和关联(Association).其中关联又分为一般关联关系和聚合关系(Aggregation),合成关系(Composition).下面我们结合实例理解这些关系. 基本概念 类图(Class Diagram): 类图是面向对象系统建模中最常用和最重要的图,是定义其它图的基础.类图主要是用来显示系统中的类.接口以及它们之间的静态结构和关系的一种静

设计模式之看懂UML类图

什么是UML: UML(统一建模语言)是当今软件设计的标准图标式语言.对于一个软件系统而言,UML语言具有以下的功能:可视化功能.说明功能.建造功能和建文档功能. UML都包括什么类型的图: 使用案例图 类图 序列图 合作图 状态图 活动图 构件图 部署图 这些图由归属于两种类型(pdf的图是歪歪的0.0): 针对于这多种多样的图中,我们主要讲解的是跟我们最接近,也最长使用的:类图. 下面我们将介绍类图中的最常用的六种关系: (图片来自于网络) 首先第一种: 泛化关系(相对于java类中,就是继