| What is an object? | ||
| component of a program | ||
| contains variables and data | ||
| perform certain actions | ||
| interact with other pieces of the program | ||
| What is a class? | ||
| blue prints of objects | ||
| abstraction data type (ADT) | ||
| Instance – every object is an instance of a class | ||
| a real thing of a class | ||
| can be manipulated | ||
| instances keep track of their own information | ||
| called member data/variables | ||
| knows how to do things with different methods | ||
| Method (interface) | ||||
| member variable except it can do more tricks | ||||
| like move(), attackMonster() and etc.. | ||||
| Special methods | ||||
| Constructors | ||||
| get the object ready to be used | ||||
| Destructors | ||||
| terminate the object | ||||
| struct Player{ | |
| int health; | |
| int strength; | |
| int agility; | |
| } | |
| Player Jane, John; | |
| class Player { | |
| public: | |
| int health; | |
| int strength; | |
| int agility; | |
| }; | |
| Player Jane, John; |
| Player:: Player () { | ||
| strength = 10; | ||
| agility = 10; | ||
| health = 10; | ||
| } | ||
| Player::~Player() { | ||
| strength = 0; | ||
| agility = 0; | ||
| health = 0; | ||
| } //automatically called | ||
| Purpose | |||
| set up an object: i.e. instantiate an object. | |||
| How | |||
| Constructor automatically invoked at declaration time | |||
| Player John; //default constructor | |||
| Player::Player(int s, int a) { | |||
| strength = stg; | |||
| agility = agl; | |||
| health = 10; | |||
| } | |||
| Player Jane(20, 5); //function overloading | |||
| class Player { | |
| int health; | |
| int strength; | |
| int agility; | |
| Player(); // constructor - no return type | |
| Player(int s, int a); // alternate constructor void void move(); | |
| void attackMonster(); | |
| void getTreasure(); | |
| }; |
| class Player { | |
| private: // hidden | |
| int health; | |
| int strength; | |
| int agility; | |
| public: | |
| Player(); // constructor - no return type | |
| Player(int s, int a); // alternate constructor void void move(); | |
| void attackMonster(); | |
| void getTreasure(); | |
| }; |
| void Player::move() { | |
| cout <<“I’ve moved to a new position.” << endl; | |
| } | |
| void Player::getTreasure() { | |
| health++; // increments health by one | |
| } | |
| int main() { | |
| Player Jane, John(5, 5); | |
| cout <<“Jane’s health:.” << Jane.health << endl; | |
| Jane.getTreasure(); | |
| cout <<“Jane’s health:.” << Jane.health << endl; | |
| }; |
| class Engine { | |
| public: | |
| void start() const {} | |
| void rev() const {} | |
| void stop() const {} | |
| }; | |
| class Wheel { | |
| public: | |
| void inflate(int psi) const {} | |
| }; | |
| class Window { | |
| public: | |
| void rollup() const {} | |
| void rolldown() const {} | |
| }; | |
| class Door { | |
| public: | |
| Window window; | |
| void open() const {} | |
| void close() const {} | |
| }; |
| class Car { | |
| public: | |
| Engine engine; | |
| Wheel wheel[4]; | |
| Door left, right; // 2-door | |
| }; | |
| int main() { | |
| Car car; | |
| car.left.window.rollup(); | |
| car.wheel[0].inflate(72); | |
| } |