C++基础之面向对象基本原理

    Object Oriented Programming

    ◆ Objects send and receive messages (objects do things!)

C++基础之面向对象基本原理

    Objects send messages

    ◆ Messages are

        —Composed by the sender

        —Interpreted by the receiver

        —Implemented by methods

    ◆ Messages

        —May cause receiver to change state

        —May return results

    Object vs. Class

    ◆ Objects (cat)

        ★ Represent things, events, or concepts

        ★ Respond to messages at run-time

    ◆ Classes (cat class)

        ★ Define properties of instances

        ★ Act like types in C++

C++基础之面向对象基本原理

    OOP Characteristics

    1. Everything is an object

    2. A program is a bunch of objects telling each other what to do by sending messages.

    3. Each objects has its own memory made up of other objects.

    4. Every object has a type.

    5. All objects of a particular type can receive the same messages.

    An object has an interface

    ◆ The interface is the way it receives messages.

    ◆ It is defined in the class the object belong to.

    Functions of the interface

    ◆ Communication

    ◆ Protection

    The Hidden Implementation

    ◆ Inner part of an object, data members to present its state, and the actions it takes when messages is rcvd is hidden.

    ◆ Class creators vs. Client programmers

    —Keep client programmers' hands off portions they should not touch.

    —Allow the class creators to change the internal working of the class without worrying about how it will affect the client programmers.

    Encapsulation

    ◆ bundle data and methods dealing with these data together in an object

    ◆ Hide the details of the data and the action

    ◆ Restrict only access to the publicized methods.