面向对象程序概述

时间秒杀一切 提交于 2020-03-01 06:07:30

面向对象程序概述

什么是程序?

程序就是可以被计算机执行的用于解决问题的的一系列计算机指令

在编程过程中,有两种常见的编程思想

1、面向过程编程思想(代表语言:C)

面向过程是一种自上而下的设计方式,编程过程为:
1》获得用户输入的数据
2》对数据进行运算并做出某种决策
3》在屏幕显示计算结果

2、面向对象编程思想(C++、Java等等)

面向对象首先需要将问题分解成各个对象,从对象的属性和行为,以及对象之间的关系进行分析

**区别:**面向过程是一种按照编程语言的思路思考问题,而面向对象是一种抽象度比较高的编程方法,它的目标使模块的抽象度更高,可复用性好;

在面对对象编程中,有三大特征:

1》封装:把数据和操作数据的函数组织在一起,使得程序更加紧密,提高了类内部数据的安全性;
2》继承:增强了软件的可扩充性,以及代码的重用性;
3》多态:使得设计人员在设计程序过程中可以更好对问题进行更好的抽象,有利于代码的维护和可重用;

对象: 什么是对象呢,任意一个对象都包括属性和行为;其中属性用于描述客观事物的静态特征,名词,而行为表示事务的动态特征;eg:人*(person),他的属性就包括姓名、性别、身高、体重等,行为就包括走路、说话、打招呼、学习和工作等;

类: 类是对客观世界中具有相同属性和行为的一组对象的抽象,它为属于该类的全部对象提供了统一的抽象描述,其内容包括属性和行为

类是对象的抽象描述,而对象是类的具体实例;

接下来就说说编程的东西,如何声明一个类?
·····简单来说类就是具有相同属性和操作对象的一个集合,因此一个类应该由两部分组成,属性(成员变量)和操作(对成员变量进行操作的函数)

eg:我们要声明一个点,那么点(point)的属性有横坐标(float x)和竖坐标(float y);
操作的函数就是对x(setX(float x))和y(setY(float y))进行修改的函数,以及移动某个点的move(float x,float y)的函数,用于输出x和y值的pointprint()的函数;

#include <iostream>
using namespace std;
//改变x的值
void setX(float& a){}
//改变y的值
void setY(float& b){}
//移动点的坐标
void Move(float& a,float& b){}
//打印函数
void pointprint(float a,float b){}	
int main()
{
	//对点进行定义
	float x;
	float y;
	//对点进行操作
	scanf("%d %d",x,y);
	setX(2);
	Move(3,3);
	pointprint(x,y);
	return 0;
}

具体实现:

#include <iostream>

using namespace std;

class Point
{
private:		//私有成员变量
	float x;
	float y;
public:			//公有的成员函数
	//Point::作用域的符号
	void setX(float a);
	void setY(float b);
	void Move(float a,float b);
	void pointprint();
};
/*函数可以直接在类内实现,也可以在类外实现
但是要在函数名前加一个类作用域的符号*/
//改变x的值
void Point::setX(float a){
	x=a;	
}
//改变y的值
void Point::setY(float b){
	y=b;
}
//移动点的坐标
void Point::Move(float a,float b){
	x=a;
	y=b;
}
//打印函数
void Point::pointprint(){
	cout<<"("<<x<<','<<y<<")"<<endl;
}	
int main()
{
	Point p;
	p.setX(1);
	p.setY(1);
	p.pointprint();
	p.Move(2,2);
	p.pointprint();
	return 0;
}
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!