文档库 最新最全的文档下载
当前位置:文档库 › 解析JAVA程序设计第三章课后答案

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

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

第3章习题解答

1.如何定义方法?在面向对象程序设计中方法有什么作用?

答:方法的定义包括方法名、方法形参、方法的返回值类型和方法体四部分,方法只能在类中

定义。方法是对象的动态特征的描述,对象通过方法操作属性,进而改变对象的状态,完成程

序所预期的功能。

2.定义一个Dog 类,有名字、颜色、年龄等属性,定义构造方法用来初始化类的这些属性,定

义方法输出Dog 的信息。编写应用程序使用Dog 。

答:

public class Dog{

private String name;

private String color;

private String age;

Dog(String n,String c,String a){

name = n; color = c; age = a;

}

public String toString() {

return name + "," + color + "," + age;

}

public static void main(String args[]) {

Dog dog = new Dog("小白", "白色", "2岁");

System.out.println(dog.toString());

}

}

3.什么是访问控制修饰符?修饰符有哪些种类?它们各有何作用?

答:访问控制修饰符是对类、属性和方法的访问权限的一种限制,不同的修饰符决定了不同的访问权限。访问控制修饰符有

3个:private 、protected 、public ,另外还有一种默认访问权

限。各个修饰符的作用如下表所示:

B :包中的类

C :所有子类

D :本类

A :所有类

4.阅读程序,写出程序的输出结果

class A{

private int privateVar;

A(int _privateVar){

privateVar=_privateVar;

}

boolean isEqualTo(A anotherA){

if(this.privateVar == anotherA.privateVar)

return true;

else

return false;

}

}

public class B{

public static void main(String args[]){

A a = new A(1);

A b = new A(2);

System.out.println(a.isEqualTo(b));

}

}

程序的输出结果为:false

5.阅读程序,写出程序的输出结果

public class Test {

public static void main(String[] args) {

int x;

int a[] = { 0, 0, 0, 0, 0, 0 };

calculate(a, a[5]);

System.out.println("the value of a[0] is " + a[0]);

System.out.println("the value is a[5] is " + a[5]);

}

static int calculate(int x[], int y) {

for (int i = 1; i < x.length; i++)

if (y < x.length)

x[i] = x[i - 1] + 1;

return x[0];

}

}

程序的输出结果为:

the value of a[0] is 0

the value is a[5] is 5

6.阅读程序,写出程序的输出结果

public class Test {

public static void main(String[] args) {

String str1 = new String("Java");

String str2 = new String("Java");

System.out.println(str1 == str2);

}

}

程序的输出结果为:

false

7.阅读下列程序,程序中已经指明错误位置,请说出错误原因。

1.

package sample;

class A {

private int num;

A(){

num=0;

}

int get(){ return num; }

}

class Z {

public static void main(String[] args) {

A a1 = new A();

int t = a1.get();

int s = a1.num; //此处有错误

}

}

错误原因:私有变量只能在其所在类中直接使用,在其它类中不可以直接使用。

8.阅读下列程序,程序中已经指明错误位置,请说出错误原因。其中,方法m的功能是把形参的值赋给类的成员变量x。

class Alpha{

private int x;

public void m(int x){

x = x; //此处有错误

}

}

应该修改为:this.x = x;

9.下面定义了一个完整的类,包括有构造方法。阅读这段程序,程序中已经指明错误位置,请说出错误原因。

class Alpha{

private int x;

void Alpha(){ //此处有错误

x = 0;

}

public void getX(){

return x;

}

}

错误原因:构造方法不能有返回类型,也不能以void作为它的返回类型。

10.定义一个名字为MyRectangle的矩形类,类中有4个私有的整型成员变量,分别是矩形的左上角坐标(xUp,yUp)和右下角坐标(xDown,yDown);类中定义了无参数的构造方法和有4个int参数的构造方法,用来初始化类对象。类中还有以下方法:

getW()-计算矩形的宽度;

getH()-计算矩形的高度;

area()-计算矩形的面积;

toString()-把矩形的宽、高和面积等信息作为一个字符串返回。

编写应用程序使用MyRectangle类。

答:

public class MyRectangle{

private int xUp,yUp,xDown,yDown;

MyRectangle(){

xUp = 0; yUp = 0; xDown = 0; yDown = 0;

}

MyRectangle(x1, y1, x2, y2 ){

xUp = x1; yUp = y1; xDown = x2; yDown = y2;

}

public int getW(){

return xDown - xUp;

}

public int getH(){

return yDown - yUp;

}

public int area(){

return getW() * getH();

}

public String toString() {

return "矩形宽:" + getW() +"矩形高:" + getH() + "矩形面积:"+area();

}

public static void main(String args[]) {

MyRectangle rectangle = new MyRectangle(1,2,7,8);

System.out.println(rectangle.toString());

}

}

11.定义一个表示学生的类Student,包括的成员变量有:学号、姓名、性别、年龄;成员方法有:获得学号、姓名、性别、年龄;修改年龄。并书写Java程序创建Student类的对象及测试其方法的功能。

答:

public class Student{

private String number, name;

private boolean sex; //true表示“男”,false表示“女”

private int age;

Student(){

number = ""; ; sex = true; age = 0

}

Student(String num, String na, boolean s, int a){

number = num; sex = s; age = a;

}

public String getNumber(){

return number;

}

public String getName(){

return name;

}

public boolean getSex(){

return sex;

}

public int getAge(){

return age;

}

public void setAge(int a){

age = a;

}

public String toString() {

return "学号:"+ number +"姓名:"+ name +"性别:"+ sex +"年龄:"+ age; }

public static void main(String args[]) {

Student stu =new Student("200601012","张三",true,20);

System.out.println(stu.toString());

}

}

12.如何定义静态成员变量?静态成员变量有什么特点?静态方法有何特点?为什么有的时候需要定义静态方法?静态方法处理的成员变量有什么要求?

