




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
一、面向对象编程1、 什么是对象、什么是面向对象1) 万物皆对象2) 世界是由一组相互之间紧密联系的对象组成3) 通过将对象按照属性和行为共性进行分类,达到将具体事物进行抽象的效果4) 通过程序的语法表达对对象属性和行为的抽象——面向对象5) 将面向对象的思想应用于编程的过程——面向对象编程(OOP)2、 为什么要面向对象1) 面向对象的编程思想适合于大型软件的开发2) 面向对象的编程方法能够有效地提高软件开发的效率3) 借助强大的逻辑建模能力将问题域和方法域有机地统一起来4) 软件工业的发展趋势3、 怎么面向对象1) 熟练掌握至少一种面向对象语言(C++/Java/C#)2) 精通至少一种面向对象语言的元语言,如UML语言3) 深入学习设计模式和面向对象的设计方法GOF——《设计模式》—、类学生属性:姓名、年龄行为:学习类就是通过对属性和行为的抽象,描述一组对象的语法结构。类的定义class类名{};如:classStudent{};通过成员变量表达属性class类名{类型成员变量名;};如:classStudent{stringm_name;intm_age;通过成员函数表达行为class类名{返回类型成员函数名(形参表){函数体;}};如:classStudent{stringm_name;intm_age;voidlearn(conststring&lesson){}};将成员函数声明和定义分开classStudent{stringm_name;intm_age;voidlearn(conststring&lesson);};}通过访控属性约束属性和行为的访问方式公有成员:public,谁都可以访问私有成员:private,只有自己可以访问保护成员:protected,只有自己和自己的字类可以访问classStudent{private:stringm_name;intm_age;public:voidlearn(conststring&lesson){}};示例:student.cpp#include<iostream>usingnamespacestd;classStudent{public:cout<<m_age<<"岁的"<<m_name<<"同学"<<"在学<<lesson<<"o"<<endl;}voidsetName(conststring&name){if(name=="二")cout<<"error"<<endl;elsem_name=name;}voiesetAge(intage){if(age<0)cout<<"无效年龄”<<endl;elsem_age=age;}private:stringm_name;intm_age;};intmain(void){Studentstudent;student.setName("二”);student.setAge(-100);student.setName("张飞,student.setAge(25);student.learn("C++");return0;}构造函数class类名{类名(形参表):初始化表{函数体;}};初始化表可有可省略。当该类的对象被创建时,相应类型的构造函数被自动执行。创建对象的同时提供构造实参表,与构造函数的形参匹配。示例:student.cpp#include<iostream>usingnamespacestd;classStudent{public:Student(conststring&name,intage){m_name=name;m_age=age;}voidlearn(conststring&lesson){cout<<m_age<<"岁的"<<m_name<<"同学"<<"在学”<<lesson<<"o"<<endl;}private:stringm_name;intm_age;};intmain(void){/*在栈里定义对象*/Studentstudent("zhangfei",25);//括号里是构造实参,传递给student的构造函数攵/*用new在堆里面定义对象*/Student*ps=newStudent("zhaoyun”,24);ps-】earn("UNIX-C");deleteps;}1)构造函数可以重载,用参数表区分Student(conststring&name,intage){m_name=name;m_age=age;}Student(void){m_name="匿名”;m_age=0;}intmain(void){/*堆中定义对象*/调用无参构造函数Student*ps=newStudent。;//写不写小括号没关系, newStudentps->learn("标C");deleteps;/*栈中定义对象*/调用无参构造函数Students2;//不要写成Students2(),编译器会误认为函数攵声明s2.learn("标C");return0;2)缺省构造函数如果
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年临床诊疗伦理的基本原则试题
- 2025年江西省上饶市民校考试联盟物理高一下期末复习检测模拟试题含解析
- 互联网+教育:2025年数字化营销与招生策略的直播营销研究报告
- 养老政策课件
- 植物保养培训课件
- 汉中市期末联考数学试卷
- 合肥市区五下数学试卷
- 2025届云南省玉溪市第二中学高二物理第二学期期末调研试题含解析
- 海淀区五下数学试卷
- 函授本科历年数学试卷
- 江苏省苏州市苏州地区学校2024届七年级英语第二学期期末统考试题含答案
- 电商客服周工作计划
- 数据交换平台设计方案
- DL∕T 1563-2016 中压配电网可靠性评估导则
- Vericut培训教程(可修改)
- 校级课题结题报告会方案
- 基于PLC的冷却系统自整定模糊控制研究
- 栈桥专项施工方案
- 高三英语一轮复习人教版(2019)必修第一至三册一词多义和熟词生义清单
- 高温作业引发的电气事故
- 肝癌疑难病例护理讨论
评论
0/150
提交评论