面向对象语言其实就是面对的自己的对象编程,哈哈哈,开玩笑。
面向对象语言(Object-Oriented Language)缩写为POP,是一类以对象作为基本程序结构单位的程序设计语言,指用于描述的设计是以对象为核心,而对象是程序运行时刻的基本成分。
简单点解释就是面向对象语言,就是一个以对象作为编程单位的程序设计语言,什么叫对象呢?就是把一个小功能拆解为多个对象,比如把一个实现计算器的功能可以拆解为,普通计算器对象、多功能计算器对象、科学计算器对象。
要拆解为对象的首要任务就是要创建一个类,什么又是类呢?
类是现实世界或思维世界中的实体在计算机中的反映,它将数据以及这些数据上的操作封装在一起。
就像人类,可以有吃饭,走路,睡觉等行为,但是具体的不同的人吃饭的方式、走路的姿势、睡觉的时间都可以不同,这就可以产生不同的对象。
不同的人就是这个人类的具体对象,面向对象的思想就是把人类这个大的类的一些共同的行为抽象出来,然后创建不同的具体对象实现不同的行为。
比如,可以把计算器中的算术运算抽象为一个计算类,这个类包含输入、输出、加减乘除等运算。
然后创建一个类的实例也就是类的对象,使用对象操作类的具体行为,类是对象的抽象,对象是类的具体实现。
C++是典型的面向对象编程语言,它 是由 Bjarne Stroustrup 于 1979 年在新泽西州美利山贝尔实验室开始设计开发的。
C++ 进一步扩充和完善了 C 语言,最初命名为带类的C,后来在 1983 年更名为 C++。
它是一种静态类型的、编译式的、通用的、大小写敏感的、不规则的编程语言,支持过程化编程、面向对象编程和泛型编程。
它也被认为是一种中级语言,它综合了高级语言和低级语言的特点。
如以下代码是用C++实现一个简单的计算器功能:
#include <iostream>
using namespace std;
class Calculator//声明类类型
{
public://先声明公用部分
void Display()//根据输入的运算符,调用不同的类函数计算结果并且输出
{
switch(op)
{
case '+':
Add(num1,num2);
break;
case '-':
Sub(num1,num2);
break;
case '*':
Multi(num1,num2);
break;
case '/':
Division(num1,num2);
break;
default:
// 如果运算符不是 +, -, * 或 /, 提示错误信息
cout << "Error! 请输入正确运算符。";
break;
}
cout<<"sum:"<<sum<<endl;
}
void InputNum()//接收输入函数
{
cout << "输入两个数: ";
cin >> num1 >> num2;
cout << "输入运算符:+、-、*、/ : ";
cin >> op;
}
void Add(double a,double b)//加法函数
{
sum = a+b;
}
void Sub(double a,double b)//减法函数
{
sum = a-b;
}
void Multi(double a,double b)//乘法函数
{
sum = a-b;
}
void Division(double a,double b)//除法函数
{
sum = a/b;
}
private://后声明私有部分
double num1;
double num2;
double sum;
char op;
};
int main()
{
Calculator *c=new Calculator();//创建一个计算器对象
c->InputNum();//调用输入函数
c->Display();//计算并输出
return 0;
}
上面就是一个简单的用面向对象的思想实现的计算器,虽然略显复杂,但主要是为了体现类和对象的思想。
类中的成员函数和成员变量都是属于具体对象的,也就是说当你new了一个对象之后,所调用的函数或者变量的值都是属于这个对象所特有的。
如果新建另一个对象,那你使用这个对象调用的输入函数所输入的值就是这个对象所有的。
不同的对象有相同的函数和变量,但是子对象函数可以是不同的行为,变量可以是不同的值。
这些都可以在面向对象的四大特性封装、抽象、继承、多态中体现出来。