编程语言
首页 > 编程语言> > java面试题:什么是面向对象?谈谈你对面向对象的理解

java面试题:什么是面向对象?谈谈你对面向对象的理解

作者:互联网

文章目录


一、从解决问题的方向上来看面向过程和面向对象?

要想讲清楚什么是面向对象,就不得不提面向过程,它们是两种不同的处理问题的角度
面向过程更注重事情的每一个步骤及顺序,面向对象更注重事情有哪些参与者(对象),以及各自需要做些什么
以洗衣机洗衣服这件事为例,
面向过程会将任务拆解成一些列的步骤(函数),1.打开洗衣机-------》2.放衣服----》3.放洗衣粉-------》4.清洗----------》5.烘干
面向对象会拆出人和洗衣机两个对象:
人: 打开洗衣机 放衣服 放洗衣粉
洗衣机: 清洗 烘干
从这个例子不难看出,面向过程比较直接高效,而面向对象更易于复用、扩展和维护

二、面向对象的三大特性

封装: 封装的意义,在于明确标识出允许外部使用的所有成员函数和数据项
内部细节对于外部调用透明,外部调用无需修改或者关心内部实现

  1. javabean的属性私有,提供get和set方法供外部访问,因为属性的赋值或者获取逻辑只能有JavaBean本身决定。而不能有外部胡乱修改
private String name;
public void setName(String name){
	//该name有自己特定的命名规则,明显不能由外部直接赋值
	this.name = "my_"+name;
}
  1. orm框架。操作数据库,我们并不需要关心链接如何建立的,sql是如何执行的,只需要引入mybatis框架,一切细节都已经封装在其中,使用者只需要调用对应方法即可。

继承: 继承基类的方法,并作出自己的改变和扩展
子类共性的方法或者属性直接使用父类的,而不需要自己定义,只需要扩展自己个性化的

多态: 基于对象所属类的不同,外部对于同一个方法的调用,实际执行的逻辑不同。
继承,方法重写,父类引用指向子类对象

父类类型 变量名 = new 子类对象;
变量名.方法名();

注:无法通过多态来调用子类特有的方法

标签:面试题,java,name,外部,子类,洗衣机,面向对象,面向
来源: https://blog.csdn.net/a121597302/article/details/117305969