举个例子

大家会使用类并且会声明并且实现类的setter 和 getter方法

那让我们来更深入的学习,类中包含另一个类的实现方法吧。

题目:

Computer类(电脑类)

该类用于描述一个具体的电脑类,可以对该类进行一些基本的操作

属性:

1. 电脑品牌

2. 鼠标

3. CPU

方法:

1、成员变量的set、get方法

2、电脑信息的详细描述 包括电脑品牌 鼠标信息,CPU信息等等

鼠标类:

  1. 鼠标品牌

  2. 类别

  3. 价格

CPU类:

  1. CPU型号

  2. 缓存

  3. 价格

解题思路:(有很多种,但大单位为程序员交流方便都做了一些规定,我们还是随大流,让大家养成一个良好的书写习惯。)

定义三个类,因为并没有完全一样的属性可以抽取而只是包含的关系

电脑有cpu和鼠标,但cpu和鼠标不是电脑,所以电脑应该是包含cpu和鼠标,而不是继承。

在电脑属性中包含cpu属性和鼠标属性即可(当然还可以后其他属性,只是举例说明,其他的就不列举了)

在三个类中分别实现它的getter和setter

在电脑类中实现输出电脑详细信息的方法(- (void)showAllDetail;)

以下是实现和main函数,声明略去

#import <Foundation/Foundation.h>

#import "Mouse.h"

#import "CpuType.h"

//        Computer类(电脑类)

//        该类用于描述一个具体的电脑类,可以对该类进行一些基本的操作

//        属性:

//        1. 电脑品牌

//        2. 鼠标

//        3. CPU

@interface Computer : NSObject

{

char * _brand;

Mouse * _mouse;

CpuType *_cpu;

}

// setmethod

- (void)setBrand:(char *)brand;

- (void)setMouse:(Mouse *)mouse;

- (void)setCpuType:(CpuType *)cpu;

// get method

- (char *)brand;

- (Mouse *)mouse;

- (CpuType *)cpu;

// 电脑信息的详细描述 包括电脑品牌 鼠标信息,CPU信息等等

// opration method

- (void)showAllDitatil;

@end

#import "Mouse.h"

@implementation Mouse

// set method

- (void)setBrand:(char *)brand{

_brand = brand;

}

- (void)setType:(char *)type{

_type = type;

}

- (void)setPrice:(float)price{

_price = price;

}

// get method

- (char *)brand{

return _brand;

}

- (char *)type{

return _type;

}

- (float)price{

return _price;

}

@end

#import "CpuType.h"

@implementation CpuType

// set method

- (void)setType:(char *)type{

_type = type;

}

- (void)setCache:(int)cache{

_cache = cache;

}

- (void)setPrice:(float)price{

_price = price;

}

// get method

- (char *)type{

return _type;

}

- (int)cache{

return _cache;

}

- (float)price{

return _price;

}

@end

#import <Foundation/Foundation.h>

#import "Computer.h"

int main(int argc, const char * argv[]) {

@autoreleasepool {

//        练习2

//        Computer类(电脑类)

//        该类用于描述一个具体的电脑类,可以对该类进行一些基本的操作

//        属性:

//        1. 电脑品牌

//        2. 鼠标

//        3. CPU

//

//        方法:

//        1、成员变量的set、get方法

//        2、电脑信息的详细描述 包括电脑品牌 鼠标信息,CPU信息等等

//

//        鼠标类:

//        鼠标品牌

//        类别

//        价格

//        CPU类:

//        CPU型号

//        缓存

//        价格

// 1.定义电脑对象

Computer *computer = [[Computer alloc]init];

char *comBrand = "lenovo";

[computer setBrand:comBrand];

// 2.定义鼠标

Mouse * mouse = [[Mouse alloc]init];

char * mouseBrand = "jack";

char * mouseType = "hit";

float mousePrice = 1000;

[mouse setBrand:mouseBrand];

[mouse setType:mouseType];

[mouse setPrice:mousePrice];

[computer setMouse:mouse];

// 3.定义CPU

CpuType *cpu = [[CpuType alloc]init];

char *cpuType = "UFO";

int cpuCache = 199;

float cpuPrice = 788.00;

[cpu setType:cpuType];

[cpu setCache:cpuCache];

[cpu setPrice:cpuPrice];

[computer setCpuType:cpu];

// 4.打印信息

[computer showAllDitatil];

}

return 0;

}

转载于:https://blog.51cto.com/343351666/1625933

