Java语言程序设计(郑莉)第五章课后习题答案

合集下载

解析JAVA程序设计方案第五章课后答案

解析JAVA程序设计方案第五章课后答案

第5章习题解答1.流的主要特征有哪些,用流来实现JAVA中的输入输出有什么优点?答:一是单向性,即数据只能从数据源流向数据宿:二是顺序性,先从数据源流出的数据一左比后流出的数据先到达数据宿:三是数据流必须而且只能和一个数据源与一个数据宿相连。

优点是体现了面向对象程序设计的概念,通过流可以把对不同类型的输入/输出设备的操作统一为用流来实现。

2.对字廿流和字符流进行读写操作的一般步骤是什么?答:声明流对象,创建流对象,通过流对象进行读(写)操作,关闭流对象。

3.有哪些常用的字节流和字符流,他们的主要区别是什么?答:InputStream/OutputStrem:普通字iT 流,所有字I'J流的基类。

FilelnputStream/ FileOutputStream :用于从文件中读写数据。

BufferedlnputStream/ BufferedOutputStream:用于从缓冲区输入流中读写数据。

采用缓冲区流可减少实际上从外部输入设备上读写数据的次数,从而提高效率。

DatalnputStream/ DataOutputStream:按读写数据对象的大小从字节流中读写数据,而不是象其它字节流那样以字节为基本单位。

PipedlnputStream/ PipedOutputStream:管道输流用于从另一个线程中读写数据。

4.么是异常?说明Java中的异常处理机制?试述JAVA中异常的抛出和传递过程?答:异常是程序设计语言提供的一种机制,它用于在程序运行中的非常规情况下,控制程序对非常规情况进合理的处理。

Java提供了try-catch-finally语句来对异常进行处理。

先按照正常顺序执行try子句中的语句,若在执行过程中出现异常,则try子句中还未被执行的语句将再也不会被执行。

而程序控制立即转移到catch子句,将发生的异常与catch子句中的异常进行匹配,若找到一个匹配,就执行该catch子句中的语句。

Java程序设计课后练习答案

Java程序设计课后练习答案

《J a v a程序设计》课后练习答案第一章Java概述一、选择题1.( A )是在Dos命令提示符下编译Java程序的命令,( B )是运行Java程序的命令。

A.javacB.javaC.javadocD.javaw2.( D )不是Java程序中有效的注释符号。

A.//B.C.D.3.(A.B.C.D.4.JavaA.B.C.D.5.JavaA.1、JavaJava(JVM)Java以下图展示了Java程序从编译到最后运行的完整过程。

2、简述Java语言的特点Java具有以下特点:1)、简单性Java语言的语法规则和C语言非常相似,只有很少一部分不同于C语言,并且Java还舍弃了C语言中复杂的数据类型(如:指针和结构体),因此很容易入门和掌握。

2)、可靠性和安全性Java从源代码到最终运行经历了一次编译和一次解释,每次都有进行检查,比其它只进行一次编译检查的编程语言具有更高的可靠性和安全性。

3)、面向对象Java是一种完全面向的编程语言,因此它具有面向对象编程语言都拥有的封装、继承和多态三大特点。

4)、平台无关和解释执行Java语言的一个非常重要的特点就是平台无关性。

它是指用Java编写的应用程序编译后不用修改就可在不同的操作系统平台上运行。

Java之所以能平台无关,主要是依靠Java虚拟机(JVM)来实现的。

Java编译器将Java源代码文件编译后生成字节码文件(一种与操作系统无关的二进制文件)5)、6)、Java来。

1、/****/}}第二章Java语法基础一、选择题1.下面哪个单词是Java语言的关键字( B )?A. DoubleB. thisC. stringD. bool2.下面属于Java关键字的是( D )。

A. NULLB. IFC. DoD. goto3.在启动Java应用程序时可以通过main( )方法一次性地传递多个参数。

如果传递的参数有多个,可以用空格将这些参数分割;如果某一个参数本身包含空格,可以使用( B )把整个参数引起来。

java语言程序设计课后习题答案解析

java语言程序设计课后习题答案解析