答:在定义成员变量的时候前面加上static修饰符,该变量即成为静态成员变量,静态成员变量也称为类变量。

类变量和实例变量的区别是,不管为类创建了多少对象,系统仅在第一次调用类的时候为类变量分配内存,所有对象共享该类的类变量。因此,可以通过类本身或者某个对象来访问类变量。

当定义一个方法的时候,使用static关键字说明该方法是类方法(静态方法)而不是实例方法。当第一次调用含类方法的类时,系统只为该类的类方法创建一个版本。这个版本被该类和该类的所有实例所共享。

调用类方法时不需要实例化类,因此对那些不想实例化的类,或者不需要实例化的类,但又需要调用该类的方法,这时就可以把该方法定义为类方法。

类方法只能操作类变量,不能访问在类中定义的实例变量,同时,类方法可以在类中被调用,不必通过创建一个实例对象来调用一个类方法,当然也可以在实例对象中调用类方法。

13.使用静态成员变量来计算内存中的实例化的对象数目。

public class Count {

private String name;

private static int number = 0; //计数Count对象生成的个数

Count() {

name = null;

number++;

}

Count(String n) {

name = n;

number++;

}

protected void finalize() {

//当有一个Count对象释放时会执行该方法,此时对number减1 System.out.println("有一个Item对象释放了");

number--;

}

public static void main(String args[]) {

Count c1 = new Count();

Count c2 = new Count();

c1 = null;

System.out.println("执行垃圾收集前Item对象的个数:" + number);

//强制执行垃圾收集,观察Count类中number值的变化

https://www.wendangku.net/doc/4410267821.html,ng.System.gc();

System.out.println("执行垃圾收集后Item对象的个数:" + number);

c1 = new Count();

https://www.wendangku.net/doc/4410267821.html,ng.System.gc();

System.out.println("执行垃圾收集后Item对象的个数:"

+ number);

}

}

14.定义一个计算矩形面积、立方体和球体体积的类。该类完成计算的方法用静态方法实现。

public class Calculate{

public static double calculateRectangleArea(

double height,double width){

return height * width ;

}

public static double calculateCubeVol(double x, double y, double z){

return x * y * z;

}

public static double calculateSphereVol(double r){

return (4/3) * 3.14 * r * r * r;

}

}

15.设计一个表示用户的User类,类中的变量有用户名、口令(私有的)和记录用户个数的变量(静态的),定义类的3个构造方法(没有参数、有一个参数给用户名赋值、有两个参数给用户名和口令赋值)、获取和设置口令的方法、返回字符串表示的类信息的方法(包含用户名、口令)。编写应用程序测试User类。

答:

class User{

private String name, password;

private static int number;

User(){

name = null;password = null;n umber++;

}

User(String n){

name = n; password = null; number++;

}

User(String n, String ps){

name = n; password = ps; nmuber++

}

public String getPassword(){ //密码全部以明文操作,没有使用加密算法 return password;

}

public setPassword(String ps){

password = ps;

}

public String toString() {

return "用户名:"+ name +"口令:"+ password;

}

}

public class Test{

User usr = new User("张三", "123456");

usr.setPassword("abcdef");

usr.toString();

}

16.定义一个Company类,成员变量有公司名称、雇员列表、公司每年的总收入。该类的构造方法可能有如下形式:

public Company(String name) { }

也可以有更多其它形式的构造方法。或许还应该有如下方法:

public void setName(String name){ }

public String getName() { }

必须提供一个公共的dump方法来打印有关Company的信息,如公司名称、雇员和公司总收入。最后为Company类编写一个测试客户程序。

答:

class Company{

public String name; //公司名称

public String employee[]; //雇员列表

private int number; //雇员人数

public double grossIncome; //总收入

Company(String n){

name = n;

employee = new String[100];//假设雇员人数不超过100人

}

public void setName(String n){

name = n;

}

public String getName() {

return name;

}

public void setGrossIncome(double income){

grossIncome = income;

}

public String getGrossIncome() {

return grossIncome;

}

public addEmployee(String n){

employee[number] = n;

number++;

}

public removeEmployee(String n){

int i;

for(i = 0;i < number; i++){ //查找待删除雇员所在位置

if(employee[i]. compareTo(n) == 0) break;

}

if(i < number){

employee[i] = null; //删除该雇员信息

for( ; i < number ;i++){ //被删除雇员后面的雇员向前移动一个位置 employee[i] = employee[i+1];

}

number--; //雇员总数减1

}

}

public void dump(){

System.out.println("公司名称:"+ name +"总收入:"+ grossIncome);

System.out.println("雇员列表:");

for(int i=0; i < number; i++){

System.out.println(employee[i]);

}

}

}

public class Test{

public static void main(String args[]) {

Company com = new Company("Sun Microsystem");

com.addEmployee("张三");

com.addEmployee("李四");

com.setGrossIncome(123456789);

com.dump();

}

}

17.定义一个Course类,该类有这样一些成员变量:课程号、课程名称、授课教师、课程状态(必修或者选修),所有的成员变量都是私有的,并且有用于访问它们的公共set/get方法。最后为Course类编写一个测试程序。

答:

class Course{

private String id,courseName,teacher,state;

Course(String i,String c,String t,String s){

id = i; courseName = c; teacher = t; state = s;

}

public void setTeacher(String t){

teacher = t;

}

public String getTeacher(){

return teacher;

}

public void setState(String s){

state = s;

}

public String getState(){

return state;

}

//其他的方法可类似定义

public String toString() {

return id + courseName + teacher + state;

}

}

public class Test{

public static void main(String args[]) {

Course course = new Course("010123","面向对象程序设计_Java",

"甘玲","限选");

course.toString();

}

}

18.实现一个BankTransaction类,允许用户进行如下操作:开帐号,取消帐号,把钱存到已经存在的帐号中,从已经存在的帐号中取钱,把钱从一个帐号转移到另一个帐号,要求打印出一个或多个已存在的帐号的报告。

