1 / 17

Instruction: Use mouse’s left button.

Instruction: Use mouse’s left button. If mouse buttons don’t work, use arrow keys of keyboard for slide show. Keyboard Arrow key --> or mouse’s left button for “next slide.” Keyboard Arrow key <-- for “previous slide.”

malory
Télécharger la présentation

Instruction: Use mouse’s left button.

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Instruction: • Use mouse’s left button. • If mouse buttons don’t work, use arrow keys of keyboard for slide show. • Keyboard Arrow key --> or mouse’s left button for “next slide.” • Keyboard Arrow key <-- for “previous slide.” • When it is end, Press “Home” button to go back to main page.

  2. Encapsulation ( Information Hiding ) In Object Oriented C++ Approach Presented by: Thakur Rai

  3. Objectives • Explanation of Encapsulation and Information Hiding. • What encapsulation or information hiding approach provide in Object Oriented ? • General 3 different ways to Encapsulate data. • Advantage of Encapsulation ( Information hiding ). • Example by encapsulation or information hiding

  4. ( Explanation of Encapsulation and Information Hiding ) • Encapsulation • “ to enclose in or as in a capsule ” • 1. The object-oriented meaning of encapsulation is to enclose related data, routines and definitions in a class capsule. This does not necessarily mean hiding. (Mish) • Encapsulation is the ‘bundling together’ of data and behavior so that they are inseparable. (Mcgraw Hill)

  5. Cont. Explanation of Encapsulation and Information Hiding Why Encapsulation is also called information hiding ? Encapsulation (also called information hiding) consists of separating the external aspects of an object, from the internal implementation details of the object, which are hidden from other objects. Encapsulation prevents a program from becoming to interdependent that a small change has massive ripple effects. Encapsulation has ability to combine data structure and behavior in a single entity makes encapsulation cleaner and more powerful than in conventional languages that separate data structure and behavior.

  6. Cont. Explanation of Encapsulation and Information Hiding • Information Hiding • Information hiding: a module is characterized by the information it hides from other modules, which are called its clients. The hidden information remains a secret to the client modules. (Ghezzi et al) • The purpose of Information hiding is to make inaccessible certain details that should not affect other parts of a system. (Ross et al) • Information hiding is the principle that users of a software component (such as a class) need to know only the essential details of how to initialize and access the component, and do not need to know the details of the implementation. (Budd) Note: A class can act like Server, and a program “main” can act like Client.

  7. What encapsulation or information hiding approach provides in Object Oriented? • The interface is the visible surface of the capsule. • The interface describes the essential characteristics of objects of the class which are visible to the exterior world. • Interface data – which should be visible from outside/other class or method. • The implementation is hidden in the capsule. • The implementation hiding means that data can only be manipulated, that is updated, within the class, but it does not mean hiding interface data. • Implementation data – which should be hidden from outside/other class or method. Note: A function is an interface and has function definition, and A class is an implementation and has its declaration includes all implementation details of data and function members.

  8. General 3 ways to Encapsulate Data • Public member access specifier • Private member access specifier • Protected member access specifier

  9. Cont. General 3 ways to Encapsulate Data 1. Public member access specifier. Syntax public: <declarations> Description: 1. A public member can be accessed by any function. 2. Members of a struct or union are public by default. 3. You can override the default struct access with private or protected but you cannot override the default union access. 4. Friend declarations are not affected by these access specifiers.

  10. Cont. General 3 ways to Encapsulate Data • 2. Private member access specifier • Syntax • private: <declarations> • Description: • A private member can be accessed only by member functions and friends of the class in which it is declared. • 2. Class members are private by default. • 3. You can override the default struct access with private or protected but you cannot override the default union access. • 4. Friend declarations are not affected by these access specifiers.

  11. Cont. General 3 ways to Encapsulate Data • Protect member access specifier • Syntax • protected: <declarations> • Description: • 1. A protected member can be accessed by member functions and friends of the class in which it was declared, and by classes derived (derived classes) from the declared class. • 2. You can override the default struct access with private or protected but you cannot override the default union access. • 3. Friend declarations are not affected by these access specifiers.

  12. Cont. General 3 ways to Encapsulate Data class MyClass { public: //access from anywhere int x; private: //only access from within a class int y; protected: //access from within a class ,or derived class int z; }; void main() { MyClass CopyClass; CopyClass.x = 1; //OK, Public Access. CopyClass.y = 2; //Error! Y isn't a member of MyClass CopyClass.z = 3; //Error! Z isn't a member of MyClass }

  13. Advantage of Encapsulation ( Information hiding ) • It prevents others accessing the insides of an object. • The only thing that can manipulate the data in an object is that object’s method or member function. • It main aim is to prevent accident. • It builds a protective wall (encapsulation) around the member data and member function of the class, and hiding implementation details of object. So It keeps data safe from accident.

  14. Example by encapsulation or information hiding #include <iostream> // Declaration of the Box class. class Box { private: int height, width, depth; // private data members. public: Box(int, int, int); // constructor function. ~Box(); // destructor function. int volume(); // member function (compute volume). }; (cont.)

  15. // Definition of the Box class. Box::Box( int ht, int wd, int dp ) // The constructor function. { height = ht; width = wd; depth = dp; } Box::~Box() // The destructor function. Use of scope resolution ‘::’ { // does nothing } int Box::volume() // Member function to compute the Box's volume. { return height * width * depth; } (cont.)

  16. // The main() function. int main() { // Construct a Box object. Box thisbox(7, 8, 9); // actual values // Compute and display the object's volume. int volume = thisbox.volume(); std::cout << “output volume is : “ << volume; return 0; } output volume is: 504

  17. Thank you for your participation….

More Related