什么是面向对象的,面向对象是啥关系,什么是面向对象概念
什么是面向对象?我们知道现代编程方法基本上都是面向对象的,那么面向对象到底是什么?面向对象和面向过程的区别是什么?
面向对象编程(英文Object Oriented Programming),所以也叫OOP。我们知道早期的计算机编程是基于面向过程的,因为早期的计算机处理的问题不是很复杂,所以一个算法,一个数据结构就能很好的解决当时的问题。然而,随着计算机技术的发展,要处理的计算机问题变得越来越复杂。为了更好的解决这个问题,出现了面向对象的编程,其中一切都是对象,把计算机里的东西比作现实生活中的同一个东西,一个对象。现实生活中所有的物体都有属性和行为,与计算机中的属性和方法(功能)相对应。当然面向对象不止有这些,这只是简单的理解,要知道任何一样东西详细的研究下去都会成为一个学科
OOP特性,实现OOP语言的三个特征
封装的多态继承目前可能还不太了解,下面就不废话了。我们直接用编程语言来看这三个特点。
现在面向对象编程的语言太多了。以下是一些常见的语言。
# c javac Python等等。这些是流行的OOP语言。
先说封装。现实生活中封装的例子太多了,就像电视机一样。你可以按遥控器换频道,也可以调节音量。但你不必关心电视机是如何实现这个过程的,你只需要使用它。然后电视就是一个包。
下面是一个返回绝对值的例子。
双Abs(双i){ //1。如果大于零,输出其小于零的倒数//2。也可以输出I的平方根号}好吧,这个Abs(双I)函数是我写的,我想给别人用,我就告诉他是求绝对值的。我可能会用第一种方法或者第二种方法来实现,但是你不用担心,你当然,因为这个函数是我自己写的,我当然知道怎么实现,别人不知道,但是别人也不需要知道,这样别人就可以更专注于自己的代码编写。
先说传承的特点。顾名思义,继承就是继承上一代的东西。继承一个对象会有它的属性和方法,你也可以扩展和添加自己的属性和方法。
下面的代码将以一种速率使用java。
Class//class关键字是定义一个类。一个类可以理解为一个对象{ int I=2;//一个对象有I属性public void sum (inti1,inti 2){ I=i1 I2;//并且有求和方法(对象的行为)。}}我们再定义一个B对象,让它继承A对象。
类扩展a//extends关键字表示继承自a对象{//此时B对象拥有a .//的所有属性和方法并且还可以扩展B对象本身的乘法行为。public void multiply(int i1){ I=I * i1;//此时对象B可以访问对象a的属性A. } }这就是面向对象的继承特性,可以增加代码的复用性、可扩展性和可修改性。想扩展功能不用重写整个对象,只要继承写新的属性,方法就好了。你会发现一些OOP语言的类库文档充满了继承的特性,比如java和C#,官方的OOP类库,你会看到类之间有一个完整的层次结构,它们相互继承,相互依赖。
最后一个特征多态性,因为多态性要以继承为基础,所以写在最后。多态仅仅意味着可以重写继承对象的方法。最常用的例子是ToString()方法。我们可以知道每个类(对象)都有ToString()方法,通常用来输出对象的字符串信息。
这里有一个例子。
class//定义年龄{ int yearpublic toString(){//输出age的字符串}}然后我们定义一个人类,继承age,age有age的属性。我们创建了一个新的名称属性来表示人类。
类人类扩展年龄{ string name//重写父对象的ToString()方法,使该方法可以输出名称名称公共字符串ToString(){ retrunthis . name//output name } }由于父对象的方法不能满足子对象的要求,所以在子对象中重写父对象的方法,以满足子对象输出名称的要求。多态性,顾名思义,有很多种形式,多态性也体现了灵活性。多态可以替换现有的代码。多态也可以说是父对象提供一个接口,然后让每个子类根据实际情况来完善它。
以上只是对OOP三大重要特性的简单描述,俏皮路人无才。请理解。当然,OOP编程不仅仅是这些东西,更多的是需要在实践中去理解,去锻炼,去发现。OOP是一种编程思想,没有人敢说思想这种东西可以完全理解。这是需要一生去学习的东西。
(扫上面的二维码,或者微信搜索“科学技术工作室”)
这是我的个人微信官方账号。有什么有趣的东西和技术文章我都分享给你。同时也希望大家一起学习。
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。