习题23.使用“= =”对相同内容的字符串进行比较,看会产生什么样的结果。

答:首先创建一个字符串变量有两种方式:String str = new String("abc");String str = "abc";使用“= =”会因为创建的形式不同而产生不同的结果:String str1 = "abc";String str2 = "abc";System.out.println(str1= =str2); //trueString str1 = new String("abc"); String str2 = "abc";System.out.println(str1= =str2); //falseString str1 = new String("abc"); String str2 = new String("abc"); System.out.println(str1= =str2); //false因此自符串如果是对内容进行比较,使用equals方法比较可靠。

String str1 = "abc";String str2 = "abc";System.out.println(str1= =str2); //trueString str1 = new String("abc"); String str2 = "abc";System.out.println(str1.equals(str2)); //trueString str1 = new String("abc"); String str2 = new String("abc"); System.out.println(str1.equals(str2)); //true5.编写一个程序,把变量n的初始值设置为1678,然后利用除法运算和取余运算把变量的每位数字都提出来并打印,输出结果为:n=1678。

《Java程序设计》教材第五章练习题答案

《Java程序设计》教材第五章练习题答案

习题一、选择题1. 面向对象程序设计的基本特征是(BCD)。

(多选)A.抽象B.封装C.继承D.多态2.下面关于类的说法正确的是(ACD)。

(多选)A.类是Java 语言中的一种复合数据类型。

B.类中包含数据变量和方法。

C.类是对所有具有一定共性的对象的抽象。

D.Java 语言的类只支持单继承。

上机指导1.设计银行项目中的注册银行用户基本信息的类,包括账户卡号、姓名、身份证号、联系电话、家庭住址。

要求是一个标准Java类(数据私有,提供seter/getter),然后提供一个toString方法打印该银行用户的信息。

答:源代码请参见“CH05_LAB\src\com\inspur\ch05\BankUser.java”2.设计银行项目中的帐户信息,包括帐户卡号、密码、存款,要求如“练习题1”。

答:源代码请参见“CH05_LAB\src\com\inspur\ch05\Account.java”3.设计银行项目中的管理员类,包括用户名和密码。

要求如“练习题1”。

答:源代码请参见“CH05_LAB\src\com\inspur\ch05\Manager.java”4.创建一个Rectangle类。

添加两个属性width、height,分别表示宽度和高度,添加计算矩形的周长和面积的方法。

测试输出一个矩形的周长和面积。

答:源代码请参见“CH05_LAB\src\com\inspur\ch05\Rectangle.java”5.猜数字游戏:一个类A有一个成员变量v,有一个初值100。

定义一个类,对A类的成员变量v进行猜。

如果大了则提示大了,小了则提示小了。

等于则提示猜测成功。

答:源代码请参见“CH05_LAB\src\com\inspur\ch05\Guess.java”6.编写一个Java程序,模拟一个简单的计算器。

定义名为Computer的类,其中两个整型数据成员num1和num1,编写构造方法,赋予num1和num2初始值,再为该类定义加、减、乘、除等公有方法,分别对两个成员变量执行加减乘除的运算。

《Java语言程序设计:基础篇》课后复习题答案-第五章

《Java语言程序设计:基础篇》课后复习题答案-第五章

