面向对象是计算机认识世界的一种方式,面对于花花绿绿的世界,计算机是怎样认识这个世界呢?人类为了描述这个世界,在数学上有一种重要的数学模式,分类别。计算机是人类发明的,自然也采用这样的一种模式。这就是面向对象。。。。。。。。
计算机把信息世界分为很多个部分,每一个部分需要有共同的特征。这就像共和国的宪法一样,制定了很多规范,定义了很多概念。这里的概念,计算机把它叫做类(class)。
每一个概念都有其静态和动态的部分。例如:人的概念,静态的有年龄(int),姓名(String),性别(bool)。。。。。。。等等等等;动态的有,吃饭(吃什么,在那里吃,吃的好吗),上班(干什么,怎么去,先做什么,后作什么,今天发奖金吗,今年提职吗)等等等等。。。。。
这就是类的概念。静态的我们叫做属性,动态的我们叫做方法。即一个类包含2方面的因素:静态的成员变量(属性)和动态的成员函数(方法)。程序代码如下
class Person//class类的标识 抽象的,现实中不存的,仅为一个概念
{
public://以后在讲述
//成员变量
int Age;
bool Sex;
char Name[10];
//成员函数
void Work(int type)
{
if(type<22)
printf("我是一名学生,正在学习\n");
if(type>22)
printf("我是一名工人,为时会主义而努力奋斗\n");
}
void Eat(bool type)
{
if(type==false)
printf("建议吃减肥健美之食物\n");
if(type==true)
printf("建议吃健身增寿之食物\n");
}
};
概念是抽象的,并不是现实生活中一个个活生生的实例,计算机要描述世界,需要这样的实例,在计算机的概念里,把实例叫做对象。这就是面向对象的第一大思想,类与对象。
void main()//主函数
{
Person me;//对象 现实生活中的事务,实际存在的
me.Age=18;
me.Sex=false;
me.Name[0]='A';me.Name[1]='l';me.Name[2]='i';me.Name[3]='c';me.Name[4]='e';
Person you;//对象 现实生活中的事务,实际存在的
you.Age=30;
you.Sex=true;
you.Name[0]='B';you.Name[1]='o';you.Name[2]='b';
}
对象调用方法:
me.Work(me.Age);me.Eat(me.Sex);//对象调用方法
printf("\n");
you.Work(you.Age);you.Eat(you.Sex);
输出结果:
我是一名学生,正在学习
建议吃减肥健美之食物
我是一名工人,为时会主义而努力奋斗
建议吃健身增寿之食物
完整程序代码
class Person//class类的标识 抽象的,现实中不存的,仅为一个概念
{
public://以后在讲述
//成员变量
int Age;
bool Sex;
char Name[10];
//成员函数
void Work(int type)
{
if(type<22)
printf("我是一名学生,正在学习\n");
if(type>22)
printf("我是一名工人,为时会主义而努力奋斗\n");
}
void Eat(bool type)
{
if(type==false)
printf("建议吃减肥健美之食物\n");
if(type==true)
printf("建议吃健身增寿之食物\n");
}
};
void main()//主函数
{
Person me;//对象 现实生活中的事务,实际存在的
me.Age=18;
me.Sex=false;
me.Name[0]='A';me.Name[1]='l';me.Name[2]='i';me.Name[3]='c';me.Name[4]='e';
Person you;//对象 现实生活中的事务,实际存在的
you.Age=30;
you.Sex=true;
you.Name[0]='B';you.Name[1]='o';you.Name[2]='b';
me.Work(me.Age);me.Eat(me.Sex);//对象调用方法
printf("\n");
you.Work(you.Age);you.Eat(you.Sex);
}
当对象代表了现实生活中的实例之后,程序也就完成了描述信息的使命,纵观整个面向对象编程,程序员整天描述的问题也就是这些东西,书写一个类,声明一些对象,然后调用方法。OK,你明白了吗。
总结:这就是神秘的类与对象概念,面向对象的第一大思想。本文还提出了成员变量,成员函数的概念。关于面向对象的其它思想,且听下回分解。