类与类之间调用Computer-CPU-Mouse--看懂它看懂类之间的调用相关推荐

  1. java用if语句调用方法_J2SE中main函数中的if语句想要调用另一个类的方法怎么能实现?...

    日常生活中,要完成一件复杂的功能,我们总是习惯把"大功能"分解为多个"小功能"以实现.在C++程序的世界里,"功能"可称呼为"函数 ...

  2. 本关任务:编写一个Point类,有x、y两个属性。编写一个PointDemo类,并提供一个distance(Point p1,Point p2)方法用于计算两点之间的距离,实例化两个具体的Point对

    #java编程基础 以后会时常更新java编程题,分享所遇之难,答疑解惑,共同努力. 本关任务:编写一个Point类,有x.y两个属性.编写一个PointDemo类,并提供一个distance(Poi ...

  3. python中的静态方法如何调用_关于Python中如何使用静态、类、抽象方法的权威指南(译)...

    对于Python中静态.类.抽象方法的使用,我是一直很迷糊的.最近看到一篇技术文章对这方面解释的很好,在此翻译一下,加深印象,也为有需要的同学提供一个方便. Python中方法是如何工作的: 方法即函 ...

  4. python封装类在当前文件中使用_name_下调用不了_学python中对于类怎么也不明白,对了是看到简明教程11章,类与变量的对象....想要通俗易懂的答案....

    代码(简明python教程第11章,感觉看懂了大半但是其中我没调用的为什么也有...谢谢!!!):#coding:utf-8#数据结构好抽象啊..#python的空格制表位,是灾难的开始啊#init制 ...

  5. 一个java类可以有_一个.java文件中可以有几个同级类?

    1.在一个.java文件中可以有多个同级类(和public一样的位置,注意不是内部类).其修饰符只可以public/abstract/final/和无修饰符,不能是其他的protected/priva ...

  6. ES6学习笔记(一):轻松搞懂面向对象编程、类和对象

    文章目录 面向过程编程P OP(Process oriented programming) 面向对象编程OOP(Object Oriented Programming) ES6中的类和对象 面向对象 ...

  7. 一文读懂Java中File类、字节流、字符流、转换流

    一文读懂Java中File类.字节流.字符流.转换流 第一章 递归:File类: 1.1:概述 java.io.File 类是文件和目录路径名的抽象表示,主要用于文件和目录的创建.查找和删除等操作. ...

  8. 一篇文章带你搞懂Python中的类

    前言 今天我们要说的是面向对象的核心-----类,类能帮我们把复杂的事情变得有条理,有顺序,希望大家通过学习类能改善自己的编码风格,使代码变得更为好看,更加通俗易懂. 1.类的用法 一.什么是类 类( ...

  9. 假装Python高手,你真的懂属性描述符类!

    Python学了好几年,发现功力还是那样,很多同学经常这样抱怨!都说Python入门容易,精通难,确实是这样的,每当我们打开一些牛逼的源码框架,进去看窥探大牛的源码,比如Python里面非常著名的Dj ...

最新文章

  1. .NET Core开发实战(第21课:中间件:掌控请求处理过程的关键)--学习笔记(下)...
  2. twitter api_Java应用程序上的Twitter API
  3. DevOps冲击下的软件测试
  4. HDU1418 抱歉【数学】
  5. 航海王燃烧意志如何修改服务器,航海王燃烧意志自动战斗设置攻略 航海王燃烧意志自动战斗设置方法...
  6. WebAssembly系列2-为什么我们需要WebAssembly—采访Brendan Eich
  7. 如何评价@左耳朵耗子 的《关于阿里云经典网络的问题》?
  8. 使用Cisco Packet Tracer之图解无线网络全网互联
  9. HDU4556_欧拉函数求解法拉数列
  10. Java使用策略模式实现聚石塔接口调用
  11. Hexo Next 5.x 升级 6.x
  12. 二十五个软件测试经典面试题,你确定不收藏一波?
  13. 【精品】居住证、工作居住证、北京户口区别有多大?
  14. 零基础学习HTML(5)——link、base标签的使用
  15. 专访实战专家,揭秘iOS神奇开发之路
  16. Oracle 使用序列插入表自增字段(主键)
  17. html+css实现一个会旋转且变大的静态照片墙
  18. 如何做一个小程序商城,需要多少钱
  19. 查看电脑已连接无限的无限密码
  20. kafka-eagle部署与使用

热门文章

  1. nebula注释符号
  2. matlab imfilter函数,Matlab的imfilter函数用法详解
  3. 用python制作网页要学哪些东西_python实战计划学习:做一个网页
  4. 笔记-高项案例题-2017年下-整体管理-变更管理
  5. PHP 中 9 大缓存技术总结
  6. Linux上怎样停止服务(jar包)、查看进程路径、关闭指定端口
  7. Redis中通过bat获取指定前缀开头的所有键值对并输出保存到文件中
  8. Node的Web应用框架Express的简介与搭建HelloWorld
  9. Android中使用getDrawable时提示:Call requires API level 21(current min is 15)
  10. C#中DataTable使用以及对行与列的赋值