中国高校课件下载中心 》 教学资源 》 大学文库

面积对象编程(PPT讲稿)Object-Oriented Programming and Classes

文档信息
资源类别:文库
文档格式:PPT
文档页数:67
文件大小:735.5KB
团购合买:点击进入团购
内容简介
面积对象编程(PPT讲稿)Object-Oriented Programming and Classes
刷新页面文档预览

Object-Oriented Programming and Classes

Object-Oriented Programming and Classes

OoP/ Slide 2 Motivation Basic, built-in, pre-defined types: char, int, double, Variables operations on them nt a b c=atb a mod b More complicated, user-defined types: classes Variables objects Types >classes

OOP / Slide 2 Basic, built-in, pre-defined types: char, int, double, … Variables + operations on them int a, b,c; c=a+b; c=a mod b; … More complicated, user-defined types: classes Motivation Variables → objects Types → classes

OoP/ Slide 3 procedural programming a sequence of procedures int a, b, c; CC: a=1(x) b=2(); f20 C=f3(z); } Class A int f20 Class B int f30 Int f20 Class c Object oriented programming: a sequence of 'objects'!

OOP / Slide 3 int main() { int x,y,z; int a,b,c; a=f1(x); b=f2(y); c=f3(z); … } int f1() { } int f2() { } int f3() { } int main() { A a; B b; C c; a.f1(); b.f2(); c.f3(); … } Class A { Int x; Int f1(); } Class B { Int y; Int f2() } Class C { Int z; Int f3(); } procedural programming: a sequence of ‘procedures’ Object oriented programming: a sequence of ‘objects’!

OoP/ Slide 4 Variables objects MotivationTypes → classes Procedural programming LOW-level. closer to hardware More intuitive less abstract More 'action’ oriented Focus on 'action, procedure, 'method Procedure-oriented Object-oriented programming High-level More abstract Focus on what to do' not on how to do In the implementation of OOP, we still need sound procedure programming' skills

OOP / Slide 4 Motivation Variables → objects Types → classes Procedural programming: Low-level, closer to hardware More intuitive, less abstract More ‘action’ oriented Focus on ‘action’, ‘procedure’, ‘method’ Procedure-oriented Object-oriented programming: High-level More abstract Focus on ‘what to do’ not on ‘how to do’ In the implementation of OOP, we still need sound ‘procedure programming’ skills!

OoP/ Slide 5 Motivation We want to build user-defined(and"smart) objects that can answer many questions(and perform various actions) What is your temperature? What is your temperature in Fahrenheit? What is your humidity?” Print your temperature in Celsius What is your wish?

OOP / Slide 5 Motivation We want to build user-defined (and “smart”) objects that can answer many questions (and perform various actions). “What is your temperature?” “What is your temperature in Fahrenheit?” “What is your humidity?” “Print your temperature in Celsius.” What is your wish?

OoP/ Slide 6 Temperature example Write a program that, given a temperature in Fahrenheit or Celsius, will display the equivalent temperature in each of the scales double degree=0.0; / needs 2 items char scale F To apply a function f() to a temperature, we must specify both degree and scale f(degree, scale)i Also to display a temperature 197 8202(Putonghua) cout < degree < scale 1878066( English)

OOP / Slide 6 Temperature example Write a program that, given a temperature in Fahrenheit or Celsius, will display the equivalent temperature in each of the scales. double degree = 0.0; // needs 2 items! char scale = 'F'; To apply a function f() to a temperature, we must specify both degree and scale: f(degree, scale); Also to display a temperature: cout << degree << scale;

OoP/ Slide 7 Put related variables together (remember that an array is a collection of variables of same type) The simpliest Class (or a C-structure) can be thought of being a collection of variables of different types

OOP / Slide 7 (remember that an Array is a collection of variables of same type) The simpliest Class (or a C-structure) can be thought of being a collection of variables of different types Put related variables together …

OoP/ Slide 8 a first simple class or object-oriented' solution class Temperature i public double degree Two mem ber variables degree and scale char scale;← a new(user-defined)type, a composite ty pe: Temperature! Remark: structure Temperature i In old C, this can be done using 'structure double degree similar to 'recordin Pascal char scale

OOP / Slide 8 A first simple ‘class’ or ‘object-oriented’ solution class Temperature { public: double degree; char scale; }; a new (user-defined) type, a composite type: Temperature! Two member variables: degree and scale In old C, this can be done using ‘structure’: structure Temperature { double degree; char scale; }; similar to ‘record’ in Pascal Remark:

OoP/ Slide 9 The dot operator for (public) members The modifier public' means that the mem ber variables can be accessed from the objects, e. g Temperature temp 1, temp2i templ degree=54.0; temp1.sca1e=NF′; temp2 degree=104.5 temp2. scale=C′ A C++ struct is a class in which all mem bers are by default public

OOP / Slide 9 temp1.degree=54.0; temp1.scale=‘F’; temp2.degree=104.5; temp2.scale=‘C’; The dot operator for (public) members Temperature temp1, temp2; The modifier ‘public’ means that the member variables can be accessed from the objects, e.g. A C++ struct is a class in which all members are by default public

OoP/ Slide 10 Manipulation of the new type Some basic operations: void print (Temperature temp out <<The temperature is degree < temp degree < with the scale M<< temp. scale < endli double celsius (Temperature temp) double cel if (temp. scale=='Fl) cel=(temp. degree-320)/1.8; else cel=temp. degree return cel double fahrenheit(Temperature temp) double fa f(temp.scale==C)fa= temp. degree *1.8+320i else fa=temp. degree return fa

OOP / Slide 10 void print(Temperature temp) { cout << “The temperature is degree “ << temp.degree << “with the scale “ << temp.scale << endl; } double celsius(Temperature temp) { double cel; if (temp.scale==‘F’) cel=(temp.degree-32.0)/1.8; else cel=temp.degree; return cel; } double fahrenheit(Temperature temp) { double fa; if(temp.scale==‘C’) fa= temp.degree *1.8+32.0; else fa=temp.degree; return fa; } Some basic operations: Manipulation of the new type:

刷新页面下载完整文档
VIP每日下载上限内不扣除下载券和下载次数;
按次数下载不扣除下载券;
注册用户24小时内重复下载只扣除一次;
顺序:VIP每日次数-->可用次数-->下载券;
相关文档