《Java 2实用教程》(第5版)(清华大学出版社)作者:张跃平、耿祥义习题答案详解

  •      **此答案与详解是本人做作业时所写部分答案,如有错误之处请指出 **
    

习题2
1.问答题
(3) 逻辑类型,boolean
整数类型,int,byte,short,long
字符类型,char
浮点类型,float,double
(4) float类型,常量的后面必须要有后缀f或F
double类型,后面可以有后缀d或D,允许省略
(5) 可以使用length,数组名.length的值就是数组中元素的个数。对于二维数组,数组名.length的值是它含有的一维数组的个数。
2.选择题
(1) C,标识符不能是ture,不能是default关键字,没有-。
(2) ADF,B选项带有小数点默认为double型,C选项未带F或f,E选项d是double的。
(3) B,从’\u0000’到’\uffff’,在Unicode表上对应的位置是0~65535。
(4) BE,B为转义字符,‘\u1234’\u只能有四位。
(5) [代码2][代码3][代码4][代码5],x为int型b是byte型,long型不可以转化为int型,double型不可以转化为long型,6.89是double型。
(6) B,没有初始化的数组值不为1。
3.阅读或调试程序
(4)
数组b的长度:4
b[0]=1
(5)
40
7
习题3
1.问答题
(2) 不可以。
(3) boolean。
(4) 不必须。
(5) 跳出while,不再进行循环。
2.选择题
(1) A,B是double型,C是int型两个精度低于int型的字符运算结果为int型,D是字符型。
(2) C,已经初始化m=10,在赋值为0会出现错误。
(3) C,x为int型。
3.阅读或调试程序
(1) 你,苹,甜
你在Unicode中的位置数字大于A,所以x输出为你,y输出为苹,z又被赋为甜。
(2) Jeep好好
i=1,输出J,i=2,输出e,跳出switch,再次进入for,输出e,i=3,输出p,i=4,输出好,i自增1,输出好。
(3) x=-5,y=-1
循环六次x=-5,y从0再自减1,变为-1。
习题4
1.问答题
(1) 封装性、继承、多态
(2)
1.如果类名使用拉丁字母,那么名字的首字母使用大写字母,如Hello等。
2.类名最好容易识别、见名知意。当类名由几个“单词”符合而成时,每个首字母应大写,如ChinaMade、AmericanVehicle、WaterLake等(驼峰习惯)。
(3) 变量:
1.一行只声明一个变量。利于给代码增添注释。
2.变量的名字除了符合标识符规定外,名字的首单词的首字母使用小写,如果变量的名字由多个单词组成,从第2个单词开始的单词的首字母使用大写(驼峰习惯)。
3.变量名字见名知意,避免使用诸如m1、n1等作为变量的名字,尤其是名字中不要讲小写的英文字母l与数字1相邻,很难区分。
方法:必须符合标识符规定,给方法命名的习惯和给变量命名的习惯相同。
(4) 对象的属性
(5) 对象的行为
(6) 对类创建的对象进行初始化,没有类型。
(7) 在new运算符之后。
(8) 重载的意思是一个类中可以有多个方法具有相同的名字,但这些方法的参数个数或类型不同。构造函数也可以重载。
(9) 实例方法可以操作类变量。类方法不可以操作实例变量,这是因为在类创建对象之前,实例变量成员还没有分配内存。
(10) 不可以,在创建实例后,类中的实例方法才有了入口地址。
(11) 类变量是与类相关联的变量,改变其中一个对象的这个类变量就同时改变了其他对象的这个类变量,类变量可以通过某个对象访问也可以直接通过类名访问。
实例变量与对象相关联,不同对象的实例变量互补相同,分配不同的内存空间,对象的实例变量可以通过该对象访问,但不能使用类名访问。
(12) this关键字就代表正在调用该方法当前对象,不可以出现在类方法中。因为类方法就是方便在不创建对象的情况下调用,所以不能使用this。
2.选择题
(1) B,java源文件类可以放在一起也可以不放在一起,A错。有多个类必须有一个主类,有main方法才有入口可以运行,B对。不是必须含有主类,有些小程序不需要主类,C错。也不是必须声明为public,D错。
(2) D,局部变量和成员变量的名字可以相同用this关键字来区分,A错。在类中写方法时,如果参数列表的名称和已经声明的变量的名称相同时,类生成的对象调用此方法并传入新的参数,这时方法会优先读取类中已经声明的同名变量,这样对象调用方法不管传入什么参数一直都显示的是类中的变量。同一作用域下不允许有相同类型且同名的变量。方法的参数和方法中声明的变量是同在该方法的作用域中的,B错。成员变量有默认值,局部变量没有,C错,D对。
(3) D,只有一个有参构造方法,A错,C错。int Hello()方法没有错误,B错。Hello只有一个构造方法,构造方法是没有类型的,构造方法名必须和类名相同,故hello()不是构造方法,但他又没有类型,不符合普通方法的规定,所以编译会发生错误,D对。
(4) D,有两个构造方法互为重载,A对。有两个Dog()方法互为重载,B对。两个构造方法均有参数,C对。D错。
(5) CD,子类可能会破坏封装性,同包中都可以访问,protected常用来修饰方法,C错。类只可以由public或默认修饰,D错。
(6) 【代码1】、【代码4】,x为Tom类中的私有数据成员不可以在类A中被访问,f()为私有方法不可以在A中调用。
(7) 【代码4】,没有为局部变量m赋初值不可以进行运算。
3.阅读程序
(1)
【代码1】1 ,新建的redFish对象为Fish类初始weight为1。
【代码2】 121 ,在调用Lake类中的foodFish()方法,为其传值增加了120,red.weight变为121。
【代码3】121 ,redFish就是Lake中新建的fish,所以weight也为121。
(2) sum=-100,this关键字的用法,x传值-100,y为初始值200-200后为0,相加为-100。
(1) 27,类变量是被所有创建的对象共享的,在b1.getSum累加得出6后,b2.getSum为6+1+2+3+4+5=27。
(1) 【代码1】100,【代码2】20.0,函数的重载第一个调用两个参数都为int的方法,第二个调用参数为int和double的方法。
(5) 在给参数传值个数不定时,可以使用可变参数。
(6) 主类的静态块最先执行,然后是其他类,然后是main方法中创建对象之后。

