初学者浅谈JAVA中的面向对象编程

2023-02-18  本文已影响0人  看繁星

面向过程与面向对象:

        上学期学习了C语言,面向过程编程。就是要把解决问题的步骤分析出来,然后一步步地去实现,再逐一去调用,从而解决整个问题。而JAVA中地面向对象编程,将问题分成多个对象,对象往往更加贴近生活,它包括对象的属性和行为,能够更加便利高效的去解决问题。

        举个栗子,在面向过程的角度看。如果你想吃橘子,那你就需要用不同的方法去实现你吃到橘子的这个过程步骤---出门→坐车(步行)→超市→挑选橘子→付钱→回家→拿出橘子→剥皮→吃。可以看出这是一个非常详细但又复杂的过程。而在面向对象的角度看。如果想吃橘子--叫外卖员送到家→吃。把外卖员作为一个对象,你只需要创建外卖员这个对象,并赋予它买橘子所有步骤的行为,而你利用对象来解决问题,会更加高效方便。

        但是有人会说,面向对象时对象的构造依然要像面向过程一样,一步步实现买橘子的行为啊,并没有所优化复杂程度啊?其实面向对象中对象是可以重复利用的。比如,你今天早上想吃橘子,于是点了一个外卖员(编写了一个能够给你买东西并送到家的对象),但如果你不想吃橘子了?想吃回锅肉呢?是否需要再编写一个买回锅肉这样的对象呢?答案是不用。而面向过程,就必须修改步骤,甚至重写编写。可以发现,面向过程编程,它的步骤往往只能对解决这一个问题服务,而面向对象,对象的通用性较强,可以对多个问题起到作用。

对象的定义:

        对象就是存在的具体实体,具有明确的属性和行为,用来描述现实世界中的实体,是完成特定任务的一个封装,是面向对象编程的核心。

面向对象的三大特性:

封装:

        封装就是把对象所对应的属性和行为封装成抽象的类,并可以只允许(private私有的方式)自己可信的类或对象进行调用和操作,由此也衍生标准javabean的写法。

        那么作为面向对象的一大特性,它有怎么样的好处呢?首先对于私有的成员属性,其它外部类无法通过变量名.变量属性的方式进行直接修改,提高了数据的安全性。其次,多个调用者在使用时,直接获得已经封装好的对象,然后调用对应的方法即可。最后,封装后的数据调用者是不可见的,调用者只需调用方法即可,对数据实现了隐藏。

继承:

        继承机制是面向对象编程的一个不可缺少的特性。类与类之间通过实现继承关系,大大减少了代码的繁杂度,提高了系统的可扩展性和可维护性。JAVA中被继承的类叫做父类或基类,继承的类叫做子类,派生类。 通过子父继承(关键词extends)的方式,可以实现通过子类直接访问父类中的非私有的属性和行为,即使是私有的属性和行为也有对应的方法去调用。简而言之,继承机制的存在让程序员之间的交接工作更加方便,让对象与对象之间产生了有机联系,抽象看来却更加符合我们的现实生活,实物与实物之间都有着共同点和相似点。父类集相同点与一身,而子类则具备自身的特点。

多态:

        所谓多态就是在程序中一个引用变量到底会指向哪个类的实例对象,该引用变量发出的方法调用到底是哪个类中实现的方法,无法在编写此程序时确定,那么通过多态,将一个类可以通过多个不同表现形式来进行在方法中的实现(一般为其父类),来解决这种不确定问题。举个栗子,一些左邻右舍,他们一般可能不是很熟悉你叫什么名字,但是却很熟悉你的父亲叫什么,那么当他们想要提到你的时候,他们就往往会说“XXX的孩子可聪明了”,这种方式来提及,其实“XXX的孩子”就是你名字的一种多态表现形式。JAVA实现多态有三个必要条件,继承、重写、向上转型。因为这篇文章只是浅谈JAVA面向对象编程的思想,暂不涉及具体代码实现和解析,所以对于向上转型这个重要的知识点就暂不详细展开说了。

        除此之外在面向对象还有接口、抽象类、内部类等等,这里就不展开说了,以后会再逐一深入详解。最后这篇文章到这里就结束了,第一次写简书,时间匆忙,写的实在时不太好,望大佬们多多包涵(鞠躬)。

上一篇 下一篇

猜你喜欢

热点阅读