您所在位置: 网站首页 / 文档列表 / Java / 文档详情
Java编程思想持有对象.pptx 立即下载
上传人:王子****青蛙 上传时间:2024-09-09 格式:PPTX 页数:101 大小:287KB 金币:6 举报 版权申诉
预览加载中,请您耐心等待几秒...

Java编程思想持有对象.pptx

Java编程思想持有对象.pptx

预览

免费试读已结束,剩余 91 页请下载文档后查看

6 金币

下载文档

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

一、为什么要引入容器类?2、数组是编译器支持的类型,很高效,但不够灵活(固定大小和固定类型)★这带来一个问题:在写程序时,你并不知道将需要多少个对象,或者是否需要更复杂的方式来存储对象3、Java内库提供一套相当完整的容器类来解决这些问题★例如:List、Set、Queue和Map◆在这些容器类中,Java提供了许多非常有用的工具1、泛型(Generics)的概念★泛型是指通过参数化类型,使代码适用于许许多多的类型◆复习:C++中的类模板2、使用预定义的泛型★典例分析:ArrayList<Apple>apples◆仔细分析该代码的完整含义★典例分析:ArrayList<Apple>apples1、首先分析:ArrayListapples◆inti;//声明一个整型变量i◆ArrayListapples;//声明一个ArrayList类的对象apples2、其次,我们注意到:◆在Java中,所有对对象的操纵都必须通过引用◆所以,声明一个ArrayList类的对象apples更准确的描述应该是:声明一个指向ArrayList类对象的引用apples3、最后,完整分析:ArrayList<Apple>apples◆声明一个指向ArrayList类对象的引用apples◆而该ArrayList容器用来保存Apple对象★//下面是完整程序,参见P217classApple{…}classOrange{…}publicclassApplesWithGenerics{publicstaticvoidmain(String[]args){★ArrayList<Apple>apples=newArrayList<Apple>();★new关键字的重要作用:⑴申请存储空间⑵创建对象并使用构造函数初始化⑶返回指向该对象的一个引用★for(inti=0;i<3;i++)apples.add(newApple));★类型安全是指不能加入其它类型⑴可以任意添加Apple对象⑵但是不能添加Orange对象★JavaSE5之前的容器存在的问题:◆以前容器保存的是Object对象,所以编译时允许向容器中添加不正确的类型◆但这会产生运行时异常★JavaSE5引入泛型(Generics),可以解决这个问题,泛型机制将运行时异常转变为编译时错误★归纳:使用泛型的优点⑴编译器可以检查放置到容器中的对象类型⑵使用容器中的对象时,可以使用更加清晰的语法(例如:不需要强制转型,更清晰的使用foreach)⑶向上转型也可以在泛型中很好的工作★//使用传统的语法for(inti=0;i<apples.size();i++)print(apples.get(i)…);//使用更为方便的Foreach语法for(Applec:apples)print(…);}}1、Collection家族和Map家族★Map接口:一组成对的键值对对象◆Map是强大的编程工具,也称为字典,因为你可以使用键对象来查找值对象2、使用接口的一般方式★创建一个具体类的对象,将其向上转型为对应的接口,然后在其余的代码中都使用这个接口★典例分析:List<Apple>apples=newLinkedList<apple>()1、首先分析:Listapples◆声明一个指向实现了List接口的类对象的引用apples◆简称为:声明一个指向List接口的引用apples★典例分析:List<Apple>apples=newLinkedList<apple>()2、其次分析:List<Apple>apples◆声明一个指向List接口的引用apples◆该List容器用来保存Apple对象★典例分析:List<Apple>apples=newLinkedList<apple>()3、再其次分析:=newLinkedList<apple>()◆申请存储空间◆创建对象并使用构造函数初始化◆返回指向该对象的一个引用★典例分析:List<Apple>apples=newLinkedList<apple>()4、最后,综合分析和归纳如下:◆创建对象并返回对该对象的引用◆将该引用(所指向的对象)向上转型为:指向List接口的引用(所指向的对象)★特别提醒:这种方式并非总能奏效,因为某些类具有额外的功能◆例如:LinkedList具有在List接口中并未包含的额外方法◆所以,如果你需要使用这些方法,就不能将它们向上转型为更通用的接口★//完整的程序,参见P219publicclassSimpl
单篇购买
VIP会员(1亿+VIP文档免费下)

扫码即表示接受《下载须知》

Java编程思想持有对象

文档大小:287KB

限时特价:扫码查看

• 请登录后再进行扫码购买
• 使用微信/支付宝扫码注册及付费下载,详阅 用户协议 隐私政策
• 如已在其他页面进行付款,请刷新当前页面重试
• 付费购买成功后,此文档可永久免费下载
年会员
99.0
¥199.0

6亿VIP文档任选,共次下载特权。

已优惠

微信/支付宝扫码完成支付,可开具发票

VIP尽享专属权益

VIP文档免费下载

赠送VIP文档免费下载次数

阅读免打扰

去除文档详情页间广告

专属身份标识

尊贵的VIP专属身份标识

高级客服

一对一高级客服服务

多端互通

电脑端/手机端权益通用

手机号注册 用户名注册
我已阅读并接受《用户协议》《隐私政策》
已有账号?立即登录
我已阅读并接受《用户协议》《隐私政策》
已有账号?立即登录
登录
手机号登录 微信扫码登录
微信扫一扫登录 账号密码登录

首次登录需关注“豆柴文库”公众号

新用户注册
VIP会员(1亿+VIP文档免费下)
年会员
99.0
¥199.0

6亿VIP文档任选,共次下载特权。

已优惠

微信/支付宝扫码完成支付,可开具发票

VIP尽享专属权益

VIP文档免费下载

赠送VIP文档免费下载次数

阅读免打扰

去除文档详情页间广告

专属身份标识

尊贵的VIP专属身份标识

高级客服

一对一高级客服服务

多端互通

电脑端/手机端权益通用