- 1、本文档共37页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
[理学]java编程思想教案-2011上本部-5-last-liyue
* 自动装箱 Integer integer = new Integer(10); Integer integer = 10; int i = 10; Integer integer = I; Number number = 3.14f; java.lang.Number类 * 自动拆箱 将对象中的基本数据形态信息从对象中自动取出。 Integer fooInteger = 10; int fooPrimitive = fooInteger; fooInteger变量在自动装箱为Integer的实例后,如果被指定给一个int类型的变量fooPrimitive,则会自动变为int类型,再指定给fooPrimitive。 * 自动拆箱(2) Integer i = 10; System.out.println(i + 10); System.out.println(i++); 运算时也能自动装箱与拆箱 Boolean boo = true; System.out.println(boo false); * 自动装箱+自动拆箱 编译器在编译时依据语法,决定是否进行装箱或拆箱动作。 Integer integer = 10; Integer integer = new Integer(10); Integer i = null; int j = i; Integer i = null; int j = i.intvalue(); * ? i1 = i2 * ? i1 !S= i2 * 自动装箱+自动拆箱 -128~127:装箱为Integer对象后,会在内存中被重用; AuboxDemo2中== 比较,i1和i2实际上参考至同一个对象; 超过-128~127:装箱为Integer对象后,不会在内存中被重用,即每次装箱时都新建一个Integer对象; AuboxDemo3中== 比较,i1和i2参考至不同一个对象; * 李 粤 liyue@scut.edu.cn JAVA 程序设计 教程 第 四 讲 第七章(续)+复习+自动装箱拆箱 学习目标 掌握Final类,掌握主要方法的作用 温故 理解自动装箱+自动拆箱 * * 7.3.3final(1) final关键字 这是无法改变的; 适用范围:数据、方法和类 对基本数据类型而言,数值恒定不变; 对对象而言,引用恒定不变; * final(2) final数据 一个永不改变的编译时常量 常量必须是基本数据类型; 常量必须赋值; 可以在编译时执行包含该常量的计算式。 一个在运行时被初始化的值,不希望被改变; 对象 恒定应用不变; 对象的数据本身可以修改; 数组也是一种对象。 static+final意味着只占据一个不能改变的存储空间,变量名全部大写,并用下划线分割各个单词; * * final(3) 空白Final 被声明为final但又没给定初值的数据。 但是数据在被使用前必须被初始化。 一个类中的final域可以做到根据对象而又所不同,却又保持其恒定不变的特性。 * * final(4) final参数 允许在参数列表中以声明的方式将参数指明为final; 无法在方法中更改参数引用所指向的对象; * * final(5) final方法 为啥用: 锁定方法。防止任何继承类修改它的含义,即改方法不能被覆盖。 Private方法都隐式地指定为final。 private方法加final是多余。 * final(6) final类 该类不允许被继承,或者说不允许该类有子类(或导出类); * * ??? 初始化温故环节 * * * * * 初始化顺序总结(1) 初始化顺序 静态定义初始化(包括静态块) ; 非静态定义初始化; 构造器初始化; 变量定义的初始化在任何方法(包括构造器)被调用前。 一个类只初始化一次 * * * * 初始化顺序总结(2) 初始化顺序 编译时就初始化主类的静态定义(包括静态块); 执行主类的main方法 声明主类对象 依次初始化非静态定义和构造器; 声明其他类对象 依次初始化静态定义、非静态定义和构造器; 一个类只初始化一次 * 初始化顺序总结-继承(3) 初始化顺序 编译时先初始化主类的基类的静态定义(包括静态块),再初始化主类的; 执行主类的main方法 声明主类对象 先依次初始化主类的基类的非静态定义和构造器,再初始化主类的; 声明其他类对象 先依次初始化其他类的基类的静态定义、非静态定义和构造器,再初始化其他类; * * WHAT——JAVA(6) 2004~至今 JDK的壮年期 2004.10 JDK1.5 - J2SE5.0 易用(相对复杂) 加了诸如泛型、增强的for语句、可变数目参数、注释(Annotations)、自动拆箱(unboxin
文档评论(0)