JAVA大学实用教程(第三版)课后习题答案电子工业出版社
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
public float f(float a,float b) //方法 f 是 public 方法。
{
return a; }
}
public class B
{
void g()
{
A a=new A();
a.weight=23f;
a.f(3,4);
}}
答:a.weight=23f;错
1.编写一个类,该类创建的对象可以计算等差数列的和。
Int[] a=new int[8];
答:不等价,前者有初值,后者指分配空间。初值数组元素为 0
11.有语句:
int [] a={1,2,3},b={4,5};
a=b;
求 a[0]=? b[1]=? 为什么?
答: a[0]=4 ; b[1]=5 因为有相同的引用,同指向 b[].
12. Java 语言使用_________编码,每个字符占___________字节________byte 位
可以出现在实例方法中,代表使用该方法的当前对象。
This 不能出现在类方法中,因为类方法是通过类名调用的。
13.源文件声明编写的类一定在同一个包中吗?
答:不一定,当不在同一包中时,可用 import 语句将其所在的包引入该源文件中。
14.“import java.awt.*”与“import java.awt.Button”有什么不同?
for(int j=i+1;j<a.length;j++){ if(a[j]<a[i]){
int n=a[j]; a[j]=a[i]; a[i]=n;} } } System.out.printf("%d,%d,%d,%d,%d",a[0],a[1],
a[2],a[3],a[4]); } }
第四章 类与对象
答:对于类方法在该类加到内存时就分配了相应的入口地址,所以即使该类未创建对象,也
可以通过类名调用类方法。而这时在类创建之前,实例成员变量还没有分配内存空间。没内
存空间当然无法操作。
11.实例方法可以用类名直接调用吗?
答:不能,因为实例方法,用 new 创佳对象后才分配入口地址,而类名,一经声明就分配
Unicode 2
16
第三章 运算符、表达式与语句
1。下列语句输出的结果是什么? Int a=100, x,y; X=++a; Y=a-System.out.printf(“%d, %d,%d”,x,y,a); 答:101,101,100 2。下列语句那些有错误? Int x=0; X=5.0/2; Float y=12.5F; y=5.0/2; 答:x=5.0/2; 错。 3。下列语句那些有错? Byte x=32; Char c=‘a’; Int n=c-x;
答:访问权限修饰符有 public, private,protected.
Private 百度文库用是只允许本类的对象访问。
17.怎样反编译一个类?
答:使用 SDK 提供的反编译器 javap.exe 文件可以实现将字节码文件反编译为源码文件。可
查看源码中 public 方法和 public 成员变量的名字。
m^n^n=? 答:m^m=0; m^n^n=120 7.下列 System.out.printf 语句输出的结果是什么? Int x=10, y=10, z=10; If(x>9){ y=100; Z=200; } Else
y=-100; z=-200; System.out.printf(“%d,%d,%d”,x,y,z); 输出: 10,100,-200 8.下列 for 语句输出结果是什么? For(int i=1; i<=4; i++){ Switch(i){ Case 1: System.out.printf(“%c”,’a’); Case 2: System.out.printf(“%c”,’b’); Break; Case 3: System.out.printf(“%c”,’c’); Case 4: System.out.printf(“%c”,’d’); Break; } } 输出:a,b, b,c,d,d 9. 下列 System.out.printf 语句输出的结果是什么? Char a[]={‘a’,’b’,’c’,’d’,’e’}; For(i=0; i<=a.length/2; i++) { char c=a[i]; a[i]=a[a.length-(i+1)]; a [a.length-(i+1)]=c; } System.out.printf(“%c%c%c%c%c”a[0],a[1],a[2],a[3],a[4]); 输出:e,d,c,b,a 10.下列 System.out.printf 语句输出的结果是什么? int a[]={3,4,1,2,-6}; for(int i=0; i<a.lemgth;i++){
解:class DengCha{ int start,d; DengCha(){ } DengCha(int start,int d){ this.start=start; this.d=d; } void setStart(int s){ start=s; } void setD(int d){ this.d=d; } int getSum(int n){ int sum=0,i=1; while(i<=n){ sum=sum+start; start=start+d; i++; } return sum; } } public class ZuoYe04_1 { public static void main (String args[ ]) {
如加入参数-private 则可列出其全部的成员方法和成员变量。
如:
Javap –private java.awt.Button 则可以列出 Button 类中全部的方法和成员变量。
18.下面程序中那个语句是错的?
class A
{
private float weight; //weight 被修饰为 private 的 float 型变量。
类名地址。而这时对象创建之前实例方法还没有入口地址。实例方法表现实例的功能,或改
变实例变量。用类调用改变那个实例的实例变量,表现那个实例的功能,不明确。
12.关键字 this 可以出现在构造方法中吗?可以出现在实例方法中吗?可以出现在类方法中
吗?
答:可以出现在构造方法中,代表该类构造方法所创造出的对象。
1.在声明类时,类名应遵循哪些习惯? 答:首字母大写, 望名知意 2.类体内容有哪两种重要成员? 答:成员变量,和成员方法。 3。实例方法可以操作类变量吗?类方法可以操作实例变量吗? 答:实例方法可以操作类变量。 而类方法不可以操作实例变量。 4.当类的字节码加载到内存时,类变量就一定分配了内存空间吗? 答:实例成员变量不分配内存,而类变量一定分配内存。 5.类的实例变量在什么时候分配内存? 答:声明之后,在用 new 关键字创建实例的时候才分配内存。 6.一个类的类变量被该类创建的所有对象共享吗? 答:共享 7.不同对象的实例变量分配的内存地址一定不同吗? 答:当出现引用赋值语句时两个实例变量的内存地址相同。 8.什么叫方法的重载?构造方法可以重载吗? 答:方法的重载是指一个类中可以有多个方法具有相同的名字,但这些方法的参数不同,或 者参数的个数不同,或者参数的类型不同。构造方法可以重载。 9.请阐述为什么类方法不能调用实例方法? 答:对于类方法在该类加到内存时就分配了相应的入口地址,所以即使该类未创建对象,也 可以通过类名调用类方法。而这时在类对象创建之前,实例方法还没有入口地址。还不知道 一个方法从何处开始执行,当然不能调用。 10.请阐述,为什么类方法中不能操作实例成员变量?
9。假设有两个 int 类型数组:
Int[] a=new int[10];
Int[] b=new int[8];
b=a;
A[0]=100;
B[0]的值一定是 100 吗?
答;一定,因为 a 数组与 b 数组引用相同。
10。下列两个语句的作用等价吗?
Int[] a={1,2,3,4,5,6,7,8};
答:前者引入了 awt 包中的所有类,后者只引入了 Button 一个类。
15.程序中使用了“import java.util.*;”程序运行时,是要加载 java.util 包中的全部类到内存
吗?
答:不,只加载本程序用到的类到内存中,因为 java 程序是动态加载,字节码类文件。
16.有哪几种访问权限修饰符?说出一种的作用。
for(int j=i+1;j<a.length;j++){ if(a[j]<a[i]){
Int n=a[j]; a[j]=a[i]; a[i]=n;} } } System.out.printf(“%d,%d,%d,%d,%d”,a[0],a[1],
a[2],a[3],a[4]); 输出:-6,1,2,3,4 11.public class Tick { public static void main(String args[]) {int a[]={3,4,1,2,-6}; for(int i=0; i<a.length;i++){
第二章 基本数据类型和数组
4。下列哪些语句是错的? Int x=120; Byte b=120; b=x; 答:B=x;错应为 b=(byte)x 5。下列哪些语句是错的? 答:y=d;错,应 y=(float)d 6。下列两个语句是等价的吗? Char x=97; Char x=‘a’; 答:是等价的。 7。下列 system.out.printf 语句输出结果是什么? Int a=97; Byte b1=(byte)128; Byte b2=(byte)(-129); System.out.printf(“%c,%d,%d”,a,b1,b2); 如果输出语句改为: System.out.printf(“%d,%d,%d”,a,b1,b2); 输出什么? 答:输出 a , -128, 127 修改后输出 97,-128,127 8.数组是基本数据类型吗?怎样获取数组的长度? 答:不是基本数据类型,是复合数据类型。可以通过:数组名.length 的方法获得数组长度
第一章 Java 语言概述
2.“java 编译器将源文件编译为的字节码文件是机器码”这句话正确吗? 答:不正确 3.java 应用程序的主类必须含有怎样的方法? 答:含有 main 方法 4。“java 应用程序必须有一个类是 public 类”这句话正确吗? 答;不正确,只能有一个 public 类 5。“java Applet 程序的主类必须是 public 类”这句话正确吗? 答:正确,因为 java Applet 主类必须是 Applet 类的子类并且是 public 的类 6。请叙述 java 源程序的命名规则。 答:与 public 的类同名。 7。源文件生成的字节码文件在运行时都加载到内存中吗? 答:非也,动态随需要运行才加载。 8.面向对象的程序设计语言有那些基本特征? 答:封装;继承;多态性。 9.在 Java 程序中有多个类文件时,用 Java 命令应该运行那个类? 答:具有 main 方法的类
c=c-x; 答:c=c-x;错 应为 int 类型。 4 下列语句正确的是 A.表达式“12+56>34”的值是 true B.表达式“12+56||34”是非法表达式 C.表达式“x+y=12”是非法表达式 D.表达式“12+56>34”的值是 13
答: (A, C ) 5。对于整数 m, m<<1 的结果一定是 2m 吗? 答:不一定,高位有损失时,不是 2m 6.对于两个 int 整形变量 Int m=120, n=240; 那么 m^m=?;
DengCha shulie=new DengCha(2,3); System.out.println(shulie.getSum(100)); shulie.setStart(10); shulie.setD(5); System.out.println(shulie.getSum(9)); DengCha arithmetical=new DengCha(); Scanner Reader=new Scanner(System.in); System.out.println("请输入等差数列开始值"); arithmetical.start=Reader.nextInt(); System.out.println("请输入等差数列的差值"); arithmetical.d=Reader.nextInt(); System.out.println("请输入等差数列求和的个数"); int n=Reader.nextInt();