一个用户能开的帐号数不应该有上限,类还应该包含一个方法,如果一个帐号超支的话,这个方法自动给出一个警告。最后为BankTransaction类编写一个测试程序。

答:

class Count{ //首先定义帐号类

private String id; //帐号id

private String name; //储户姓名

private double total; //帐户余额

Count(String i, String n, double t){

id = i; total =t;

}

public String getId(){

return id;

}

public void setId(String i){

id = i

}

public String getName(){

return name;

}

public void setName(String n){

name = n

} public double getTotal(){

return total;

}

public void setTotal(double t){

if(t < 0 ) System.out.println("金额错误");

else total = t;

}

}

class BankTransaction{

//储户列表,虽然储户个数不应该有限制,但是为了方便,这里还是假设最多100个private Count depositors[100];

private int number; //实际储户个数

public creatCount(String i,String n,double t){ //创建一个帐户

Count cnt = new Count(i, n, t);

//每个帐户的id应该通过某种算法生成,以保证唯一性,

//这里为了简化,直接指定帐户id

depositors[number] = cnt;

number++;

}

public removeCount(String idn){ //删除一个帐户

int i;

for(i = 0;i < number; i++){ //查找待删除储户所在位置

if(https://www.wendangku.net/doc/4410267821.html,pareTo(depositors[i].getId()) == 0) break;

}

if(i < number){

depositors[i] = null; //删除该储户信息

for( ; i < number ;i++){ //被删除储户后面的储户向前移动一个位置 depositors[i] = depositors[i+1];

}

number--; //实际储户总数减1

}

}

public double getMoney(String idn, double money){ //取钱

int i;

for(i = 0;i < number; i++){ //查找储户所在位置

if(https://www.wendangku.net/doc/4410267821.html,pareTo(depositors[i].getId()) == 0) break;

}

if(i < number){

if(money <= depositors[i].getTotal()) {

depositors[i].setTotal(depositors[i].getTotal() - money);

return money;

}

else System.out.println("帐户余额不足");

}

else System.out.println("用户不存在");

}

public void saveMoney(String idn, double money){ //存钱

int i;

for(i = 0;i < number; i++){ //查找储户所在位置

if(https://www.wendangku.net/doc/4410267821.html,pareTo(depositors[i].getId()) == 0) break;

}

if(i < number)

depositors[i].setTotal(depositors[i].getTotal() + money);

else System.out.println("用户不存在");

}

public void transferMoney(String id1, String id2, double money){ //把帐户1的钱转到帐户2

int i,j;

for(i = 0;i < number; i++){ //查找储户1所在位置

if(https://www.wendangku.net/doc/4410267821.html,pareTo(depositors[i].getId()) == 0) break;

}

for(j = 0;j < number; j++){ //查找储户2所在位置

if(https://www.wendangku.net/doc/4410267821.html,pareTo(depositors[j].getId()) == 0) break;

}

if(i < number && j < number){

if(money < depositors[i].getTotal()){

depositors[i].setTotal(depositors[i].getTotal() - money);

depositors[j].setTotal(depositors[j].getTotal() + money);

}

else System.out.println("帐户余额不足,无法转帐");

}

else System.out.println("至少有一个用户不存在");

}

}

19.实现一个类Bag。一个无序单位组(bag)就像一个集合,它允许元素的重复。类Bag必须有方法来插入和删除元素、测试Bag是否为空、得到Bag中的元素数、在Bag中搜索一个特定的元素。可以使用数组来模拟集合,虽然数组是有序的。元素类型假设为String,当然也可以是更一般的类型。最后为Bag类编写一个测试客户程序。

答:略

java课后题答案

第1章Java概述 1.编译java application源程序文件将产生相应的字节码文件,这些字节码文件别 的扩展名为、java 2.执行一个java程序fristapp的方法就是运行java fristapp 3.main()方法的返回类型就是void 4.在java代码中,public static void main方法的参数描述正确的就是string args 【】,string【】args 5.内存的回收程序负责释放无用内存√ 6.java体系主要分为java ME,Java SE,JavaEE三大块 第2章Java基础 1.Java语言中,下列标识符错误的就是40name 2.java变量中,以下不属于引用类型的数据类型就是字符型 3.double d=5、3E12 × 4.C 5.A 6.for循环的一般形式为;for(初值;终值;增量),以下对for循环的叙述,正确 的就是初值与增量都就是赋值语句,终值就是条件判断语句 7.当输入下面选项中3值时,将会输出default 8.下面哪种方法能够支持javadoc命令/**…*/ 9.下面声明一个string类型的数组正确的就是string str[] 10.下面定义一个整型数组,不合法的就是int[][]array=new int[][4]; 11.给定代码;。。。。。下面叙述正确的就是输出的结果为:0 12.java语言规定,标示符只能由字母,数字美元符$与下划线租成,并且第一个 字符不能就是数字;java就是区分大小写的。 13.表达式1/2*3的计算结果就是0;设x=2,则表达式(x++)/3的值就是0 14.数组的长度可以用其属性lengt h获得;创建一个数组对象可以使用new关键 字创建 第3章面向对象基础 1.在java中引用对象变量与对象间有什么关系?引用变量就是指向对象的一个指针 2.对象就是面向对象技术的核心所在,在面向对象程序设计中,对象就是累的抽象× 3.构造方法何时被调用?创建对象时 4.A,B,D 5.在java语言中在包p1中包含包p2,类A直接隶属于p1,类B直接隶属于包p2、在类c中 要使用类a的方法与类b的方法b,需要选择import p1、*; import p1、p2,*;

Java程序设计实例教程考试题

Java程序设计练习题 一、选择题 1、为使Java程序独立于平台,Java虚拟机把字节码与各个操作系统及硬件( A ) A)分开B)结合 C)联系D)融合 2、Java语言与C++语言相比,最突出的特点是( C ) A)面向对象B)高性能 C)跨平台D)有类库 3、下列Java源程序结构中前三种语句的次序,正确的是(D) A)import,package,public class B)import必为首,其他不限 C)public class,package,import D),import,public class 4、在JDK目录中,Java程序运行环境的根目录是( A ) A)bin B)demo C)lib D)jre 5、下列运算符中属于关系运算符的是(A ) A)== B).= C)+= D)-= 6、下列布尔变量定义中,正确并且规范的是( B ) A)BOOLEAN canceled=false; B)boolean canceled=false; C)boolean CANCELED=false; D)boolean canceled=FALSE; 7、下列关键字中可以表示常量的是( A ) A)final B)default C)private D)transient 8、下列运算符中,优先级最高的是( A ) A)++ B)+ C)* D)> 9、Java中的基本数据类型int在不同的操作系统平台的字长是( B ) A)不同的B)32位 C)64位D)16位

