OOP 1.5 类和对象的基本概念与用法1
1、定义
- 面向对象的基本特点:抽象、封装、继承、多态
- 面向对象程序设计方法:将某类客观事物的共同特点归纳出来,形成一个数据结构
- 抽象:将事物所能进行的行为归纳出来,形成一个个函数,这些函数可以用来操作数据结构
- 通过某种语法,将数据结构和操作该数据结构的函数捆绑在一起,形成一个类
- 封装:使得数据结构和操作该数据结构的算法呈现出显而易见的紧密关系
2、实例:编写程序,输入长和宽 计算面积和周长
- 三个行为:设置长宽、计算面积、计算周长
- 三个函数封装在一起,形成一个矩形类
- 长、宽成为矩形类的成员变量,三个函数称为成员函数。成员变量和成员函数称为类的成员
- 待解决问题:class和struct的关系和区别
class CRectangle//这里的class可以用struct代替
{
public:
int w,h;
int a()
{
return w*h;
}
int p()
{
return 2*(w+h);
}
void init(int w1, int h1)
{
w=w1;h=h1;
}
};//最后要有分号
int main()
{
int w,h;cin>>w>>h;
CRectangle r;
r.init(w,h);
cout<<r.a()<<"\t"<<r.p()<<endl;
return 0;
}
3、对象的内存分配
- 和结构变量一样,对象占用内存大小等于所有成员变量大小之和
- 成员函数只占用一份存储空间,被所有对象共享,不会放入对象里面,对象只包含成员变量,不包含成员函数
4、对象间的运算
- 对象仅可以使用“=”进行赋值,不可以使用比较运算,除非重载
5、使用类的成员变量和成员函数
- 法1:对象名.成员名
e.g.Crectangle r1,r2;r1.w=5;r2.init(5,4); - 法2:指针->成员名
e.g.
Crectangle r1,r2;
Crectangle *p1=&r1;Crectangle *p2=&r2;
p1->w=5;
p2->init(5,4);
- 法3:引用名.成员名
e.g.
Crectangle r2;
Crectangle &rr=r2;
rr.y=5;
rr.init(5,4);
OOP 1.5 类和对象的基本概念与用法1的更多相关文章
- OOP 2.1 类和对象的基本概念2
1.成员函数的另一种写法:类的成员函数和类的定义分开写 e.g. class rectangle { public: int w,h; int area(); int p(); void init(i ...
- python3 类、对象的基础概念
类:具有相同特性和方法的抽象概念称为类 对象:从类中具体描述的一个事物称为对象 类和对象的关系:类是对象的抽象概念,对象是类的具体实例 class test001: #创建类 def __init__ ...
- oop面向对象【类与对象、封装、构造方法】
今日内容 1.面向对象 2.类与对象 3.三大特征——封装 4.构造方法 教学目标 1.能够理解面向对象的思想 2.能够明确类与对象关系 3.能够掌握类的定义格式 4.能够掌握创建对象格式,并访问类中 ...
- Java复习(二)类与对象的基本概念
2.1面向对象的程序设计方法概述 对象 程序中: 一切皆是对象 都具有标识,属性和行为 通过一个或多个变量来保存其状态 通过方法实现他的行为 类 将属性及行为相同或相似的对象归为一类 类可以看成是对象 ...
- PHP学习(类和对象)——基本概念
类是面向对象程序设计的基本概念,通俗的理解类就是对现实中某一个种类的东西的抽象, 比如汽车可以抽象为一个类,汽车拥有名字.轮胎.速度.重量等属性,可以有换挡.前进.后退等操作方法. 每个类的定义都以关 ...
- OC语言的面向对象—类和对象、方法
1. 面向对象和面向过程思想 OC是面向对象的,C是面向过程的.面向对象和面向过程只是解决问题的两种不同思想 1. 面向对象和面向过程的区别 1) 以用电脑听歌为例子 a) 面向过程 ➢ 打开电脑 ➢ ...
- 【类与对象】--------java基础学习第六天
类与对象 1. 对于面向对象的开发来讲也分为三个过程: OOA(面向对象分析) OOD(面向对象设计) OOP(面向对象编程) 2. 面向对象的基本特征 2.1. 封装:保护内部操作(属性,方法)不被 ...
- Java类和对象的概念
Java是一门面向对象的编程语言,理解Java,首先要理解类与对象这两个概念. Java中的类可以看做C语言中结构体的升级版.结构体是一种构造数据类型,可以包含不同的成员(变量),每个成员的数据类型可 ...
- 初识python中的类与对象
这篇博客的路线是由深入浅,所以尽管图画的花花绿绿的很好看,但是请先关注我的文字,因为初接触类的小伙伴直接看类的实现可能会觉得难度大,只要耐着性子看下去,就会有一种“拨开迷雾看未来”的感觉了. 一.py ...
随机推荐
- 关于iOS启动页launchImage无法显示解决办法
在没有美工的时候,往往项目开发到一半,才拿到icon和launchImage图片,这时在添加对应图片之后发现并没有正常显示,这就蛋疼了,以下列出几种解决方式. 关于设置launchImage: 工程配 ...
- Elasticsearch入门和查询语法分析(ik中文分词)
全文搜索现在已经是很常见的功能了,当然你也可以用mysql加Sphinx实现.但开源的Elasticsearch(简称ES)目前是全文搜索引擎的首选.目前像GitHub.维基百科都使用的是ES,它可以 ...
- 【一】Spark基础
Spark基础 什么是spark 也是一个分布式的并行计算框架 spark是下一代的map-reduce,扩展了mr的数据处理流程. Spark架构原理图解 RDD[Resilient Distrib ...
- Jlink-10 pin 的定义(stm32使用)官方定义
因为在网上找了好久才找到正确的接法,所以专门记载了下来,因为stm32芯片这几个功能引脚会内置上拉电阻,所以不需要再外接电阻了.
- CTF-安恒19年一月月赛部分writeup
CTF-安恒19年一月月赛部分writeup MISC1-赢战2019 是一道图片隐写题 linux下可以正常打开图片,首先到binwalk分析一下. 里面有东西,foremost分离一下 有一张二维 ...
- (补题 杭电 1008)Elevator
Elevator Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submi ...
- intel-FPGA的片内存储器问题
FPGA的片内有很多的存储器资源,可以配置成单端口的ROM.RAM和双端口的ROM.RAM,以及移位寄存器和FIFO等.在学习过程中,笔者遇到过几个小问题,总结如下: 片内是不是有ROM或者RAM? ...
- sed: unix与doc换行的转换
在Linux (Unix)平台下回车换行以\n表示 在Window平台下回车换行以\r\n表示 两者的差异导致了: 在window下看Linux的文本排版全乱 在Linux在看Window的文本则是存 ...
- ubuntu下pycharm快捷方式创建
终端输入:sudo gedit /usr/share/applications/Pycharm.desktop 粘贴模板: [Desktop Entry] Type=Application Name= ...
- # 20155308 2016-2017-2《Java程序设计》课堂实践项目 5月17日
20155308 2016-2017-2<Java程序设计>课堂实践项目 5/17 本次因为git出现了问题,所以没有按时提交我的代码 问题一 在IDEA中对P145 MathTool.j ...