习题5
1.问答题
(1) 不能。
(2) 是。
(3) 不能。
(4)
在子类中定义一个新的与要隐藏的成员变量同名的变量。
(5) 要与父类的方法名,参数类型个数都相同,返回类型与父类相同或者是父类的方法的类型的子类型。重写方法的目的是隐藏继承的方法,子类通过方法的重写可以把父类的状态和行为改变为自身的状态和行为。
(6) final修饰的方法是最终方法,不可以被子类重写。
(7) 抽象类。
(8) 上转型对象只是引用的类型是父类型,对象实例还是子类。“转型”后的对象只能访问父类定义的方法或是变量。
(9) 各自重写与父类的同名的方法,实现各自类似但不同的行为。
**(10)**面向抽象编程目的是为了应对用户需求的变化,核心是让类中每种可能的变化对应地交给抽象类的一个子类类去负责,从而让该类的设计者不去关心具体实现。
**2.**选择题
(1) C,子类不可以覆盖和继承父类的构造方法,只能调用,A错。abstract类的子类可以说抽象类,B错。子类重写或新增的方法要通过super关键字访问被子类隐藏的变量,D错。
(2) D,static会使方法成为整个类所公有的方法,要有具体的的实现,而abstract修饰的抽象类,只有声明,在子类中具体实现,D对。
(3) CD,money为Father类私有数据成员不可以在类E中访问,子类中覆盖的height类型为int型,不可以赋float型的数值,C、D错。
(4) D。
(5) B,子类不可以重写父类的静态方法,但可以继承,如果在子类中写了与父类同名的静态方法,它与父类中的静态方法是没有任何关系的两个完全不同的方法,B错。
(6) B,不可以用abstract和static同时修饰一个方法,B错。
(7) D,子类重写的方法修饰要大于父类。
(8) B,A可以为重写的方法,C、D可以是子类新定义的方法,B会提示重新的方法与父类返回类型不同,B错。
(9) A,子类B不显示的调用父类的构造方法,默认调用无参的构造方法,父类中没有无参的构造方法就会出错。
3.阅读程序
(1)
【代码1】 15.0 ,调用子类新定义的方法。
【代码2】 8.0 ,调用从父类继承的方法。
(2)
【代码1】 11 ,调用类A中的的方法。
【代码2】 110 ,上转型对象调用的一定是子类重写的方法。
(3)
【代码1】 98.0 ,调用子类重写的f()方法。
【代码2】 12 ,调用子类重写的g()方法。
【代码3】 98.0,上转型对象也是调用子类重写的f()方法。
【代码4】 9 ,上转型调用父类的静态方法,子类不可能重写父类的静态方法,与子类中的而静态方法没有任何关系。
(4)
【代码1】 120,上转型对象访问的是被隐藏的m。
【代码2】 120,上转型对象调用的一定是子类重写的方法,m也是b.m=20。
【代码3】 -100,子类继承的seeM()方法操作的是被子类隐藏的m。