10、给一个short类型变量赋值的范围是( C ) A)-128 至 +127 B)-2147483648至 +2147483647 C)-32768至 +32767 D)-1000至 +1000 11、下列运算中属于跳转语句的是( D ) A)try B)catch C)finally D)break 12、switch语句中表达式(expression)的值不允许用的类型是( C ) A)byte B)int C)boolean D)char 13、下列语句中,可以作为无限循环语句的是( A ) A)for(;;) {} B)for(int i=0; i<10000;i++) {} C)while(false) {} D)do {} while(false) 14、下列语句中执行跳转功能的语句是( C ) A)for语句B)while语句 C)continue语句D)switch语句 15、下列表达式中,类型可以作为int型的是( C ) A)“abc”+”efg”B)“abc”+’efg’ C)‘a’+’b’D)3+”4” 17、数组中各个元素的数据类型是( A ) A)相同的B)不同的 C)部分相同的D)任意的 18、在Java语言中,被成为内存分配的运算符是( A ) A)new B)instance of C)[] D)() 19、接口中,除了抽象方法之外,还可以含有( B ) A)变量B)常量 C)成员方法D)构造方法 20、下列能表示字符串s1长度的是( A ) A)s1.length()B)s1.length C)s1.size D)s1.size() 21、StringBuffer类字符串对象的长度是( C ) A)固定B)必须小于16个字符 C)可变D)必须大于16个字符 22、构造方法名必须与______相同,它没有返回值,用户不能直接调用它,只能通过new调用。( A ) A)类名B)对象名 C)包名D)变量名 23、子类继承了父类的方法和状态,在子类中可以进行的操作是( D ) A)更换父类方法B)减少父类方法 C)减少父类变量D)添加方法 24、String、StingBuffer都是______类,都不能被继承。( C )

JAVA练习题含答案-answers to practice 2

Multiple Choice 1)Which operator is used to concatenate two strings? (a)+ (b)– (c)* (d)/ Answer: A (see page 35) 2)Which operator returns the remainder of integer division? (a)% (b)/ (c)* (d)none of the above Answer: A (see page 26) 3)What is the value of the variable c in the statements that follow? String phrase = "Make hay while the sun is shining."; char c = phrase.charAt(10); (a)w (b)h (c)i (d)None of the above Answer: B (see page 40) 4)The escape sequence the represents the new-line character is: (a)\r (b)\t (c)\n (d)\\ Answer: C (see page 43) 5)The syntax that declares a Java named constant named SALES_TAX is: (a)double SALES_TAX = 7.50; (b)public double SALES_TAX = 7.50; (c)public static double SALES_TAX = 7.50; (d)public static final double SALES_TAX = 7.50; Answer: D (see page 47)

java课后答案

java课后答案 第一章 ,.发明java的原因是什么,发明java的主要贡献者是谁, 答:开发java语言的动力源于对独立平台的需要,即用这种语言编写的程序不会因为芯片的变化而发生无法运行或出现运行错误的情况。当时,c语言已无法满足人们的这一愿望,因为c语言总是针对特定的芯片将源程序编译成机器码,该机器码的运行就与特定的芯片指令有关,在其他类型的芯片上可能无法运行或者运行出错。主要贡献者是James Gosling。 2.“java编译器将源文件编译生成的字节码是机器码”,这句话正确吗, 答:不正确,字节码是很接近机器码谢谢了的二进制文件,不能被机器直接识别。 3. java应用程序的主类必须含有怎么样的方法, 4. "java应用程序必须有一个类是public类".这句话正确吗, 答:一个java应用程序必须有一个类含有public static void main(String args[] )方法,称为该应用程序的主类。 5. "java applet程序的主类必须是public类",这句话正确吗, 不正确 "java applet源文件的主类必须是public类",这句话正确吗, 正确 6. 叙述java源文件的命名法则。 答:(1)如果源文件中有多个类,那么只能有一个类是public类。(2)如果有一个类是public类,那么源文件的名字必须和这个类的名字完全相同,扩展名 为.java(3)如果源文件没有public类,那么源文件的名字只要和某个类的名字相同,并且扩展名为.java就可以了。(4)java语言区分大小写。 7. 源文件生成的的字节码运行时加载到内存中吗, 8. 怎样编写加载运行java applet的简单网页,

Java基础入门课后习题及答案

《Java基础入门》课后习题 第1章Java开发入门 一、填空题 1、Java的三大体系分别是_JavaSE_____、_JavaEE_____、_JavaME_____。 2、Java程序的运行环境简称之为JRE_____。 3、编译Java程序需要使用_javac_____命令。 4、javac.exe和java.exe两个可执行程序存放在JDK安装目录的bin______目录下。 5、path______环境变量用来存储Java的编译和运行工具所在的路径,而_classpath_____环境变量则用 来保存保存Java虚拟机要运行的“.class”文件路径。 二、选择题 1、以下选项中,哪些属于JDK工具?(多选)ABCD A、Java编译器 B、Java运行工具 C、Java文档生成工具 D、Java打包工具 2、Java属于以下哪种语言?C A、机器语言 B、汇编语言 C、高级语言 D、以上都不对 3、下面哪种类型的文件可以在Java虚拟机中运行?D A、.java B、.jre C、.exe D、.class 4、安装好JDK后,在其bin目录下有许多exe可执行文件,其中java.exe命令的作用是以下哪一种?B A、Java文档制作工具 B、Java解释器 C、Java编译器 D、Java启动器 5、如果jdk的安装路径为:d:\jdk,若想在命令窗口中任何当前路径下,都可以直接使用javac和java 命令,需要将环境变量path设置为以下哪个选项?B A.d:\jdk; B.d :\jdk\bin; C.d:\jre\bin; D.d:\jre;

