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 ...
随机推荐
- Red Hat 7.5 Yum Replacement
This system is not registered with an entitlement server. You can use subscription-manager to regist ...
- MongoDB模糊查询 工具
{"Exception":{$regex:"定时发送邮件"}} //模糊查询条件 {"DateTime":-1} // ...
- 使用tp3.2和mbUploadify.js上传图片的代码,记录一下
HTML: <div class="form-group"> <label class="col-sm-1 control-label no-paddi ...
- Hadoop源码学习笔记之NameNode启动场景流程二:http server启动源码剖析
NameNodeHttpServer启动源码剖析,这一部分主要按以下步骤进行: 一.源码调用分析 二.伪代码调用流程梳理 三.http server服务流程图解 第一步,源码调用分析 前一篇文章已经锁 ...
- 实验吧 Fair Play
知识点:playfair密码以前没见过 Playfair密码(英文:Playfair cipher 或 Playfair square)是一种使用一个关键词方格来加密字符对的加密法,1854年由查尔斯 ...
- 中国大学MOOC-JAVA学习(浙大翁恺)—— 温度转换
import java.util.Scanner; public class Main { public static void main(String[] args) { // TODO Auto- ...
- C语言编程练习 GPS数据处理
题目内容: NMEA-0183协议是为了在不同的GPS(全球定位系统)导航设备中建立统一的BTCM(海事无线电技术委员会)标准,由美国国家海洋电子协会(NMEA-The National Marine ...
- 和IDEA一样好用的go语言IDE:Goland
因为IDEA和Goland来自同一家非常有名的捷克公司:JetBrains 很好用,智能化程度高 最新版下载地址:http://www.jetbrains.com/go/?fromMenu 相关使用手 ...
- 记账本app(1)
今天开始做做这个app了,加油,目前在看视频,明天正式入手
- 20155230 2016-2017-2 《Java程序设计》第十周学习总结
20155230 2016-2017-2 <Java程序设计>第十周学习总结 教材学习内容总结 网络编程:就是在两个或两个以上的设备(例如计算机)之间传输数据.程序员所作的事情就是把数据发 ...