美文网首页
06-01、面向对象的三大特性:封装的基本概念

06-01、面向对象的三大特性:封装的基本概念

作者: 山中石头 | 来源:发表于2017-09-18 14:55 被阅读0次
屏幕快照 2017-09-18 13.26.27.png 屏幕快照 2017-09-18 14.48.02.png 屏幕快照 2017-09-18 14.49.01.png
main.m
#import <Foundation/Foundation.h>
#import "Gun.h"

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

// 1.创建一把枪
Gun *gun = [Gun new];
// 2.设置枪的子弹数量
//    gun->_bullet = 100;
// 引发这个问题的原因: 因为成员变量是public, 给成员变量赋值的时, 赋值的值不受我们的约束
//    gun->_bullet = -100;

[gun addBullet:100];

// 3.射击
[gun shoot];

// 4.查看子弹的剩余数据(获取成员变量的值)
//    NSLog(@"bullet = %i", gun->_bullet);
NSLog(@"BULLET = %i", [gun getBullet]);


return 0;
}
Gun.h
#import <Foundation/Foundation.h>

@interface Gun : NSObject
{
//    @public
int _bullet; // 子弹
// 虽然成员变量不是public之后外界不能直接访问了, 但是还是可以在本类的对象方法中直接访问
}

/**
 *  射击方法
 */
- (void)shoot;


// 提供一个方法用于设置成员变量的值
- (void)addBullet:(int)count;

// 提供一个方法用于返回成员变量的值
- (int)getBullet;
@end
Gun.m
#import "Gun.h"

@implementation Gun

- (void)shoot
{
if (_bullet > 0) {
    
    _bullet--;
    NSLog(@"打了一枪 , 还剩%i颗子弹", _bullet);
}else{
    NSLog(@"没有子弹了");
}
}

// addBullet就是对成员变量的封装
- (void)addBullet:(int)count // -100
{
/*
 封装: 屏蔽内部实现的细节, 仅仅对外提供共有的方法/接口
 好处: 保证数据的安全性
       将变化隔离
 规范: 一般情况下不会对外直接暴露成员变量, 都会提供一些共有的方法进行赋值
       成员变量都需要封装起来
 */
// 对传入的数据进行过滤
if (count < 0) {
    count = 0;
}
_bullet = count;
}

- (int)getBullet
{
return _bullet;
}
@end

相关文章

  • OC语言基本概念

    基本概念 oc面向对象语言,只需关注具有相关功能的对象,不必亲力亲为。 oc面向对象的三大特性:封装、继承(拷贝一...

  • Class 的封装及调用-Python教学【StudyQuant

    前言:面向对象的三大特性是指:封装、继承和多态。论Class 的封装及调用 面向对象三大特性 面向对象的三大特性是...

  • 06-01、面向对象的三大特性:封装的基本概念

    main.m Gun.h Gun.m

  • Java面试之基础篇

    面向对象的特性 面向对象的三大特性是:封装、继承、多态。 封装 封装就是将一个对象的属性和方法进行封装。同时私有化...

  • 面向对象三大特性

    面向对象 三大特性 封装 封装最好理解了。封装是面向对象的特征之一,是对象和类概念的主要特性。封装,也就是把客观事...

  • 面试 | java基础

    面向对象 1、面向对象特征? 封装封装是面向对象的特征之一,是对象和类概念的主要特性。封装,也就是把客观事物封装成...

  • OC面向对象

    OC面向对象—封装 一、面向对象和封装 面向对象的三大特性:封装(成员变量)、继承和多态 在OC语言中,使用@in...

  • 1.1 封装

    本小节知识: 面向对象三大特性 什么是封装 为什么要进行封装? 封装的好处和原则 1.面向对象三大特性 封装性 继...

  • 面向对象语言基础

    面向对象语言的特性 面向对象的语言的特性:封装、继承、多态。 面向对象语言的设计原则 面向对象的语言在进行程序设计...

  • 面向对象三大特性(一):封装

    面向对象有三大特性:封装、继承和多态。注意,是面向对象的三大特性而不是Java的三大特性,Java只是面向对象语言...

网友评论

      本文标题:06-01、面向对象的三大特性:封装的基本概念

      本文链接:https://www.haomeiwen.com/subject/sffbsxtx.html