Java语言程序设计基础教程习题解答

《Java语言程序设计基础教程》练习思考题参考答案

第1章 Java程序设计概述 练习思考题 1、 Java运行平台包括三个版本,请选择正确的三项:() A. J2EE B. J2ME C. J2SE D. J2E 解答:A,B,C 2、 Java JDK中反编译工具是:() A. javac B. java C. jdb D. javap 解答:D 3、 public static void main方法的参数描述是:() A. String args[] B. String[] args C. Strings args[] D. String args 解答:A,B 4、在Java中,关于CLASSPATH环境变量的说法不正确的是:() A. CLASSPATH一旦设置之后不可修改,但可以将目录添加到该环境变量中。 B. 编译器用它来搜索各自的类文件。 C. CLASSPATH是一个目录列表。 D. 解释器用它来搜索各自的类文件。 解答:A 5、编译Java Application源文件将产生相应的字节码文件,扩展名为() A. .java B. .class C. .html D. .exe 解答:B 6、开发与运行Java程序需要经过的三个主要步骤为____________、____________和____________。 7、如果一个Java Applet源程序文件只定义有一个类,该类的类名为MyApplet,则类MyApplet必须是______类的子类并且存储该源程序文件的文件名为______。 8、如果一个Java Applet程序文件中定义有3个类,则使用Sun公司的JDK编译器编译该源程序文件将产生______个文件名与类名相同而扩展名为______的字节码文件。 9、开发与运行Java程序需要经过哪些主要步骤和过程? 10、Java程序是由什么组成的?一个程序中必须要有public类吗?Java源文件的命名规则是怎么样的? 11、编写一个简单的Java应用程序,该程序在命令行窗口输出两行文字:“你好,很高兴学习Java”和“We are students”。

JAVA实用教程(第三版)课后习题答案

第一章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方法的类 第二章基本数据类型和数组 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程序设计实用教程_习题解答

习题 1 1.James Gosling 2.需3个步骤: 1)用文本编辑器编写源文件 2)使用Java编译器(javac.exe)编译源文件,得到字节码文件。 3)使用java解释器(java.exe)来解释执行字节码文件。 3.D:\JDK 1) 设置path 对于Windows 2000/2003/XP,右键单击“我的电脑”,在弹出的快捷菜单中选择“属性”,弹出“系统特性”对话框,再单击该对话框中的“高级选项”,然后单击“环境变量”按钮,添加系统环境变量path。如果曾经设置过环境变量path,可单击该变量进行编辑操作,将需要的值d:\jdk\bin加入即可(注意:修改系统环境变量path后要重新打开DOS窗口编译)。或在DOS窗口输入命令行: set path=d:\jdk\bin(注意:用此方法修改环境变量每次打开DOS窗口都需要输入该命令行重新进行设置)。 2) 设置classpath 对于Windows 2000/2003/XP,右键单击“我的电脑”,在弹出的快捷菜单中选择“属性”,弹出“系统特性”对话框,再单击该对话框中的“高级选项”,然后单击“环境变量”按钮,添加系统环境变量classpath。如果曾经设置过环境变量classpath,可单击该变量进行编辑操作,将需要的值d:\jdk\jre\lib\rt.jar;.;加入即可。或在DOS窗口输入命令行: set classpath= d:\jdk\jre\lib\rt.jar;.;。 4.(B)javac 5.Java源文件的扩展名是”.java”,Java字节码的扩展名是”.class” 6.Java应用程序主类的main申明(D)public static void main(String args[])

软件工程实践者的研究方法(中文版第七版)课后习题答案

作业答案。 2.1 a.设计者对于用户要问的问题: 项目的目标是什么?做到什么程度就成功了?谁会对项目的成功做最后的评判?项目的使用者包括那些? b. 用户对设计者应该问的问题: 目前问题有哪些解决方案,项目完成有哪些难点,在时间范围内能否完成? c. 软件问题用户自问? 还有其他解决方案吗?哪些功能是必须的?乙方资质和能力够吗? d. 软件过程问题自问? 用敏捷还是用瀑布?质量检查点分别有哪些?有几个MileStone? 2.2 为沟通活动设计一系列动作,选定其一并设计任务集。 (批作业的时候,以合理为目标,不一定要一样) 需求获取、需求规范说明(建模)、需求协商、需求确认等。 例如,书上page 23。 2.7 详细描述三个适合用于瀑布模型的软件项目。 (要求学生不仅仅列出项目的名称,而要说明为什么适合) 瀑布模型适合于项目开发而不是产品开发。信息管理系统一般适合于用瀑布模型。因为这类系统业务功能较为明确,架构比较单一,技术难点较少。图书馆系统、销售管理系统都是。 3.11 重构:已经写好的正确的代码,不断修正,使得代码更加精简并易读。 结对编程:两个人同时编写一段代码,一般一个人负责实现,一个人负责检查代码质量。 3.16 利用FDD,为“Web浏览器”定义一系列特征集合与特征。 特征集合模板: an 如:出售一件商品 特征定义模板: the a(n) 特征集合:展示Web页面内容。 特征: 1)本地解析HTML页面 2)展示HTML页面 3)从网络上下载页面相关图片 4)在浏览器上展示图片 附加:统一过程模型的图。 (要求有图有说明)

java课后习题及答案

