A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 侯丛政 中级黑马   /  2013-2-7 08:30  /  1845 人查看  /  13 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 侯丛政 于 2013-2-8 08:09 编辑

看张老师的视频时不理解为什么定义集合的时候大多数用接口引用指向   

比如List<String> list = new ArrayList<String>();     

为什么不直接写    ArrayList<String> list = new ArrayList<String>();   呢?

有什么用意吗?
  

评分

参与人数 1技术分 +1 收起 理由
冯海霞 + 1

查看全部评分

13 个回复

倒序浏览
为了面向接口编程嘛,以后右边也可以用别的集合而左边的类型不用改。只要是都继承List接口就可以。

评分

参与人数 1技术分 +1 收起 理由
冯海霞 + 1

查看全部评分

回复 使用道具 举报
面向接口的一个最大好处,在于提高程序的拓展性,方便程序的更改维护。就如你说的这个例子。当这个程序要使用Linklist时,即:List<String> list = new LinkList<String>(),因为接口的方法,实现的类都有,所以不需要改其他代码,只需把ArrayList<String>()改为LinkList<String>()就可以了!

评分

参与人数 1技术分 +1 收起 理由
冯海霞 + 1

查看全部评分

回复 使用道具 举报
本帖最后由 夏振博 于 2013-2-8 01:14 编辑

这是一种设计模式.一个接口有多种实现,这种写法是java面向对象的一种思想,去除了耦合。
这种方式是使用接口引用指向具体实现,这样大大提高了代码使用的灵活性。
你若希望用LinkedList的实现来替代ArrayList的话,只需改动一行即可,而程序中的其它部分不需要改动,这样比较灵活,不会失去通用性。
不过有的时候,你如果能确定后边用的全部是ArrayList,可以使用ArrayList
回复 使用道具 举报
夏振博 发表于 2013-2-8 01:12
这是一种设计模式.一个接口有多种实现,这种写法是java面向对象的一种思想,去除了耦合。
这种方式是使用接 ...

讲的很清楚   谢谢
回复 使用道具 举报
用一种语言开发软件,首先需要有支持这种语言的环境。一种语言环境就是使用这种语言的支持,有了语言环境,就可以通过这种语言开发软件让计算机识别和执行。
回复 使用道具 举报
java语言的环境搭建就是安装JDK(Java Development Kit java开发工具包),这个工具包里包含了JRE(java运行环境),如果单是运行一个java程序,只需安装JRE即可。
回复 使用道具 举报
JDK的下载地址是:www.oracle.com
也可以使用老的程序员不能忘记的地址:www.sun.com
回复 使用道具 举报
JRE(Java Runtime Environment java运行环境),包括java虚拟机(JVM),和java程序所需的核心类库等,如果只需运行一个开发好的java程序,计算机中只需安装JRE即可。
回复 使用道具 举报
JDK(java开发工具包),是提供给java开发人员使用的,包含了java开发工具(如,javac.exe和jar.exe等),同时也包含了JRE。
回复 使用道具 举报
我们在安装java开发环境时,只需安装JDK,不需要再次安装JRE,因为JDK中包含了JRE。当然也可以再次安装JRE。
回复 使用道具 举报
安装java开发环境很简单,其实就是一个解压缩的过程。希望大家能顺利通过。
安装好了JDK后,这还不算搭建好java开发环境,还需要配置path环境变量,在JDK1.4之前版本还需要配置classpath环境变量。
回复 使用道具 举报
java语言的开发环境搭建完成后,我们就可以进行java语言的开发了。
回复 使用道具 举报
    这就是面向接口编程啊,也就是只要是这个接口下的实现类都能实例化这个接口,
也是降低耦合的一种表现,以后我们如果不想用ArrayList集合,想用LinkedList或
是Vector也是可以的啊。
    程序的维护也是很重要的啊,不能把程序写成死的,为以后维护增加困难和成本。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马