论文部分内容阅读
摘要:类是具有相同属性事物的抽象,对象是类中一个具体的事物,它拥有实实在在的属性值。面向对象的出发点和基本原则是尽可能模拟人类习惯的思维方式,因此它便于理解、符合逻辑,被广大IT从业人员接受和认可。
关键词:面向对象;继承;封装;多态
中图分类号:TP311.56文献标识码:A文章编号:1007-9599 (2011) 07-0000-01
Thought of Object-oriented Programming
Liu Jian,Sun Zheng,Hu Guoyu
(Nanjing University of Posts and Telecommunications,Nanjing210046,China)
Abstract:The class is an abstract thing with the same attribute,the object is a specific class of things,it has real property values.Object-oriented principle is the starting point and basic human habits as analog way of thinking,so it is easy to understand,logically,be accepted and recognized by the majority of IT practitioners.
Keywords:Object-oriented;Inheritance;Package;Polymorphism
说到面向对象就不得不提到面向过程。它出现在面向对象之前,是一种以过程为中心的编程思想。就是分析出解决问题所需要的步骤,然后采用分支循环用函数把这些步骤一步一步实现,使用的时候一个一个依次调用就可以了。首先必须承认面向过程可以解决所有的编程问题,但是也存在着重用性差、可维护性差、开发过程复杂等缺点。面向对象(Object Oriented,OO)是当前计算机界关心的重点,它是软件开发方法的主流。下文这种对面向对象的编程模式进行探讨。
一、首先介绍面向对象的基本概念
(一)对象。对象是人们要进行研究的任何事物,从最简单的整数到复杂的飞机等均可看作对象,它不仅能表示具体的事物,还能表示抽象的规则、计划或事件。
(二)对象的状态和行为。对象具有状态,一个对象用数据值来描述它的状态。对象还有操作,用于改变对象的状态,对象及其操作就是对象的行为。对象实现了数据和操作的结合,使数据和操作封装于对象的统一体中。
(三)类。具有相同特性(数据元素)和行为(功能)的对象的抽象就是类。因此,对象的抽象是类,类的具体化就是对象,也可以说类的实例是对象,类实际上就是一种数据类型。类具有属性,它是对象的状态的抽象,用数据结构来描述类的属性。类具有操作,它是对象的行为的抽象,用操作名和实现该操作的方法来描述。
(四)消息和方法。对象之间进行通信的结构叫做消息。在对象的操作中,当一个消息发送给某个对象时,消息包含接收对象去执行某种操作的信息。发送一条消息至少要包括说明接受消息的对象名、发送给该对象的消息名(即对象名、方法名)。
二、其次看看面向对象的特点
(一)封装。封装最好理解了。封装是面向对象的特征之一,是对象和类概念的主要特性。封装,也就是把客观事物封装成抽象的类,并且类可以把自己的数据和方法只让可信的类或者对象操作,对不可信的进行信息隐藏。
(二)继承。面向对象编程(OOP)语言的一个主要功能就是“继承”。继承是指这样一种能力:它可以使用现有类的所有功能,并在无需重新编写原来的类的情况下对这些功能进行扩展。继承概念的实现方式有三类:实现继承、接口继承和可视继承。
(三)多态。多态性(polymorphisn)是允许你将父对象设置成为和一个或更多的他的子对象相等的技术,赋值之后,父对象就可以根据当前赋值给它的子对象的特性以不同的方式运作。简单的说,就是一句话:允许将子类类型的指针赋值给父类类型的指针。
实现多态,有二种方式,覆盖,重载。
覆盖,是指子类重新定义父类的虚函数的做法。
重载,是指允许存在多个同名函数,而这些函数的参数表不同(或许参数个数不同,或许参数类型不同,或许两者都不同)。
现在看看如何用面向对象的方法来解决这个问题。
建立学生实体类StudentTo其中包括如下属性
//姓名、年龄、性别、身高、学号
private String name;
private int age;
private String sex;
private String height;
private String studentID;
并提供get、set方法,有参、无参构造
在录入方法中实例化学生类对象为student,将姓名、年龄、性别、身高、学号等的属性值赋值给student,并将student传递给老师
StudentTo student=new StudentTo();
student.setName("李辉");
student.setAge(18);
student.setHeight("1.8m");
student.setSex("男");
student.setStudentID("NO.009");
老师接到传递过来的student后将学号改正后提交政教处保存
public void check(StudentTo student){
student.setStudentID("NO.010");}
政教处对学生接受到正确的学生对象后,可以从学生对象中取出姓名、年龄、性别、身高和学号备份留档。这样完整的面向对象解决问题的过程就结束了,从整个流程可以看到我们操作的一直是个实例化的对象,符合逻辑思维,减少了传递的参数,减小了出错的可能性,提升了编程的效率。
综上可以看出,面向对象操作符合人们思维习惯,它对类归纳总结,将类的成员放入对象中,大大减少了参数的传递和出错的可能。面向对象的继承、封装、多态特性也符合思维逻辑,在编程理解方面优势明显。随着时间的推移,近年来人们提出了更为先进的面向服务的概念,但是即使是面向服务也有大量面向对象的思想和影子。可以说面向对象思想直接影响了MVC编程模式,影响了人们的编程逻辑,对计算机语言的贡献无可替代。
参考文献:
[1]马光毅.面向对象方法研究[J].华南师范大学学报
[2]裴发展.OO建模与UML研究[J].河北省科学院学报
关键词:面向对象;继承;封装;多态
中图分类号:TP311.56文献标识码:A文章编号:1007-9599 (2011) 07-0000-01
Thought of Object-oriented Programming
Liu Jian,Sun Zheng,Hu Guoyu
(Nanjing University of Posts and Telecommunications,Nanjing210046,China)
Abstract:The class is an abstract thing with the same attribute,the object is a specific class of things,it has real property values.Object-oriented principle is the starting point and basic human habits as analog way of thinking,so it is easy to understand,logically,be accepted and recognized by the majority of IT practitioners.
Keywords:Object-oriented;Inheritance;Package;Polymorphism
说到面向对象就不得不提到面向过程。它出现在面向对象之前,是一种以过程为中心的编程思想。就是分析出解决问题所需要的步骤,然后采用分支循环用函数把这些步骤一步一步实现,使用的时候一个一个依次调用就可以了。首先必须承认面向过程可以解决所有的编程问题,但是也存在着重用性差、可维护性差、开发过程复杂等缺点。面向对象(Object Oriented,OO)是当前计算机界关心的重点,它是软件开发方法的主流。下文这种对面向对象的编程模式进行探讨。
一、首先介绍面向对象的基本概念
(一)对象。对象是人们要进行研究的任何事物,从最简单的整数到复杂的飞机等均可看作对象,它不仅能表示具体的事物,还能表示抽象的规则、计划或事件。
(二)对象的状态和行为。对象具有状态,一个对象用数据值来描述它的状态。对象还有操作,用于改变对象的状态,对象及其操作就是对象的行为。对象实现了数据和操作的结合,使数据和操作封装于对象的统一体中。
(三)类。具有相同特性(数据元素)和行为(功能)的对象的抽象就是类。因此,对象的抽象是类,类的具体化就是对象,也可以说类的实例是对象,类实际上就是一种数据类型。类具有属性,它是对象的状态的抽象,用数据结构来描述类的属性。类具有操作,它是对象的行为的抽象,用操作名和实现该操作的方法来描述。
(四)消息和方法。对象之间进行通信的结构叫做消息。在对象的操作中,当一个消息发送给某个对象时,消息包含接收对象去执行某种操作的信息。发送一条消息至少要包括说明接受消息的对象名、发送给该对象的消息名(即对象名、方法名)。
二、其次看看面向对象的特点
(一)封装。封装最好理解了。封装是面向对象的特征之一,是对象和类概念的主要特性。封装,也就是把客观事物封装成抽象的类,并且类可以把自己的数据和方法只让可信的类或者对象操作,对不可信的进行信息隐藏。
(二)继承。面向对象编程(OOP)语言的一个主要功能就是“继承”。继承是指这样一种能力:它可以使用现有类的所有功能,并在无需重新编写原来的类的情况下对这些功能进行扩展。继承概念的实现方式有三类:实现继承、接口继承和可视继承。
(三)多态。多态性(polymorphisn)是允许你将父对象设置成为和一个或更多的他的子对象相等的技术,赋值之后,父对象就可以根据当前赋值给它的子对象的特性以不同的方式运作。简单的说,就是一句话:允许将子类类型的指针赋值给父类类型的指针。
实现多态,有二种方式,覆盖,重载。
覆盖,是指子类重新定义父类的虚函数的做法。
重载,是指允许存在多个同名函数,而这些函数的参数表不同(或许参数个数不同,或许参数类型不同,或许两者都不同)。
现在看看如何用面向对象的方法来解决这个问题。
建立学生实体类StudentTo其中包括如下属性
//姓名、年龄、性别、身高、学号
private String name;
private int age;
private String sex;
private String height;
private String studentID;
并提供get、set方法,有参、无参构造
在录入方法中实例化学生类对象为student,将姓名、年龄、性别、身高、学号等的属性值赋值给student,并将student传递给老师
StudentTo student=new StudentTo();
student.setName("李辉");
student.setAge(18);
student.setHeight("1.8m");
student.setSex("男");
student.setStudentID("NO.009");
老师接到传递过来的student后将学号改正后提交政教处保存
public void check(StudentTo student){
student.setStudentID("NO.010");}
政教处对学生接受到正确的学生对象后,可以从学生对象中取出姓名、年龄、性别、身高和学号备份留档。这样完整的面向对象解决问题的过程就结束了,从整个流程可以看到我们操作的一直是个实例化的对象,符合逻辑思维,减少了传递的参数,减小了出错的可能性,提升了编程的效率。
综上可以看出,面向对象操作符合人们思维习惯,它对类归纳总结,将类的成员放入对象中,大大减少了参数的传递和出错的可能。面向对象的继承、封装、多态特性也符合思维逻辑,在编程理解方面优势明显。随着时间的推移,近年来人们提出了更为先进的面向服务的概念,但是即使是面向服务也有大量面向对象的思想和影子。可以说面向对象思想直接影响了MVC编程模式,影响了人们的编程逻辑,对计算机语言的贡献无可替代。
参考文献:
[1]马光毅.面向对象方法研究[J].华南师范大学学报
[2]裴发展.OO建模与UML研究[J].河北省科学院学报