第一章JA V A语言概论 一、选择题 1. 下列不属于java语言特点的是:B A. java能检查程序在变异和运行时的错误 B. java 能运行虚拟机实现跨平台 C. java 自己操纵内存减少了内存出错的可能性 D. java 还实现了真数组,避免了覆盖数据的可能 2. java语言的执行模式是:C A. 全编译型 B. 全解释型 C. 半编译和半解释型 D. 同脚本语言的解释模式 3. 下列关于虚拟机说法错误的是:B A. 虚拟机可以用软件实现 B. 虚拟机部可以用硬件实现 C. 字节码是虚拟机的机器码 D. 虚拟机把代码程序与各操作系统和硬件分开 4. java语言是1995年由()公司发布的A A. Sun B. Microsoft C. Borland D. Fox Software 5. 下列不是虚拟机执行过程特点的是A A. 双线程 B. 多线程 C. 动态链接 D. 异常处理 6. java以JVM为基础,最下层是移植接口,由适配器和()组成B A. 网卡 B. Java os C. Java基本类 D. Java 应用程序和applet小程序 7. java程序的执行过程中用到一套JDK工具,其中javac.exe指A A. java语言编译器 B. java字节码解释器 C. java文档生成器 D. java类分解器 8. java的API结构中,不属于类库主要包括的核心包的是C A. java包 B. javax C. javadoc包 D. org扩展包 9. 每个java的编译单元可包含多个类或界面,但是每个编译单元最多只能有()类或者界面是公共的A

《Java语言程序设计(基础篇)》(第10版 梁勇 著)第十七章练习题答案

《Java语言程序设计(基础篇)》(第10版梁勇著) 第十七章练习题答案 17.1 import java.io.*; import java.util.*; public class Exercise17_01 { public static void main(String[] args) throws IOException { try ( Formatter output = new Formatter(new FileOutputStream("Exercise17_01.txt", true)); ) { for (int i = 0; i < 100; i++) output.format("%d", (int)(Math.random() * 100000)); } } } 17.2 import java.io.*; public class Exercise17_02 { public static void main(String[] args) throws IOException { try ( DataOutputStream output = new DataOutputStream(new FileOutputStream("Exercise17_02.dat", true)); ) { for (int i = 0; i < 100; i++) output.writeInt((int)(Math.random() * 100000)); } System.out.println("Done"); } } 17.3 import java.io.*;

《Java程序设计》课后习题参考答案

习题1参考答案 1.Java语言的特点有哪些? 答:参考1.1.2 防止直接访问数据变量看起来有些奇怪,但它实际上却对使用类的程序质量有极大的好处。既然数据的单个项是不可访问的,那么惟一的办法就是通过方法来读或写。因此,如果要求类成员内部的一致性,就应该通过类本身的方法来处理。 这种数据隐藏技术就是面向对象的重要特性——封装。它将类的外部界面与类功能的实现区分开来,隐藏实现细节,(通过公共方法)保留有限的对外接口,迫使用户使用外部界面,通过访问接口实现对数据的操作。即使实现细节发生了改变,还可通过界面承担其功能而保留原样,确保调用它的代码还继续工作,这使代码维护更简单。 2.简述封装的优点。 答:封装是一个简单而有效的思想,优点有:(1)模块化,对内成为一个结构完整、可进行自我管理、自我平衡、高度集中的整体。(2)信息隐蔽,对外则是一个功能明确、接口单一、可在各种适合的环境下都能独立工作的有机单元。 面向对象的程序设计实现了对象的封装,使得用户不必关心诸如对象的行为是如何实现的这样一些细节。通过对对象的封装,实现了模块化和信息隐藏,有利于程序的可移植性和安全性,同时也有利于对复杂对象的管理。类的封装性使得代码的可重用性大为提高,这样的有机单元特别适合构建大型标准化的软件系统,具有很高的开发效率。 3.Java的基本工具有哪些? (1)javac 编译器 (2)java 解释器 (3)jdb Java 语言调试器 (4)javadoc API文档管理器 (5)javah 头文件生成器 (6)appletviewer 小应用程序浏览器 (7)javap 类文件反汇编器 4.Java开发环境是如何配置的? 答:对于Windows 2000以上版本的操作系统,可以打开[控制面板]窗口,双击其中的[系统]图标,在[系统特性]窗口中单击[高级]选项卡,进而单击[环境变量]按钮。在出现的[环境变量]窗口中,在[系统变量]框中选择[Path]项,单击[编辑]按钮,在弹出的[编辑系统变量]窗口的[变量值]框后加上上面两条语句。 习题2参考答案 1.Java语言包含哪些数据类型? 答:包含基本数据类型和复合数据类型。基本类型包括整数类型、浮点数类型、布尔类型。复合类型包括类类型(Class Type)、接口类型(Interface Type)与数组类型(Array Type)。 2.Java有多少关键字? 答:abstract, continue, for, new, switch,boolean, default, goto*, null, synchronized,break, do, if, package, this,byte, double, implements, private, threadsafe,byvalve*, else, import, protected, throw,case, extends, instanceof, public, transient,catch, false, int, return, true,char, final,

java练习题答案

