当前位置:首页 > 教程 > 正文

什么是Java OOP?

2019-10-24 14:41 点击:15次 作者:biucz 我来投稿

众所周知,Java是纯面向对象编程的一门语言,然而这就造成很多Java Programmer自以为自己随随便便写出来的代码就是面向对象编程的结晶。

我们以一个简单的案例来切入主题:“人吃饭”。

什么是Java OOP?

面向对象编程我们需要注意一下几点:

要围绕对象来展开一系列的活动

对象应该具备什么,不应该具备什么(也就是与生俱来与后天养成)

1.生活中的人吃饭

吃这个动作是与生俱来的,天生的,而不是后天学习的(用筷子吃饭是后天学习)。所以说,如果拆分“人吃饭”,就是“人”–“吃”–“饭”。

2.Coding中的人吃饭

在“生活中的人吃饭”的基础上,我们进一步进行分析。根据“人”–“吃”–“饭”,我们知道,Coding的时候,我们需要一个Person类,用来承载人的基本属性特征,那么吃这个动作呢?我们先不说答案,先看看我见到过的一种代码书写:

EatUtil.eat(Person person,Food food)

既然是面向对象的高级语言,那也就是说很贴切于人的自然语言,那么,我们就用自然语言来翻译一下上面的代码:“吃”–“人”–“饭”。我去,什么逻辑???

看到这里,想必读者都有自己的答案了吧?

很显然,吃这个动作,我们应该安放到Person类里面,也就是Person#eat,人拥有吃这个动作。那么人吃饭就可以表示为:

person.eat(food)

是不是这样更为合理些呢?

可能你会说,我们有时候需要纯净无暇的和table of DB完全一对一的entity对象,按照上面的设计就不合理了。那么,作为Java Programmer,应该知道BO,VO,DTO,DAO等等这些概念吧?!所以,举个栗子,我们可以通过PersonBo(Person)#eat,也就是说:

view sourceprint?

class PersonBo extends Person{

public void eat(Food food){

//to be done...

}

}