精华内容
下载资源
问答
  • pImpl编译器封装技术 C++ 一.pimpl总结 pImpl(Pointer to implementation)实质上就是一个可以替代完成Line功能的指针,当程序员看到Line.h整个函数的时候,在调用Line(int,int,int,...1.信息隐蔽性: 只能通过Line...

    pImpl编译器封装技术 C++


    一.pimpl总结

    pImpl(Pointer to implementation)实质上就是一个可以替代完成Line功能的指针,当程序员看到Line.h整个函数的时候,在调用Line(int,int,int,int),printLine()这样的成员函数的过程中,实际上都是用_pimpl来替代完成的。

    pImpl设计的好处
    1.信息隐蔽性:
    只能通过Line函数来了解到Line函数的用法,但是内部实现被隐藏,利用pimpl来替代完成,程序员只看到API,却看不到内部实现;
    2.编译依赖减小,降低了耦合性:
    当想要对函数实现进行修改的时候,不用修改头文件,直接修改pimpl的实现文件,这样减小了编译依赖,同时在对函数功能进行修改的过程也变简单了。

    二.代码

    Line.h:

    #ifndef _WD_LINE_H_
    #define _WD_LINE_H_
    #include <iostream>
    using std::cout;
    using std::endl;
    
    namespace wd{
    
    class Line{
    public:
        Line(int,int,int,int);
        ~Line();
        void printLine()const;
    
    private:
        class LinepImpl;   
        LinepImpl *_pimpl;
    };
    
    
    }//end of namespace wd
    
    #endif
    

    Line.cpp:

    #include "Line.h"
    using namespace wd;
    
    class Line::LinepImpl{
    public:
        class Point{
        public:
            Point(int x, int y)
            :_x(x), _y(y)
            {
                cout << "Point(int,int)" << endl;
            }
            ~Point(){
                cout << "~Point()" << endl;
            }
            void print()const{
                cout << "(" << _x << "," << _y << ")";
            }
    
        private:
            int _x;
            int _y;
        };
    
        LinepImpl(int x1, int y1, int x2, int y2)
        :_p1(new Point(x1,y1))
        ,_p2(new Point(x2,y2))
        {
            cout << "LinepImpl(int,int,int,int)" << endl;
        }
    
        ~LinepImpl(){
            delete _p1;
            delete _p2;
            cout << "~LinepImpl()" << endl;
        }
    
        void printLine()const{
            _p1->print();
            cout << "-->";
            _p2->print();
            cout << endl;
        }
    
    private:
        Point *_p1;
        Point *_p2;
    };
    
    
    
    Line::Line(int x1, int y1, int x2, int y2)
    :_pimpl(new LinepImpl(x1, y1, x2, y2))
    {
        cout << "Line(int,int,int,int)" << endl;
    }
    
    Line::~Line(){
        if(_pimpl){
            delete _pimpl;
            _pimpl = NULL;
        }
    }
    
    void Line::printLine()const{
        _pimpl->printLine();
    }
    
    
    
    展开全文
  • Java的封装

    2017-08-06 15:18:42
    封装是 JAVA 面向对象的特点的表现,封装是一种信息隐蔽技术。它有两个含义:即把对象的全部属性和全部服务结合在一起,形成一个不可分割的独立单位;以及尽可能隐藏对象的内部结构。也就是说,如果我们使用了封装...

    封装这个词听起来好象是将什么东西包裹起来不要别人看见一样,就好象是把东西装进箱子里面,这样别人就不知道箱子里面装的是什么东西了。其实 JAVA 中的封装这个概念也就和这个是差不多的意思。

    封装是 JAVA 面向对象的特点的表现,封装是一种信息隐蔽技术。它有两个含义:即把对象的全部属性和全部服务结合在一起,形成一个不可分割的独立单位;以及尽可能隐藏对象的内部结构。也就是说,如果我们使用了封装技术的话,别人就只能用我们做出来的东西而看不见我们做的这个东西的内部结构了。

    封装的功能:

    • 隐藏对象的实现细节
    • 迫使用户去使用一个界面访问数据
    • 使代码更好维护

    封装迫使用户通过方法访问数据能保护对象的数据不被误修改,还能使对象的重用变得更简单。数据隐藏通常指的就是封装。它将对象的外部界面与对象的实现区分开来,隐藏实现细节。迫使用户去使用外部界面,即使实现细节改变,还可通过界面承担其功能而保留原样,确保调用它的代码还继续工作。封装使代码维护更简单。

    展开全文
  • 1.封装

    2014-08-13 17:40:45
    封装是 JAVA 面向对象的特点的表现,封装是一种信息隐蔽技术。它有两个含义:即把对象的全部属性和全部服务结合在一起,形成一个不可分割的独立单位;以及尽可能隐藏对象的内部结构。也就是说,如果我们使用了封装
    封装这个词听起来好象是将什么东西包裹起来不要别人看见一样,就好象是把东西装进箱子里面,这样别人就不知道箱子里面装的是什么东西了。其实 JAVA 中的封装这个概念也就和这个是差不多的意思。

    封装是 JAVA 面向对象的特点的表现,封装是一种信息隐蔽技术。它有两个含义:即把对象的全部属性和全部服务结合在一起,形成一个不可分割的独立单位;以及尽可能隐藏对象的内部结构。也就是说,如果我们使用了封装技术的话,别人就只能用我们做出来的东西而看不见我们做的这个东西的内部结构了。

    封装的功能:
    • 隐藏对象的实现细节
    • 迫使用户去使用一个界面访问数据
    • 使代码更好维护

    封装迫使用户通过方法访问数据能保护对象的数据不被误修改,还能使对象的重用变得更简单。数据隐藏通常指的就是封装。它将对象的外部界面与对象的实现区分开来,隐藏实现细节。迫使用户去使用外部界面,即使实现细节改变,还可通过界面承担其功能而保留原样,确保调用它的代码还继续工作。封装使代码维护更简单。

    展开全文
  • Java面向对象-封装

    2019-06-09 10:08:46
    封装这个词听起来好像是将什么东西包裹起来不要别人看见一样,就好像是把东西装进箱子里面,这样别人就不知道箱子里面装...是 JAVA 面向对象的特点的表现,封装是一种信息隐蔽技术。它有两个含义:即把对象的全部属...

    封装这个词听起来好像是将什么东西包裹起来不要别人看见一样,就好像是把东西装进箱子里面,这样别人就不知道箱子里面装的是什么东西了。其实 JAVA 中的封装这个概念也就和这个是差不多的意思。

    Java的封装概念:
    封装(英语:Encapsulation)是指一种将抽象性函式接口的实现细节部份包装、隐藏起来的方法。是 JAVA 面向对象的特点的表现,封装是一种信息隐蔽技术。它有两个含义:即把对象的全部属性和全部服务结合在一起,形成一个不可分割的独立单位;以及尽可能隐藏对象的内部结构。也就是说,如果我们使用了封装技术的话,别人就只能用我们做出来的东西而看不见我们做的这个东西的内部结构了。封装可以被认为是一个保护屏障,防止该类的代码和数据被外部类定义的代码随机访问。要访问该类的代码和数据,必须通过严格的接口控制。适当的封装可以让程式码更容易理解与维护,也加强了程式码的安全性。

    封装的功能:
    隐藏对象的实现细节
    迫使用户去使用一个界面访问数据
    使代码更好维护

    封装迫使用户通过方法访问数据能保护对象的数据不被误修改,还能使对象的重用变得更简单。数据隐藏通常指的就是封装。它将对象的外部界面与对象的实现区分开来,隐藏实现细节。迫使用户去使用外部界面,即使实现细节改变,还可通过界面承担其功能而保留原样,确保调用它的代码还继续工作。封装使代码维护更简单。

    封装的优点:
    良好的封装能够减少耦合。
    类内部的结构可以自由修改。
    可以对成员变量进行更精确的控制。
    隐藏信息,实现细节。

    封装的步骤:
    封装是在一个类里面
    修改属性的可见性来限制对属性的访问(一般限制为private)
    对每个值属性提供对外的公共方法访问,也就是创建getter 和 setter方法

    创建getter 和 setter方法:
    将实例变量的首字母大写,在前面添加get或者set, 变成getter 和 setter方法名

    格式:
    修饰符 关键字(类)类名{
    实例变量定义格式:
    private 数据类型 实例变量;

    该类的构造方法
    [修饰符] 类名 (形参列表){构造器方法体代码}

    get读格式:
    修饰符 返回值类型 getter方法名(返回值类型 实例变量) { return 实例变量;} ;

    set写格式:
    修饰符 返回值类型 setter方法名(返回值类型 实例变量) { 关于实例变量执行的表达式}
    }
    例子:
    在这里插入图片描述

    展开全文
  • C++封装继承多态

    2018-08-31 10:00:28
    也就是把客观事物封装成抽象的类,并且类可以把自己的数据和方法只让可信的类或者对象操作,对不可信的进行信息隐藏。 把对象的属性和服务结合成一个独立的系统单元。 尽可能隐蔽对象的内部细节。对外形成一个...
  • 封装是 JAVA 面向对象的特点的表现,封装是一种信息隐蔽技术。它有两个含义:即把对象的全部属性和全部服务结合在一起,形成一个不可分割的独立单位;以及尽可能隐藏对象的内部结构。也就是说,如果我们使用了封装
  • 1.1 封装封装是一种信息隐蔽技术,它体现于类的说明,是对象的重要特性。封装使数据和加工该数据的方法(函数)封装为一个整体,以实现独立性很强的模块,使得用户只能见到对象的外特性(对象能接受哪些消息,具有...
  • 另外,封装可以看作一个屏障,一种信息隐蔽技术,防止该类被其他类任意访问,必须通过指定的方式对该类进行访问,增加了代码的安全性。   从生活中的例子看,开车的人并不需要明白汽车的工作原理,汽车的工作原理...
  • 封装性:封装是一种信息隐蔽技术,它体现于类的说明,是对象的重要特性。封装使数据和加工该数据的方法(函数)封装为一个整体,以实现独立性很强的模块,使得用户只能见到对象的外特性(对象能接受哪些消息,具有...
  • 一、封装  封装这个词听起来好象是将什么东西...封装是 JAVA 面向对象特点的表现,封装是一种信息隐蔽技术。它有两个含义: 即把对象的全部属性和全部服务结合在一起, 形成一个不可分割的独立单位;尽可能隐藏
  • 特点: - 开源诚交志友、任您扩展 - 文本语音让您“爱上”聊 - 隐蔽型设计、老板键支持 - 无视防火墙局域网关障碍 - 线程运用及周全的缓冲架构 - XML/XSL呈现技术 <br>浏览地址:...
  • 把对象的全部成员属性和全部成员方法结合在一起,形成一个不可分割的独立单位(即对象)信息隐蔽,即尽可能隐蔽对象的内部细节,对外形成一个边界,只保留有限的对外接口是指与外部发生联系。 (1)属性封装:...
  • 面向对象技术

    2021-03-16 11:06:25
    每个对象都有它自己的属性值,表示该对象的状态,用户只能看见对象封装界面上的信息,对象的内部实现对用户是隐蔽的。 封装目的是使对象的使用者和生产者分离,使对象的定义和实现分开。 一个对象通常可由3部分...
  • 第七章-面向对象技术

    2018-11-04 18:50:48
    概念   面向对象=对象(Object)+分类(Classification)+继承(Inheritance)+通过消息的通信(Communication with Messages)。...   封装:一种信息隐蔽技术,目的是使对象的使用者和生产者分离,...
  • 9.封装性  封装性是面向对象编程中的三...2.信息隐蔽,即尽可能隐蔽对象的内部细节,对外形成一个边界〔或者说形成一道屏障〕,只保留有限的对外接口使之与外部发生联系。  封装的原则在软件上的反映是:要求使...
  • 封装是一种信息隐蔽技术,它的目的是使对象的使用者和生产者分离,使对象的定义和实现分开。 消息:对象之间进行通信的一种构造叫做消息。 类:一个类定义一组大体上相似的对象,一个类所包含的方法和数据描述一组...
  • 背景 提出问题 Python 基础语法 ...封装信息隐蔽技术 我们可以使用关键字class定义Python类,关键字后面紧跟类的名称、分号和类的实现。 class Turtle: # Python中的类名约定以大写字母开头 ...
  • 性和有权对这些属性进行操作的一组服务的封装体。客观世界是由对象和对象之间的联系组成的。 类与对象的关系就如模具和铸件的关系,类的实例化结果就是对象,而对一类对象的抽象就是 类。类描述了一组有相同特性...
  • C#面向对象概念总结

    千次阅读 2016-01-17 14:21:42
    封装是一种信息隐蔽技术,用户只能见到对象封装界面上的信息,对象内部对用户是隐蔽的。 封装的目的在于将对象的使用者与设计者分开,使用者不必了解对象行为的具体实现,只需要用设计者提供的消息接口来访问该对象...
  • 面向对象

    2017-03-17 15:13:00
    封装性:封装是一种信息隐蔽技术,它体现于类的说明,使数据更安全.是对象的重要特性。封装使数据和加工该数据的方法(函数)封装为一个整体,以实现独立性很强的模块,使得用户只能见到对象的外特性(对象能接受...
  • 面向对象主要特征

    2019-09-26 10:19:36
    封装是一种信息隐蔽技术,它体现于类的说明,是对象的重要特性。封装使数据和加工该数据的方法(函数)封装为一个整体,以实现独立性很强的模块,使得用户只能见到对象的外特性(对象能接受哪些消息,具有那些处理能力)...
  • python打卡学习7

    2020-08-09 00:40:43
    类与对象思维导图基础概念讲解对象是什么封装信息隐蔽技术继承多态self公有变量和私有变量 思维导图 基础概念讲解 对象是什么 对象 =属性 +方法 对象是类的实例。换句话说,类主要定义对象的结构,然后我们以类...
  • 多态,改写对象行为1.1 封装封装是一种信息隐蔽技术,它体现于类的说明,是对象的重要特性。封装使数据和加工该数据的方法(函数)封装为一个整体,以实现独立性很强的模块,使得用户只能见到对象的外特性(对象能...
  • python学习13、14 对象 对象=属性(静态的特征)+方法(动态的动作) 属性:变量 方法:函数 ...(1)封装信息隐蔽技术封装 封装:只体现需要方法的名字供我们调用,调用后产生结果,...
  • java面向对象总结

    2017-03-24 16:17:00
    封装性:封装是一种信息隐蔽技术,它体现于类的说明,使数据更安全.是对象的重要特性。封装使数据和加工该数据的方法(函数)封装为一个整体,以实现独立性很强的模块,使得用户只能见到对象的外特性(对象能接受...
  • 【Java 面向对象】

    2016-04-27 17:27:19
     封装是一种信息隐蔽技术,面向对象思想在封装技术上的体现是:属性私有化,并提供公共方法访问私有对象。封装使得对代码的修改更加安全和容易,降低了软件的复杂度以及软件开发的难度,还避免了命名冲突问题。二、...
  • **封装性(encapsulation):** 封装是一种信息隐蔽技术,它体现于类的说明,是对象的重要特性。封装使数据和加工该数据的方法(函数)封装为一个整体,以实现独立性很强的模块,使得用户只能见到对象的外特性(对象...

空空如也

空空如也

1 2 3 4 5 ... 13
收藏数 248
精华内容 99
关键字:

信息隐蔽技术封装