第1章java语言概述习题 一、填空题 1、面向对象程序的主要特征:继承,__封装___,___多态 _____。 2、java中的继承机制之所以能够降低程序的复杂性,提高程序的效率,主要是 因为它使代码可以__重用或复用___. 3、java语言中,为将源代码翻译成 __字节码__文件时产生的错误称为编译错误, 而将程序在运行中产生的错误称为运行错误。 4、javac是java语言中的编译器,基本语法是:javac[选项] __文件名__,java 是java语言中的解释执行器,基本语法是:java[选项]___类名___. 5、java语言的主要贡献者是谁James gosling 二、[ 三、单选题 1、编译Java Application 源程序文件将产生相应的字节码文件,这些字节码文 件的扩展名为( B)。 A、java B、.class C、html D、.exe 2、main方法是Java Application程序执行的入口点,关于main方法的方法首 部, 以下(B)项是合法的。 A、public static void main() B、public static void main(String args[]) C、public static int main(String[] arg) ) D、public void main(String arg[]) 三、判断 1、Java语言具有较好的安全性和可移植性及与平台无关等特性。√ 2、Java语言的源程序不是编译型的,而是编译解释型的。√ 四、问答题 1、编写、运行java程序需要经过哪些主要步骤 答:1.编写源文件,扩展名必须是.java 2.编写java源程序,使用java编译器编写源文件,得到字节码文件 ~ 3.运行java程序,使用javaSE平台只不过的java解释器来解释执行字 节码文件。 2、阅读下列java源代码文件,并回答问题 public class Speak{ void speakHello(){ "I'm glad to meet you"); } } … class Xiti8{

操作系统概念第七版习题答案(中文版)完整版

1.1 在多道程序和分时环境中,多个用户同时共享一个系统,这种情况导致多种安全问题。a. 列出此类的问题b.在一个分时机器中,能否确保像在专用机器上一样的安全度?并解释之。 Answer:a.窃取或者复制某用户的程序或数据;没有合理的预算来使用资源(CPU,内存,磁盘空间,外围设备)b.应该不行,因为人类设计的任何保护机制都会不可避免的被另外的人所破译,而且很自信的认为程序本身的实现是正确的是一件困难的事。 1.2 资源的利用问题在各种各样的操作系统中出现。试例举在下列的环境中哪种资源必须被严格的管理。(a)大型电脑或迷你电脑系统(b)与服务器相联的工作站(c)手持电脑 Answer: (a)大型电脑或迷你电脑系统:内存和CPU 资源,外存,网络带宽(b)与服务器相联的工作站:内存和CPU 资源(c)手持电脑:功率消耗,内存资源 1.3 在什么情况下一个用户使用一个分时系统比使用一台个人计算机或单用户工作站更好? Answer:当另外使用分时系统的用户较少时,任务十分巨大,硬件速度很快,分时系统有意义。充分利用该系统可以对用户的问题产生影响。比起个人电脑,问题可以被更快的解决。还有一种可能发生的情况是在同一时间有许多另外的用户在同一时间使用资源。当作业足够小,且能在个人计算机上合理的运行时,以及当个人计算机的性能能够充分的运行程序来达到用户的满意时,个人计算机是最好的,。 1.4 在下面举出的三个功能中,哪个功能在下列两种环境下,(a)手持装置(b)实时系统需要操作系统的支持?(a)批处理程序(b)虚拟存储器(c)分时 Answer:对于实时系统来说,操作系统需要以一种公平的方式支持虚拟存储器和分时系统。对于手持系统,操作系统需要提供虚拟存储器,但是不需要提供分时系统。批处理程序在两种环境中都是非必需的。 1.5 描述对称多处理(SMP)和非对称多处理之间的区别。多处理系统的三个优点和一个缺点? Answer:SMP意味着所以处理器都对等,而且I/O 可以在任何处理器上运行。非对称多处理有一个主处理器控制系统,与剩下的处理器是随从关系。主处理器为从处理器安排工作,而且I/O 也只在主处理器上运行。多处理器系统能比单处理器系统节省资金,这是因为他们能共享外设,大容量存储和电源供给。它们可以更快速的运行程序和增加可靠性。多处理器系统能比单处理器系统在软、硬件上也更复杂(增加计算量、规模经济、增加可靠性) 1.6 集群系统与多道程序系统的区别是什么?两台机器属于一个集群来协作提供一个高可靠性的服务器的要求是什么? Answer:集群系统是由多个计算机耦合成单一系统并分布于整个集群来完成计算任务。另一方面,多道程序系统可以被看做是一个有多个CPU 组成的单一的物理实体。集群系统的耦合度比多道程序系统的要低。集群系统通过消息进行通信,而多道程序系统是通过共享的存储空间。为了两台处理器提供较高的可靠性服务,两台机器上的状态必须被复制,并且要持续的更新。当一台处理器出现故障时,另一台处理器能够接管故障处理的功能。

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

习题2 3.使用“= =”对相同内容的字符串进行比较,看会产生什么样的结果。 答:首先创建一个字符串变量有两种方式:String str = new String("abc"); String str = "abc"; 使用“= =”会因为创建的形式不同而产生不同的结果: String str1 = "abc"; String str2 = "abc"; System.out.println(str1= =str2); //true String str1 = new String("abc"); String str2 = "abc"; System.out.println(str1= =str2); //false String 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); //true String str1 = new String("abc"); String str2 = "abc"; System.out.println(str1.equals(str2)); //true String str1 = new String("abc"); String str2 = new String("abc"); System.out.println(str1.equals(str2)); //true 5.编写一个程序,把变量n的初始值设置为1678,然后利用除法运算和取余运算把变量的每位数字都提出来并打印,输出结果为:n=1678。n的每位数字是1,6,7,8。若n为任意值呢? 法一: public class Exercise5{ public static void main(String[] args){ int n=1678; int unit; int decimal; int hundred; int thousand; int count; thousand=n/1000; count=n%1000; hundred=count/100; count=count%100; decimal=count/10; count=count%10; unit=count; System.out.println("1678包含的数 字分别是: "+thousand+','+hundred+','+decimal+', '+unit); } } //如果n为任意值 import java.io.*; public class Exercise51{ public static void main(String[] args) throws IOException{ System.out.print("请输入一个整数:"); InputStreamReader isStream=new InputStreamReader(System.in); BufferedReader bfReader=new BufferedReader(isStream); String input=bfReader.readLine(); int length=input.length()-1; int n=new

清华大学出版社 Java课后答案

第1章: 参考答案: 习题集: 一、填空题 1.多态 2.java.exe 3.jdb.exe 4.标准字节码 5.java 6.独立于平台 二、选择题 1.B 2.A 3.B 4.A 5.A 6.C 7.C 8.D 9.C 第2章: 参考答案: 实验指导: 2.5.1.第一处需要的代码:yourGuess>realNumber 第二处需要的代码:yourGuess=input.nextInt(); 第三处需要的代码:yourGuess

《Java基础入门》_课后习题答案解析__1~

第1章 Java开发入门 一、填空题 1、Java EE、Java SE、Java ME 2、JRE 3、javac 4、bin 5、path、classpath 二、选择题 1、ABCD 2、C 3、D 4、B 5、B 三、简答题 1、面向对象、跨平台性、健壮性、安全性、可移植性、多线程性、动态性等。 2、JRE(Java Runtime Environment,Java运行时环境),它相当于操作系统部分,提供了Java程 序运行时所需要的基本条件和许多Java基础类,例如,IO类、GUI控件类、网络类等。JRE是提供给普通用户使用的,如果你只想运行别人开发好的Java程序,那么,你的计算机上必须且只需安装JRE。 JDK(Java Development Kit,Java开发工具包),它包含编译工具、解释工具、文档制作工具、打包工具多种与开发相关的工具,是提供给Java开发人员使用的。初学者学习和使用Java语言时,首先必须下载和安装JDK。JDK中已经包含了JRE部分,初学者安装JDK后不必再去下载和安装JRE了。 四、编程题 public class HelloWorld { public static void main(String[] args) { System.out.println("这是第一个Java程序!"); } } 第2章 Java编程基础 一、填空题 1、 class 2、 true和false 3、单行注释、多行注释、文档注释 4、基本数据类型、引用数据类型 5、 1、2、4、8 6、 & && | || 7、 0 8、 5 9、 34 10、56 二、判断题 1、错 2、对 3、错 4、对 5、错

java课后练习题答案

一、选择题 1、在创建某类的对象时应该(C ) A、先声明对象,然后才能使用对象 B、先声明对象,为对象分配内存空间,然后才能使用对象 C、先声明对象,为对象分配内存空间,对对象初始化,然后才能使用对象 D、以上述说法都对 2、以下说法中对Java中定义的父类与子类的关系描述正确是的(C ) A、一个子类可以有多个父类,一个父类也可以有多个子类 B、一个子类可以有多个父类,但一个父类只可以有一个子类 C、一个子类可以有一个父类,但一个父类可以有多个子类 D、上述说法都不对 3、给定如下Java 程序片断: class A { public A() { System.out.print ("Java"); }} class B extends A { public B() { System.out.print (" Welcome"); } public static void main(String[] args) { B b=new B(); } }上述程序将( B) A、不能通过编译 B、通过编译,输出为: Java Welcome C、通过编译,输出为: Welcome D、通过编译,输出为: Java 4、给定以下程序段,如下: int i=0,j=-1; switch(i) { case 0:j=1; case 2:j=2; default:j=5; } System.out.print("j="+j); 编译运行,正确的是(D) A、j=-1 B、j=1 C、j=2 D、j=5 5、下面关于Java构造函数的描述正确的是(D ) A、类必须有显式定义构造函数 B、它的返回类型是void C、它和类有相同的名称,但它不能带任何参数 D、以上描述都是错误的 6、在Java编程中,用来执行Java类文件的命令是(B ) A、javac B、java C、appletviewer D、以上都不对 7、如下程序片段,体现了Java的( B) 概念 public void aMethod(String s) {........} public void aMethod(int i) {........}

JavaWeb程序设计教程课后练习答案

第1章 Web应用开发简介 习题答案 1.Web在组成上包括______和______两部分。 答案: 服务器 客户端 2.谈谈对面向对象的认识。 答案: 面向对象将将要解决的问题分解成各个对象,建立对象的目的不是为了完成一个步骤,而是为了描叙解决问题中的各个步骤中的行为。面向对象编程方式是建立在面向过程编程方式基础上,其最重要的改变在于面向对象编程中,程序将围绕被操作的对象来设计,而不是操作本身。面向对象编程方式以类作为构造程序的基本单位,具有封装、抽象、继承、多态性等特点。 3.介绍几种常用的框架技术。 答案: Java中常用的框架。 1.Struts Struts是Apache 基金会Jakarta 项目组的一个开源项目,是一个基于Sun J2EE平台的MVC框架,它将Servlet和JSP标签作为实现自身功能的一部分。 2.WebWork WebWork是由OpenSymphony组织开发的,是一个基于Web的MVC框架。它在运行时通过Interceptor(拦截器)自动应用,因此脱离了Action类。 3.Struts 2 Struts 2是Apache基金会的一个开源项目,它建立在Struts框架与WebWork框架基础之上,继承了二者的优点,是目前非常流行的一个Web框架。 4.Spring Spring是一个以IoC和AOP为核心的轻量级容器框架。它提供了一系列的Java EE开发解决方案,包括表示层的Spring MVC、持久层的Spring JDBC以及业务层事务管理等众

多的企业级应用技术。 5.Hibernate Hibernate是一个ORM(对象关系映射)框架,它对JDBC进行了轻量级的封装。通过使用Hibernate框架,开发人员能够以面向对象的思维方式来操作数据库。 6.Ibatis 相对于Hibernate而言,Ibatis是一个“半自动化”的ORM实现框架,它主要致力于POJO与SQL之间的映射关系,是对“全自动化”ORM框架的一种有益补充。 7.EasyJWeb EasyJWeb是一个核心基于模板技术实现的MVC框架,主要致力于Java Web应用程序的快速开发。 4.IDE的用途是什么? 答案: IDE是一种用于辅助开发人员开发应用程序的应用软件,它一般包括代码编辑器、编译器、调试器和图形用户界面工具,有的还包括版本控制系统、性能分析器等更多工具,因此IDE也就具有了编写、编译、调试等多种功能。正是基于这些功能,使用IDE能够减少项目的开发周期,减轻程序员的工作量,提高应用程序的开发效率等。 5.Web应用服务器的用途是什么? Web应用服务器是为创建、部署、运行以及管理Web应用提供多种运行时服务(如事务、安全等等)的分布式系统,它是应用程序运行的一个基本环境。

相关文档 最新文档