囚牢中的MQ的博客

码云的愿心:希望广大程序猿朋友摘掉苦逼的昵称

java

编程中的面向对象思想

今晚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;
}

四、总结

不知道是否有必要结合这个例子介绍下多态、封装、继承,他们是面向对象的三大特征,如果大家觉得这样举例比较容易理解的话,还想让我介绍面向对象的这三大特征的话,请留言哦,我会为大家继续补充本文的内容。


(转载本站原创文章请注明作者与出处Coding云--codingyun.com)

囚牢中的MQ的博客:

功能开发中...。