今晚coding云的工作不是很忙,所以抽空出来更新下博客,就写一篇编程中关于java面向对象的文章吧。想写这篇文章的缘由如下:
今天项目中出了一点业务上的bug,由于自己很懒,于是我就吩咐自己带的小弟(刚毕业不久)去把bug修复一下。修复的过程中他用了很久也没搞定,于是我就过去指点指点,这一指点我发现坏了,这位小弟的基础那是。。。此处省略几个字吧。所以我就想写这篇文章介绍介绍自己对面向对象的理解,也能帮助自己的这位同事,以及更多的新手程序员们,当然其中如果有理解错误的地方,也希望大家能够指正。
由于昨天坐公交看到邻车拉了一车小猪,感觉很可怜,因此今天就想借猪来举个例子:
一、首先交代下我要用到的几个类:
1. ArrayList ,这个类代表它是列表,是虚指,是一个概念,可能是猪的列表,也可能是狗的,当然也可能是人的。。。
2. Pig , 这个类代表它是猪,这里指的是猪这个动物,是虚指,是一个概念,而并不是指某头猪,这里必须搞清楚
3. String , 这个类代表它是字符串,是什么字符串呢,我们不知道,我们只知道它是字符串这个概念
二、然后交代下这几个对象:
1. ArrayList pigList = new ArrayList();
这里的pigList 指的是若干头猪,被绳子牵着,一头牵着一头,排了个队。
pigList 就是一个猪的列表的对象,而ArrayList 是泛指,泛指一个列表这样的概念。
这个图可以更加形象点表示pigList,这么解释下这张图片,现在有一个列表pigList,这个列表有6头猪,分别是编号从1到6的6头猪。
2. Pig pigOne = new Pig();
这里的 pigOne 代表一头猪,这是一个具体的,真实的猪,比如上图中的编号1的猪。
相对于Pig来说,Pig是泛指的,泛指猪这个概念,这种动物。
3. String nickName= pigOne.getNickName();
这里的nickName 代表一个字符串对象,是一个具体的,真实的猪的昵称,比如您这头爱猪的昵称是“旺财”,那“旺财”这个字符串对象就是一个具体的字符串对象。
相对于String来说,String是泛指的,泛指字符串这个类。
希望上面这两段能让您直观的理解到什么叫对象,什么叫类。
三、举个程序中的方法的例子,加深下理解。
public Pig getOnePig(int index){ //利用dao层的方法从数据库获取一个猪的列表的对象,这个pigList列表对象中有6头猪 List pigList = xxxxxDao.getPigsFromDatabase(); //从这个pigList列表对象中获取编号为3的猪这个thirdPig对象,为什么是get(2),不是get(3)呢?希望你懂,不懂百度下 Pig thirdPig = pigList.get(2); //返回thirdPig这个对象,为什么不是返回pigList呢,因为我们这个方法要的是一个Pig,而不是一个List。 return thirdPig; }
四、总结
不知道是否有必要结合这个例子介绍下多态、封装、继承,他们是面向对象的三大特征,如果大家觉得这样举例比较容易理解的话,还想让我介绍面向对象的这三大特征的话,请留言哦,我会为大家继续补充本文的内容。