在线客服
扫描二维码
下载博学谷APP扫描二维码
关注博学谷微信公众号
提起Java,大家都知道它是一门典型的面向对象的编程语言。但是对于面向对象,可能还有许多人并不清楚。那么面向对象是什么?有哪些特征呢?本文就来带大家好好认识一下面向对象。面向对象是一种软件的开发方法,它的特征归纳起来就是三点,即封装、继承和多态。下面是关于面向对象的深入介绍:
面向对象是什么?
面向对象程序设计是种具有对象概念的程序编程典范,同时也是一种程序开发的抽象方针。它可能包含数据、属性、代码与方法。对象则指的是类的实例。它将对象作为程序的基本单元,将程序和数据封装其中,以提高软件的重用性、灵活性和扩展性,对象里的程序可以访问及经常修改对象相关连的数据。在面向对象程序编程里,计算机程序会被设计成彼此相关的对象。面向对象的优点是易维护、易复用、易扩展。由于面向对象有封装、继承、多态性的特性,可以设计出低耦合的系统,使系统更加灵活、更加易于维护。但是它的缺点也是很明显的,像是性能比面向过程低。
面向对象有哪些特征?
1、封装:找到变化并且把它封装起来,你就可以在不影响其它部分的情况下修改或扩展被封装的变化部分,这是所有设计模式的基础,就是封装变化,因此封装的作用,就解决了程序的可扩展性。
2、继承:子类继承父类,可以继承父类的方法及属性,实现了多态以及代码的重用,因此也解决了系统的重用性和扩展性,但是继承破坏了封装,因为他是对子类开放的,修改父类会导致所有子类的改变,因此继承一定程度上又破坏了系统的可扩展性,所以继承需要慎用,只有明确的IS-A关系才能使用,同时继承在在程序开发过程中重构得到的,而不是程序设计之初就使用继承,很多面向对象开发者滥用继承,结果造成后期的代码解决不了需求的变化了。因此优先使用组合,而不是继承,是面向对象开发中一个重要的经验。
3、多态:接口的多种不同的实现方式即为多态。接口是对行为的抽象,刚才在封装提到,找到变化部分并封装起来,但是封装起来后,怎么适应接下来的变化?这正是接口的作用,接口的主要目的是为不相关的类提供通用的处理服务,我们可以想象一下。比如鸟会飞,但是超人也会飞,通过飞这个接口,我们可以让鸟和超人,都实现这个接口,这就实现了系统的可维护性,可扩展性。
以上就是面向对象的具体介绍和特征分析。在Java的学习中,面向对象是一个绕不过去的重点,如果大家还想继续了深入了解面向对象的相关知识点,可以上博学谷平台观看相关视频学习资源。
— 申请免费试学名额 —
在职想转行提升,担心学不会?根据个人情况规划学习路线,闯关式自适应学习模式保证学习效果
讲师一对一辅导,在线答疑解惑,指导就业!
相关推荐 更多
Java入门比较好的书是哪本?Java入门教材推荐
Java入门最好的书是哪本?对于刚刚入门Java的初学者而言,第一本Java入门教材必须要通俗易懂,最好能把理论知识和实战练习结合起来,而满足上述条件的书籍非《Java基础入门》莫属。《Java基础入门》是由传智播客高教产品研发部,为零基础初学者专门编著的Java学习教材。下面我们来看看这本书的详细内容吧!
5884
2019-12-05 13:09:05
Spring Cloud Alibaba微服务架构项目实战学习目标
Spring Cloud Alibaba微服务架构项目实战学习目标,通过电商项目实现理解SpringCloud 生态中主流技术的用法及原理、掌握微服务架构的实际开发方法、能够轻松投入项目开发工作,增强面试能力、握处理问题以及整体规划的思维方式。
7207
2020-06-16 11:16:31
微服务和分布式的区别什么?有什么特点?
微服务设计是为了不因为某个模块的升级和BUG影响现有的系统业务。微服务与分布式的细微差别是,微服务的应用不一定是分散在多个服务器上也可以是同一个服务器。分布式属于微服务,将模块拆分成一个独立的服务单元通过接口来实现数据的交互。分布式和微服的架构很相似,只是部署的方式不一样而已。
4356
2021-03-10 11:10:50
缓存的淘汰策略有几种方式?分别怎么用?
缓存的淘汰策略有几种方式? 缓存是将一些需要读取数据放在磁盘或者内存中,由于是追求速度从而一般放在内存中。在有些场景中无法解决读的速度,因此要使用缓存,而缓存有容量有限,若缓存满了系统会如何淘汰一些数据?
3427
2022-03-24 14:48:17
Java原子操作之CAS原子指令学习
Java原子操作之CAS,CAS(Compare and Swap),即比较并替换,是用于实现多线程同步的原子指令。
2259
2022-07-01 13:57:43