面向对象程序概述
什么是程序?
程序就是可以被计算机执行的用于解决问题的的一系列计算机指令
在编程过程中,有两种常见的编程思想:
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;
}
来源:CSDN
作者:star_fighting
链接:https://blog.csdn.net/star_fighting/article/details/104571879