习题6
1.问答题
(1) 不能,默认public abstract final修饰。
(2) 可以,默认public abstract修饰。
(3) 可以把实现某一接口的类创建的对象的引用赋给该接口声明的接口变量中。那么该接口变量就可以调用接口中的方法。
(4) 不可以。
(5) 可以。
2.选择题
(1) D,一个类可以实现多个接口,A错。抽象类不需要实现接口中的全部方法,B错。必须全部重写,C错。
(2) AB,接口中的方法初始化为public abstract final,A错。不可以用abstract和static同时修饰一个方法,B错。
(3) A,要显示的声明public,B错。返回类型与接口中方法不同,C错。非抽象不可以有抽象方法,D错。
3.阅读程序
(1)
【代码1】 15.0,接口回调,调用类B中实现的方法。
【代码2】 8,调用类B中g()方法。
(2)
【代码1】 18,接口回调,调用类B中add()的方法。
【代码2】 15,调用类B中add()方法。

习题7
1.问答题
(1) 有效
(2) 可以
(3) 不可以
(4)
2.选择题
(1) C,内部类中不可以声明静态方法与变量。
(2) C,匿名类一定要实现类中的方法或接口,A错,C对。和接口有关的匿名类可以额外实现某个指定接口,B错。匿名类是内部类不可以在类体中声明静态成员变量,D错。
**3.**阅读或调试程序
(1) 大家好,祝工作顺利!
(2) p是接口变量
(3) 你好
**fine thanks
(4)**我是红牛

习题8
2.选择题
(1) A,String类在java.lang包中,B错。“abc”=="abc"的值是true,C错。D选项值是false,D错。
(2) B,float型不可转化为int,A错。int型不可以赋给byte型变量,会产生编译错误,C错。应为Float.parseFloat(“2.9”);,D错。
(3) B,strOne赋给sreTwo,输出结果为bird,B对。
(4) D,应输出game,B错。运行会异常,C错。Args[3]对应为3。
(5) C,\d代表0-9任意的数字,A对。12、567均被@替换,B对。new Date(1000)对象含有的时间是公元后1000s,C错。
3.阅读或调试程序
**(1)**苹果,没有将modify函数更改后的字符串传给main方法。
**(2)**love:Game,s[1]的字符为Love,s[4]为Game。
(3)【代码1】15 【代码2】abc我们,字母占1字节,汉字2字节,所以从0-7位置是abc我们。
**(4)**13579,从i = 0开始将13579组成新字符串并返回输出。
**(5)**9javaHello,0-9的数字任意一个java和除美元符号外的标识符至少出现1次,所以与str2是匹配的。


