




已阅读5页,还剩2页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
一、关于Switch 代码: Java代码 1. publicclassTestSwitch2. publicstaticvoidmain(Stringargs)3. inti=2;4. switch(i)5. case1:6. System.out.println(1);7. case2:8. System.out.println(2);9. case3:10. System.out.println(3);11. default:12. System.out.println(4);13. 14. 15. public class TestSwitch public static void main(String args) int i = 2;switch (i) case 1:System.out.println(1);case 2:System.out.println(2);case 3:System.out.println(3);default:System.out.println(4);结果: 2 3 4 分析: 少了break;所以2以下的case和default都执行了一遍。 二、Equals和=运算符 代码: Java代码 1. publicstaticvoidtest()2. Stringx=hello;3. Stringy=world;4. Stringz=newString(helloworld);5. Stringa=helloworld;6. System.out.println(x+yequalsz:+(x+y).equals(z);7. System.out.println(a=z:+(a=z);8. System.out.println(x=hello:+(x=hello);9. System.out.println(a=helloworld:+(a=hello+world);10. System.out.println(a=x+y:+(a=(x+y);11. public static void test() String x = hello;String y = world;String z = new String(helloworld);String a = helloworld;System.out.println(x+y equals z: + (x + y).equals(z);System.out.println(a = z: + (a = z);System.out.println(x = hello: + (x = hello);System.out.println(a = helloworld: + (a = hello + world);System.out.println(a = x+y: + (a = (x + y);结果: x+y equals z:true a = z:false x = hello:true a = helloworld:true a = x+y:false 分析: 1.String.equals()方法比较的是字符串的内容,所以(x + y).equals(z)为true. 2.“=”比较的是 String 实例的引用,很明显 a 和z 并不是同一个 String 实例,所以(a = z)为false. 3.根据常量池的知识,容易得知(x = hello)和(a = hello + world)都为true. (常量池指的是在编译期被确定并被保存在已编译的.class 文件中的一些数据。它包含了 关于方法、类、接口等,当然还有字符串常量的信息。也就是所谓的持久代。) 4.那么(a = (x + y)为什么是false呢?这点暂点有点不大清楚。初步认为是x+y是引用相加,不能放入常量池。 三、Override覆盖 代码: Java代码 1. publicclassParent2. 3. publicstaticStringsay()4. returnparentstaticsay;5. 6. 7. publicStringsay2()8. returnparentsay;9. 10. 11. 12. publicclassChildextendsParent13. publicstaticStringsay()14. returnchildstaticsay;15. 16. 17. publicStringsay2()18. returnchildsay;19. 20. 21. 22. /*23. *author子弹哥24. *25. */26. publicclassOverrideTest27. 28. publicstaticvoidmain(Stringargs)29. Parentp=newChild();30. System.out.println(p.say();31. System.out.println(p.say2();32. 33. 34. 35. public class Parent public static String say() return parent static say;public String say2() return parent say;public class Child extends Parent public static String say() return child static say;public String say2() return child say;/* * author 子弹哥 * */public class OverrideTest public static void main(String args) Parent p = new Child();System.out.println(p.say();System.out.println(p.say2();结果: parent static say child say 分析: 1.我们创建了一个Parent类的实例。变量 p 的数据类型为 Parent 类 但是它仍旧是 Child 类的一个实例。因为Child类覆盖了Parent类的方法say2(),所以p.say2()调用为子类的方法。 2.为什么p.say()却是调用父类Parent的方法呢?因为Java中规定“实例方法被覆盖,静态方法被隐藏”. 关于Override的一些规则: 用子类的静态方法隐藏父类中同样标识的实例方法是不合法的,编译器将会报错; 用子类的实例方法覆盖父类中同样标识的静态方法也是不合法的,编译器同样会报错; 带关键字 final的方法(静态和实例方法)都不能被覆盖; 实例方法能够被覆盖; 抽象方法必须在具体类中被覆盖。 四、Java强类型 代码: Java代码 1. /*2. *author子弹哥3. *4. */5. publicclassType6. 7. publicstaticvoidmain(Stringargs)8. doublei=5.0;9. doublej=1/4+3/4+i+12/6.0+3/4+1/4;10. System.out.println(j);11. 12. 13. /* * author 子弹哥 * */public class Type public static void main(String args) double i = 5.0;double j = 1 / 4 + 3 / 4 + i + 12 / 6.0 + 3 / 4 + 1 / 4;System.out.println(j);结果: 7.0 分析: Java 是强类型的 strongly type,它支持8 种基本数据类型。通过对这些基本数据类型用法的严格检查 Java 编译器能够及时地在开发过程中捕捉到许多简单细微的错误。基本数据类型的转换可以隐性地发生,所以转换时会有精度损失。由于1/4和3/4发生隐性类型转 换,精度损失,不会生成0.25和0.75,所以有分号的数都为0。 五、假构造函数 代码: Java代码 1. /*2. *author子弹哥3. *4. */5. publicclassConstructor6. 7. privateinta,b,c;8. 9. publicvoidConstructor()10. a=3;11. b=5;12. c=a+b;13. 14. 15. publicvoidtest()16. System.out.println(Thevalueofc:+c);17. 18. 19. publicstaticvoidmain(Stringargs)20. Constructorc=newConstructor();21. c.test();22. 23. /* * author 子弹哥 * */public class Constructor private int a, b, c;public void Constructor() a = 3;b = 5;c = a + b;public void test() System.out.println(The value of c : + c);public static void main(String args) Constructor c = new Constructor();c.test();结果: The value of c :0 分析: public void Constructor()并不是一个真正的构造函数,而是一个方法。所以c的值为默认值0. 六、提前引用 代码: Java代码 1. /*2. *author子弹哥3. *4. */5. publicclassForwardReference6. 7. staticintfirst=test();8. staticintsecond=2;9. 10. staticinttest()11. returnsecond;12. 13. 14. publicstaticvoidmain(Stringargs)15. System.out.println(first=+first);16. 17. 18. /* * author 子弹哥 * */public class ForwardReference static int first = test();static int second = 2;static int test() return second;public static void main(String args) System.out.println(first = + first);结果: first = 0 分析: 由于在初始化second之前test方法就访问了它,那么方法得到的是second的默认值,即 0。 因此输出结果first= 0,而不是2。假如你使用方法调用来初始化静态变量,那么你必须保证 这些方法并不依赖于在它们之后声明的其它静态变量。静态变量以及静态初始化块是在类被加载进 JVM 时执行初始化操作的。Java 语言规范8.5节指出“静态初始化块和静态变量是按照其在代码中出现的顺序依次执行初始化操作的,而不能在类变量声明出现之前就引用它”。 七、对象引用 代码: Java代码 1. /*2. *author子弹哥3. *4. */5. publicclassTestRef6. 7. publicstaticvoidmain(Stringargs)8. StringBuffera=newStringBuffer(a);9. StringBufferb=newStringBuffer(b);10. append(a,b);11. System.out.println(a.toString()+,+b.toString();12. b=a;13. System.out.println(a.toString()+,+b.toString();14. 15. 16. publicstaticvoidappend(StringBuffera,StringBufferb)17. a.append(b);18. b=a;19. 20. /* * author 子弹哥 * */public class TestRef public static void main(String args) StringBuffer a = new StringBuffer(a);StringBuffer b = new StringBuffer(b);append(a, b);System.out.println(a.toString() + , + b.toString();b = a;System.out.println(a.toString() + , + b.toString();public static void append(Stri
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 网络游戏服务器测试机柜租赁与设备升级服务合同
- 建筑工程知识产权许可与侵权纠纷解决协议
- 工业厂房门窗加固与高效密封系统建设协议
- 展商参展安全责任协议及风险预防
- 抖音短视频内容创作者内容审核规范协议
- 生物质能源专利技术转移及项目实施合作协议
- 乡村振兴基金份额分割及赎回操作协议
- 网络直播设备采购、升级与全面维护服务协议
- 矿产投资顾问合同(含矿产资源投资咨询与实施)
- 消防安全教材版权授权合作框架协议
- 达美乐比萨线上整合营销规划方案
- 水泥产品生产许可证实施细则
- 德意志意识形态
- YY/T 1778.1-2021医疗应用中呼吸气体通路生物相容性评价第1部分:风险管理过程中的评价与试验
- GB/T 20041.21-2008电缆管理用导管系统第21部分:刚性导管系统的特殊要求
- GB/T 14054-1993辐射防护用固定式X、γ辐射剂量率仪、报警装置和监测仪
- 《马克思主义发展史》第六章 毛泽东思想是马克思主义在中国发展的第一个重大成果
- 粤教版地理七年级下册全册课件
- 工商企业管理专业模拟实训报告
- 八年级英语15篇完形填空(附答案)
- 会宝岭选矿厂集中控制技术方案
评论
0/150
提交评论