前言

士兵突击,是用Objective-C语言实现的一个面向对象的案例。

一、原理分析

士兵要射击,需要有枪。枪要开火,需要有弹夹。弹夹装子弹,需要判断子弹数量是否大于最大装弹量。
原则就是自己的事情自己做,判断装弹量是否大于0,并且小于最大装弹量,是弹夹的事儿。
判断弹夹里是否还有子弹,是枪在射击时的事儿,如果有子弹,则可以射击。
士兵射击,需要有把枪,士兵有了枪才能射击。

二、代码如下:

1.DanJia.h

#import <Foundation/Foundation.h>

/// 弹夹类
@interface DanJia : NSObject
{
///最大装弹数
int _maxCapacity;
///现有子弹数
int _bulletCount;
}

  • (void)setMaxCapacity:(int)maxCapacity;

  • (int)maxCapacity;

  • (void)setBulletCount:(int)bulletCount;

  • (int)bulletCount;
    @end

2.DanJia.m

#import “DanJia.h”

@implementation DanJia

  • (void)setMaxCapacity:(in

【Objective-C语言 面向对象版的士兵突击】相关推荐

  1. c语言面向对象编程中的类_C ++中的面向对象编程

    c语言面向对象编程中的类 Object oriented programming, OOP for short, aims to implement real world entities like ...

  2. C语言面向对象编程(四):面向接口编程

    Java 中有 interface 关键字,C++ 中有抽象类或纯虚类可以与 interface 比拟,C 语言中也可以实现类似的特性. 在面试 Java 程序员时我经常问的一个问题是:接口和抽象类有 ...

  3. C语言面向对象编程(二):继承详解

    在  C 语言面向对象编程(一)里说到继承,这里再详细说一下. C++ 中的继承,从派生类与基类的关系来看(出于对比 C 与 C++,只说公有继承): 派生类内部可以直接使用基类的 public .p ...

  4. C语言面向对象编程(六):配置文件解析

    在实际项目中,经常会把软件的某些选项写入配置文件. Windows 平台上的 INI 文件格式简单易用,本篇文章利用<C语言面向对象编程(五):单链表实现>中实现的单链表,设计了一个&qu ...

  5. java 168转换成861_java实验-java语言面向对象编程基础

    java实验-java语言面向对象编程基础 (12页) 本资源提供全文预览,点击全文预览即可全文预览,如果喜欢文档就下载吧,查找使用更方便哦! 8.90 积分 广州大学学生实验报告广州大学学生实验报告 ...

  6. Go语言面向对象编程

    系统类型 为类型添加方法 Go语言的类型,除了指针之外,都可以组合出自己的方法. type Integer intfunc (a Integer) Less(b Integer) bool {retu ...

  7. 【Golang第8章:面向对象编程】Go语言的结构体是什么,怎么声明;Golang方法的调用和声明;go语言面向对象实例,go语言工厂模式;golang面向对象的三大特性:继承、封装、多态

    介绍 这个是在B站上看边看视频边做的笔记,这一章是Glang面向对象编程 这一章内容较多,内容有Go语言的结构体是什么,怎么声明:Golang方法的调用和声明:go语言面向对象实例,go语言工厂模式: ...

  8. 我所偏爱的 C 语言面向对象编程范式

    我所偏爱的 C 语言面向对象编程范式 面向对象编程不是银弹.大部分场合,我对面向对象的使用非常谨慎,能不用则不用.相关的讨论就不展开了. 但是,某些场合下,采用面向对象的确是比较好的方案.比如 UI ...

  9. c语言面向对象编程显示,c语言面向对象编程

    场景:C语言面向对象编程(6):配置文件解析 C语言面向对象编程(六):配置文件解析 在实际项目中,经常会把软件的某些选项写入配置文件. Windows 平台上的 INI 文件格式简单易用,本篇文章利 ...

最新文章

  1. 图像翻译、语义分割、域适应、图像检索、无监督学习cvpr2021
  2. 一个网络公司的任职要求
  3. Android中的ImageView的getDrawableCache获取背景图片的时候注意的问题
  4. 计算机无法进入桌面怎么备份,无法进入系统如何正常备份数据?
  5. jpa 关联实体的关联实体_JPA实体锁定模式的差异
  6. mvn 汇编_【答疑解惑】艺术生留学小白问题答疑汇编之精华
  7. springboot 分页查询参数_精通SpringBoot--分页查询功能的实现
  8. hdu 1203 I NEED A OFFER!
  9. go语言中函数与方法重要的区别:
  10. unity wsad 鼠标_Unity3D实现键盘鼠标控制角色移动及旋转
  11. word转pdf linux java,java实现Word转Pdf(Windows、Linux通用)
  12. 用vbs脚本实现软件的自动登录
  13. 倍福软件安装及注意事项
  14. wifi分析仪怎么看哪个信道好_怎么查看周围的WiFi网络使用了哪些信道
  15. USB 3.0 高清音视频采集芯片——MS2130
  16. 2020年最佳恶意软件删除工具Top 10
  17. 元数据看板的初步设计思路
  18. 如何在线下载哔哩哔哩上的视频
  19. SysKey 和 SAM
  20. mysql every derived table must_Mysql错误Every derived table must have its own alias解决方法

热门文章

  1. Signoff Criteria --- ocv/aocv/pocv之AOCV介绍
  2. SAP BW4 405(主要是query和bo)学习6-10章
  3. Matlab生成宽带信号
  4. oracle 创建索引指定表空间,Oracle中如何把表和索引放在不同的表空间里
  5. matlab除数为0的解决办法
  6. 邓凡平WIFI学习笔记3: WiFi 协议安全部分
  7. 约瑟夫环——C++红书~第六章指针课后习题第5题
  8. 张五常:救金融之灾有三派之别
  9. Untiy 帧同步的探索之路一 位置帧同步
  10. 微信小程序+VantWeapp自定义tabBar,解决 this.gettabbar is not a function。