《Java 2实用教程》(第5版)(清华大学出版社)作者:张跃平、耿祥义习题答案详解相关推荐

  1. C++Primer第五版——习题答案+详解(完整版)

     C++Primer第五版--习题答案详解 新手入门必看的书.知识是一个系统化并且相互关联的体系,零散的东西每天收获如果不形成自己的体系的话,那将是毫无意义的,所以我觉得有必要将这本书先啃一遍,消化其 ...

  2. C++Primer第五版——习题答案详解

     C++Primer第五版--习题答案详解 新手入门必看的书.知识是一个系统化并且相互关联的体系,零散的东西每天收获如果不形成自己的体系的话,那将是毫无意义的,所以我觉得有必要将这本书先啃一遍,消化其 ...

  3. 《Python程序设计与算法基础教程(第二版)》江红 余青松,第九章课后习题答案

    推荐阅读 <Python程序设计与算法基础教程(第二版)>江红 余青松 全部章节的课后习题,上机实践,课后答案,案例研究 文章目录 例9.1~例9.53 填空题:2 思考题:3~11 上机 ...

  4. 《Python程序设计与算法基础教程(第二版)》江红 余青松,第十章课后习题答案

    推荐阅读 <Python程序设计与算法基础教程(第二版)>江红 余青松 全部章节的课后习题,上机实践,课后答案,案例研究 文章目录 上机实践:2~4 案例研究:基于模块的库存管理系统 上机 ...

  5. java程序设计实用教程第4版_Java程序设计实用教程(第4版)

    第1章 Java概述 1.1 了解Java 1.1.1 Java的诞生和发展 1.1.2 Java的特点 1.1.3 Java核心技术 1.1.4 Application应用 1.2 JDK 1.2. ...

  6. python基础实例教程 微课版-清华大学出版社-图书详情-《Python基础入门-微课视频版》...

    前言 Python语言自从20世纪90年代初诞生至今,逐渐被广泛应用于处理系统管理任务和科学计算,是最受欢迎的程序设计语言之一. 学习编程是工程专业学生学习的重要部分.除了直接的应用外,学习编程还是了 ...

  7. JAVA大学实用教程(第四版)课后习题三、四章答案(自整理)

    第三章 1.下列System.out.printf输出的结果是什么? int a=100, x,y; x=++a; y=a-- System.out.printf("%d, %d,%d&qu ...

  8. JAVA大学实用教程(第四版)课后习题一、二章答案及解析(自整理)

    第一章 2."java编译器将源文件编译生成的字节码文件是机器码"这句话正确吗? 答:不正确 解析: java中,字节码是CPU构架(JVM)的具有可移植性的机器语言.机器码(ma ...

  9. 《Java 核心技术卷1 第10版》学习笔记------ 控制可见性的4个访问修饰符详解

    1 ) 仅对本类可见 private. 2 ) 对所有类可见 public: 3 ) 对本包和所有子类[含非直系]可见 protected. 4 ) 对本包可见-默认(很遗憾,) 不需要修饰符. 这里 ...

最新文章

  1. 自考计算机英语答题技巧,自考英语题型答题技巧-自考英语写作
  2. MyEclipse Tomcat jar包问题
  3. Linux下配置LVM
  4. ricky java photos_【Melee】Ricky blog updates and new photos
  5. 【转】第01课:生活中的监听模式——一坑爹的热水器
  6. java技术学习内容_Java开发主要都学些什么内容?
  7. openwrt是嵌入式linux,非常方便的OpenWrt的嵌入式Linux开发环境
  8. Mybatis源码分析之(一)搭建一个mybatis框架(写一个mybatis的Demo)
  9. 小动画制作 图片盒子配合定时器 winform 114869633
  10. SpringBoot : Spring Boot中使用数据缓存 spring-boot-starter-cache
  11. 华为P40pro 手机云台_国产新旗舰华为P40Pro喜欢这款手机吗?
  12. dubbo几种协议_Dubbo面试(简)
  13. mssql 数据库“查询处理器用尽了内部资源,无法生成查询计划。”问题的处理...
  14. html不使用cache数据
  15. 学习《医学三字经白话解》之咳嗽+疟疾+痢证
  16. opencv的学习与人脸情绪识别项目(一)
  17. ABAP 内表操作备忘 刘欣
  18. Linux杀毒软件之ClamAV
  19. 排列型枚举(座次问题)
  20. [渝粤教育] 西南科技大学 财务管理与分析 在线考试复习资料(1)

热门文章

  1. brit打印日志的问题
  2. 台式机win10系统根本就没有调节屏幕亮度选项怎么办?
  3. 国外期刊投稿、审稿过程以及常用术语
  4. 翻译:How To Ask Questions The Smart Way(提问的智慧)
  5. 日记侠:什么都没有,如何撬动朋友圈高端人脉?
  6. 海德汉AELC281/AELC211/AELC291F/AELB382C/LB302ID315420-04/03 445断线报警和针脚定义
  7. 高压MOSFET控制器简化非隔离开关的设计
  8. UniApp+Vue3.2+ts实现请求API配置
  9. 如何使用迅雷下载百度云中的大文件
  10. mysql多表查询面试题_SQL面试题:多表查询》练习题答案