Chapter5Methods1.At least three benefits:(1)Reuse code;(2)Reduce complexity;(3)Easy to maintain.See the Sections5.2and5.3on how to declare and invoke methods.What is thesubtle difference between“defining a method”and“declaring a variable”?A declaration usually involvesallocating memory to store a variable,but a definitiondoesn’t.2.void3.Yes.return(num1>num2)?num1:num2;4.True:a call to a method with a void return type is always a statement itself.False:a call to a value-returning method is always a component of an expression.5.A syntax error occurs if a return statement is not used to return a value in a value-returning method.You can have a return statement in a void method,whichsimply exits the method.But a return statement cannot return a value such asreturn x+y in a void method.6.See Section5.2.puting a sales commission given the sales amount and the commission ratepublic static double getCommission(double salesAmount,doublecommissionRate)Printing a calendar for a monthpublic static void printCalendar(int month,int year)Computing a square rootpublic static double sqrt(double value)Testing whether a number is even and return true if it ispublic static boolean isEven(int value)Printing a message for a specified number of timespublic static void printMessage(String message,int times)Computing the monthly payment,given the loan amount,number of years,and annual interest rate.public static double monthlyPayment(double loan,intnumberOfYears,double annualInterestRate)Finding the corresponding uppercase letter given a lowercase letter.public static char getUpperCase(char letter)8.Line2:method1is not defined correctly.It does not have a return type or void.Line2:type int should be declared for parameter m.Line7:parameter type for n should be double to match method2(3.4).Line11:if(n<0)should be removed in method,otherwise a compile error is reported.9.public class Test{public static double xMethod(double i,double j){ while(i<j){j--;}return j;}}10.You pass actual parameters by passing the right type of value in the right order.The actual parameter can have the same name as its formal parameter.11."Pass by value"is to pass a copy of the value to the method.(A)The output of the program is0,because the variable max is not changed byinvoking the method max.(B)224248248162481632248163264(C)Before the call,variable times is3n=3Welcome to Java!n=2Welcome to Java!n=1Welcome to Java!After the call,variable times is3(D)12121421i is 512.Just before max is invoked.Space required for the main methodmax: 0Just entering max.Space required for the max methodmax: 0value2: 2 value1: 1Just before max is returnedSpace required for the main methodmax: 0Space required for the max methodmax: 2value2: 2 value1: 1 Space required for the main methodmax: 0Space required for the main methodmax: 0Right after max is returned13.Two methods with the same name,defined in the same class,is called method overloading.It is fine to have same method name,but different parameter types.You cannot overload methods based on return type,or modifiers.14.Methods public static void method(int x)and public static int method(int y)have the same signature method(int).15.Line 7:int n =1is wrong since n is already declared in the method signature.16.True17.(a)34+(int)(Math.random()*(55–34))(b)(int)(Math.random()*1000)(c)5.5+(Math.random()*(55.5–5.5))(d)(char)(‘a’+(Math.random()*(‘z’–‘a’+1))18.Math.sqrt(4)= 2.0Math.sin(2*Math.PI)=0Math.cos(2*Math.PI)=1Math.pow(2,2)= 4.0Math.log(Math.E)=1Math.exp(1)= 2.718Math.max(2,Math.min(3,4))=3 Math.rint(-2.5)=-2.0Math.ceil(-2.5)=-2.0Math.floor(-2.5)=-3.0Math.round(-2.5f)=-2Math.round(-2.5)=-2Math.rint(2.5)= 2.0Math.ceil(2.5)= 3.0Math.floor(2.5)= 2.0Math.round(2.5f)=3Math.round(-2.5)=-2Math.round(Math.abs(-2.5))=3。

Java语言程序设计课后习题答案全集

Java语言程序设计课后习题答案全集

Java语言程序设计课后习题答案全集Java语言程序设计是一门广泛应用于软件开发领域的编程语言,随着其应用范围的不断扩大,对于掌握Java编程技巧的需求也逐渐增加。

为了帮助读者更好地掌握Java编程,本文将提供Java语言程序设计课后习题的全集答案,供读者参考。

一、基础知识题1. 代码中的注释是什么作用?如何使用注释.答:注释在代码中是用来解释或者说明代码的功能或用途的语句,编译器在编译代码时会自动忽略注释。

在Java中,有三种注释的方式:- 单行注释:使用"// " 可以在代码的一行中加入注释。

- 多行注释:使用"/* */" 可以在多行中添加注释。

- 文档注释:使用"/** */" 可以添加方法或类的文档注释。

2. 什么是Java的数据类型?请列举常见的数据类型。

答:Java的数据类型用来指定变量的类型,常见的数据类型有:- 基本数据类型:包括整型(byte、short、int、long)、浮点型(float、double)、字符型(char)、布尔型(boolean)。

- 引用数据类型:包括类(class)、接口(interface)、数组(array)等。

二、代码编写题1. 编写Java程序,输入两个整数,求和并输出结果。

答:```javaimport java.util.Scanner;public class SumCalculator {public static void main(String[] args) {Scanner scanner = new Scanner(System.in);System.out.print("请输入第一个整数:");int num1 = scanner.nextInt();System.out.print("请输入第二个整数:");int num2 = scanner.nextInt();int sum = num1 + num2;System.out.println("两个整数的和为:" + sum);}}```三、综合应用题1. 编写Java程序,实现学生信息管理系统,要求包括以下功能:- 添加学生信息(姓名、年龄、性别、学号等);- 修改学生信息;- 删除学生信息;- 查询学生信息。

JAVA语言程序设计(第8版)第5章完整答案programming-exercises(程序练习题)答案完整版

5_1public class Exercise01 {public static void main(String[] args) {final int PENTAGONAL_NUMBERS_PER_LINE = 10;final int PENTAGONAL_NUMBERS_TO_PRINT = 100;int count = 1;int n = 1;while (count <= PENTAGONAL_NUMBERS_TO_PRINT) {int pentagonalNumber = getPentagonalNumber(n);n++;if (count % PENTAGONAL_NUMBERS_PER_LINE == 0)System.out.printf("%-7d\n", pentagonalNumber);elseSystem.out.printf("%-7d", pentagonalNumber);count++;}}public static int getPentagonalNumber(int n) {return n * (3 * n - 1) / 2;}}5_2import java.util.Scanner;public class Exercise02 {public static void main(String[] args) {Scanner input = new Scanner(System.in);//Prompt the user to enter an integerSystem.out.print("Enter an interger: ");long number = input.nextLong();System.out.println("The sum of the digits in " + number + " is " + sumDigits(number));}public static int sumDigits(long n) {int sum = 0;long remainingN = n;do {long digit = remainingN % 10;remainingN = remainingN / 10;sum += digit;} while (remainingN != 0);return sum;}}第03题import java.util.Scanner;public class Exercise03 {public static void main(String[] args) {Scanner input = new Scanner(System.in);//Prompt the user to enter an integerSystem.out.print("Enter an integer: ");int number = input.nextInt();//Display resultSystem.out.println("Is " + number + " a palindrome? " + isPalindrome(number));}public static boolean isPalindrome(int number) {if (number == reverse(number))return true;elsereturn false;}public static int reverse(int number) {int reverseNumber = 0;do {int digit = number % 10;number = number / 10;reverseNumber = reverseNumber * 10 + digit;} while (number != 0);return reverseNumber;。

java答案第五章

SetPi b=new SetPi(3.00);
"改变Pi=3.00圆的面积:"+c.area());
}
}
运行结果:
3.在什么情况下,可以对父类对象的引用进行强制类型转换,使其转化成子类对象的引用?
答:一个对象被塑型为父类或接口后,可以再一次被塑型回到它原来所属的类,即转化成原类对象的引用。
4.声明一个接口,此接口至少具有一个方法;在一个方法中声明内部类实现此接口,并返回此接口的引用。
public class Circle implements Shape2D{
double radius;
public Circle(double r){radius=r;}
public double area(){return Pi*radius*radius;}
}
//A类(测试接口中隐含final的area()方法)
this.id=newid;
}
public void setname(String newname){
=newname;
}
public void setscoreOfenglish(float newscoreOfenglish){
this.scoreOfenglish=newscoreOfenglish;
//Student类
public class Student{
String id;
String name;
float scoreOfenglish;
float scoreOfmath;
float scoreOfcomputer;
float scoreOfsum;
//构造方法
public Student(){

java语言程序设计_郑莉_第5章


清华大学 郑莉
5.1.1 接口的作用及语法

接口的作用
– 是面向对象的一个重要机制 – 实现多继承,同时免除C++中的多继承 那样的复杂性 – 建立类和类之间的“协议”
把类根据其实现的功能来分别代表,而不必
接 口
顾虑它所在的类继承层次;这样可以最大限 度地利用动态绑定,隐藏实现细节 实现不同类之间的常量共享
Programming in JAVA
第5章 接口与多态
郑莉
JAVA语言程序设计
清华大学 郑莉
目录
5.1 接口 5.2 塑型 5.3 多态的概念 5.4 多态的应用 5.5 构造方法与多态 5.6 内部类 5.7 本章小结

2
JAVA语言程序设计
清华大学 郑莉
5.1 接口
18
接 口
JAVA语言程序设计
清华大学 郑莉
5.1.3 多重继承

多重继承
– Java的设计以简单实用为导向,不允许一个类有 多个父类 – 但允许一个类可以实现多个接口,通过这种机制 可实现多重继承 – 一个类实现多个接口的语法如下
[类修饰符] class 类名称 implements 接口1,接口2, … { …… }
5.1.2 实现接口
清华大学 郑莉
——例5_3

实现接口Insurable,声明汽车类实现例5.1中的 Insurable接口,实现接口中的所有抽象方法
public class Car implements Insurable { public int getPolicyNumber() { // write code here } public double calculatePremium() { // write code here } public Date getExpiryDate() { // write code here } public int getCoverageAmount() { // write code here } public int getMileage() { //新添加的方法 //write code here } }

自考Java语言程序设计(一)第五章以后课后习题及答案

{
m_dRealPart = d;
}
void setImaginaryPart(double d)
{
m_dImaginPart = d;
}
//复数运算方法
ComplexNumber complexAdd(ComplexNumber c)
{
return new ComplexNumber(
this.m_dRealPart + c.getRealPart(),
{
suhData=new Data;
}
intgetData()
{
return subData;
}
}
3.“子类的域和方法的数目一定大于等于父类的域和方法的数目”,这种说法是否正确?为什么?
4.在Java程序中,通过类的定义只能实现单重继承()
5.下列哪些说法是正确的?
A、Java语言只允许单一继承
B、Java语言只允许实现一个接口
·m_dlmaginPart虚部,代表复数的虚数部分。
(2)复数类ComplexNumber的方法
·ComplexNumber()构造方法,将实部、虚部都置为0。
·ComplexNumber(doubler,doublei)构造方法,创建复数对象的同时完成复数的实部、虚部的初始化;r为实部的初值,i为虚部的初值。
A.两个或两个以上的方法取相同的方法名,但形参的个数或类型不同考试大论坛
B.两个以上的方法取相同的名字和具有相同的参数个数,但形参的类型可以不同
C.两个以上的方法名字不同,但形参的个数或类型相同
D.两个以上的方法取相同的方法名,并且方法的返回类型相同
3.什么是方法的覆盖?方法的覆盖与域的隐藏有何不同?与方法的重载有何不同?
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
this.scoreOfsum=sum();
}
public void setscoreOfmath(float newscoreOfmath){
this.scoreOfmath=newscoreOfmath;
this.scoreOfsum=sum();
}
public void setscoreOfcomputer(float newscoreOfcomputer){
System.out.println("B类声明实现A接口类并返回接口的应用——Fuck you!");
}
};/*注意这里有分号“;”*/
}
}
//test5_4
public class test5_4 {
public static void main(String[] args){
new B().fuck().fuck();
}
//compare方法/比较2学生总分
public void compare(Student x){
if(this.getscoreOfsum()>x.getscoreOfsum())System.out.println(this.getname()+"总分大于"+x.getname());
if(this.getscoreOfsum()<x.getscoreOfsum())System.out.println(this.getname()+"总分小于"+x.getname());
return(scoreOfmath);
}
public float getscoreOfcomputer(){
return(scoreOfcomputer);
}
public float getscoreOfsum(){
return(scoreOfsum);
}
//5个set方法
public void setid(String newid){
this.scoreOfmath=ascoreOfmath;
this.scoreOfcomputer=ascoreOfcomputer;
//this.scoreOfsum=ascoreOfenglish+ascoreOfmath+ascoreOfcomputer;
this.scoreOfsum=sum();
Student b=(Student)x;
if(this.id==b.getid())return true;
}
*/
}
//StudentXW
public class StudentXW extends Student{
String responsibility;
//构造方法
public StudentXW(){
public String Way2(){return "A的方法2";}
}
//B类
public class B extends A{
public String Way2(){
return "B的方法2";
}
}
//test5_6
public class test5_6 {
public static void main(String args[]){
4.声明一个接口,此接口至少具有一个方法;在一个方法中声明内部类实现此接口,并返回此接口的引用。
//A类接口
public interface A{
void fuck();
}
//B类
public class B{
public A fuck(){
return new A(){
public void fuck(){
A a=new B();
System.out.println(a.Way1());
}
}
7.什么是多态?如何实现多态?
答:多态性是指不同类型的对象可以响应相同的消息。利用向上塑性技术,一个父类的应引用变量可以指向不同的子类对象;而利用动态绑定技术,可以再运行时根据父类引用变量所指对象的世纪类型执行相应的子类方法,从而实现多态性。
else System.out.println(this.getname()+"总分等于"+x.getname());
}
//equals方法/比较2学生学号是否相等
/*
* public boolean equals(Object x){
if(this.getClass()!=x.getClass())return false;
}
}
//StudentBZ
public class StudentBZ extends Student{
String responsibility;
//构造方法
public StudentBZ(){
super();
//responsibility="";
}
public StudentBZ(String aid,String aname,float ascoreOfenglish,float ascoreOfmath,float ascoreOfcomputer,String aresponsibility){
与抽象类不同的是:接口允许在看起来不相干的类之间定义共同行为。
2.试编程证明接口中的属性都隐含为static及final,所有的方法都为public。
//定义接口Shape2D
interface Shape2D{
double Pi=3.14;
double area();
}
//Circle类继承接口Shape2D
}
}
运行结果:
5.声明一个具有内部类的类,此内部类只有一个非默认的构造方法;声明另外一个具有内部类的类,此内部类继承第一个内部类。
//A类
class A{
class ClassOfA{
public ClassOfA(){
}
}
}
//B类
public class B{
class ClassOfB extends A.ClassOfA{
}
//6个get方法
public String getid(){
return(id);
}
public String getname(){
return(name);
}
public float getscoreOfenglish(){
return(scoreOfenglish);
}
public float getscoreOfmath(){
super();
//responsibility=" ";
}
public StudentXW(String aid,String aname,float ascoreOfenglish,float ascoreOfmath,float ascoreOfcomputer,String aresponsibility){
}
//sum方法
public float sum(){
return(this.scoreOfenglish+this.scoreOfmath+this.scoreOfcomputer);
}
//testScore测评成绩/平均分
public float testScore(){
return(this.scoreOfsum/3);
8.在第4章习题10的基础上,声明测试类完成对多态性的测试。
(1)在主方法中声明Student类的数组(含五个元素)
(2)生成五个对象存入数组:其中三个Student类的对象、一个StudentXW类的对象、一个StudentBZ类的对象。
(3)将方法testScore()发送给数组的每一个元素,输出结果,并分析具体执行的是哪一个类中的方法。
public class A extends Shape2D{
public double area();
}
//test5_2
public class test5_2{
public static void main(String args[]){
Circle c=new Circle(10);
System.out.println("Pi=3.14圆的面积:"+c.area());
Java语言程序设计
第五章课后习题答案
1.什么是接口?接口起什么作用?接口与抽象类有何区别?
答:Java中的接口是一系列方法的声明,是一些方法特征的集合,一个接口只有方法的特征没有方法的实现,因此这些方法可以在不同的地方被不同的类实现,而这些实现可以具有不同的行为(功能)。
作用:接口是面向对象的一个重要机制,使用接口可以实现多态继承;接口中的所有方法都是抽象的,这些抽象方法由实现这一接口的不同类型来具体;接口还可以用来实现不同类之间的常量共享。
super(aid,aname,ascoreOfenglish,ascoreOfmath,ascoreOfcomputer);
responsibility=aresponsibility;
}
//testScore测评成绩/平均分
public float testScore(){
return(this.scoreOfsum/3+3);
this.id=newid;
}
public void setname(String newname){
thiΒιβλιοθήκη =newname;
相关文档
最新文档