Download presentation
Presentation is loading. Please wait.
Published byHelena Paul Modified over 8 years ago
1
CMSC 202 Lesson 7 Classes I
2
Warmup Add the correct parameter list and return type to the following function: (hint: all the information you need is in the function) _____ findDVD(_________ Titles, _________ titleToFind) { for (unsigned int i = 0; i < Titles.size(); ++i) { if (Titles.at(i) == titleToFind) return i; } return Titles.size(); }
3
Object-Oriented Programming (OOP) Software Development Goals Code Reuse – save money and time Abstraction – reduce something to essentials Examples: Driving a car Controlling a television OOP Key Components (Classes) Data Operations (methods/functions) Usually associated with the data Encapsulation Details of implementation (both data and algorithms) is hidden from the user of a class
4
OOP Example Driving a car… Car Data Amount of Gas Current Gear Automatic or Manual Mileage Current Amount of Turn Car Operations Accelerate Brake Change Gear Add Gas Turn right Turn left Encapsulation?
5
OOP Example What properties (data) does a chair have? What actions (operations) does a chair have?
6
Practice Box of DVDs What data does the box have? What operations does the box have?
7
Structures What about structs? Collection of data No operations explicitly related struct DayOfYear { int month; int day; }; DayOfYear july4th; july4th.month = 7; july4th.day = 4; No typedef! Members
8
Structures Good Simple Can be parameters to functions Can be returned by functions Can be used as members of other structs Bad No operations Data is not protected Any code that has access to the struct object has direct access to all members of that object
9
Classes Class Collection of data and Operations on that data Object Instance of a class Examples (on right!) Class Blueprint, pattern, classification Object Thing you built, made, constructed ClassObject CarMy physical car BuildingITE Building ChairThis particular chair MarkerA particular marker DateJuly 4 th, 05
10
Classes – a Struct Replacement Good Simple Objects can be parameters to functions Objects can be returned by functions Objects can be members of other classes Operations linked to data Data is protected Code that uses an object MUST use the operators of the class to access/modify data of the object (usually) Bad Nothing really…
11
Class Example class Car { public: bool AddGas(float gallons); float GetMileage(); // other operations private: float m_currGallons; float m_currMileage; // other data }; Operations Data Class-name Protection Mechanism
12
Struct vs. Class struct DayOfYear { int month; int day; }; // Code from main() DayOfYear july4th; july4th.month = 7; july4th.day = 4; class DayOfYear { public: int m_month; int m_day; }; // Code from main() DayOfYear july4th; july4th.m_month = 7; july4th.m_day = 4;
13
Class Rules – Coding Standard Class names Always begin with capital letter Use mixed case for phrases General word for class (type) of objects Ex: Car, Boat, Building, DVD, List, Customer, BoxOfDVDs, CollectionOfRecords, … Class data Always begin with m_ Ex: m_fuel, m_title, m_name, … Class operations/methods Always begin with capital letter Ex: AddGas(), Accelerate(), ModifyTitle(), RemoveDVD(), …
14
Class - DayOfYear // Represents a Day of the Year class DayOfYear { public: void Output(); int m_month; int m_day; }; // Output method – displays a DayOfYear void DayOfYear::Output() { cout << m_month << “/” << m_day; } // Code from main() DayOfYear july4th; july4th.m_month = 7; july4th.m_day = 4; july4th.Output();
15
Method Implementation void DayOfYear::Output() { cout << m_month << “/” << m_day; } Class Name Scope Resolution Operator: indicates which class this method is from Method Name Method Body
16
Classes // Represents a Day of the Year class DayOfYear { public: void Output(); int m_month; int m_day; }; // Output method – displays a DayOfYear void DayOfYear::Output() { cout << m_month << “/” << m_day; } Class Definition Goes in file ClassName.cpp Class Declaration Goes in file ClassName.h
17
Practice You are working on an Inventory system for a department store Declare a class to represent a Pair of Shoes What data do we need? Assume the only operation will be to display their data to the screen. Implement the Output() method Create a Pair of Shoes Assign the shoes data Print their data using the Output() method
18
Challenge You are working for the Bookstore… Design Challenge Design a class to represent a textbook What data should it have? What operations should it have? Implementation Challenge I Write the class declaration for a textbook Implementation Challenge II Write the class definition for a textbook You need not implement any of the functions… I just want to see their signatures Use only what we know so far…
Similar presentations
© 2024 SlidePlayer.com. Inc.
All rights reserved.