Java 练习题答案
一、填空
1、对象的状态和行为是对象的主要属性;前者对应类的变
量,行为又称为对象的操作,对应着类的方法。类的定义包括变量声明和方法声明。
2、要嵌入在HTML文件中运行的程序是Java Applet (Java Application 、Java Applet )。
3、安装JDK后,Java 开发工具在Bin 目录。
4、声明接口的保留字是interface 。
5、类的声明“ public class Test extends Applet implements Runable{}
”
中,定义的类名是Test ,其父类是Applet ;实现了Runable 接口。这个类的源程序必须保存为Test.java (写出包括扩展名的文件名)。
6、一个完整的Java 应用程序由一个或多个类组成;其中Java Application 至少有一个主类,这个类中包含一个名为main 的方法
7、JDK下解释执行Java 的程序是java.exe 。
8、语句如下:
int[] c1=int[10];
int[] c2={1,2,3,4,5,6,7,8,9,0};
数组c1 中的元素有10 个;c2 中的元素有10 个; 已初始化赋
值的是c2 (c1 c2 )。
9、执行完下列程序后i 的值为5
int i=0;
while(i<5)
{
i++;
10、运行下列程序段后,结果 c 的取值为120 int a = 100, b = 20,c; char oper ='+'; switch(oper) { case '+':
c = a+b;
break;
case '-':
c = a - b;
break;
default:
c = a * b;
break;
}
11、为了能使用Java 中已提供的类,我们需要用import 语句来引入所需要的类。语句import java.io.* ;中引入了java.io 包的所有类。
二、选择题
1、属于访问控制的关键字是( D )。
A、static B 、final C、abstract D 、private
2、对成员的访问控制保护最强的是(C )
A、public 、
B、缺省、 C private D protected
3、可用做Java 标识符的是( B )。
A、try B_isYour C 2time D my name
三、判别题
1、一个类可以生成多个对象,并且这些对象都具有相同的属性。(
T )
2、当运行javac 命令对一个java 源程序进行编译时,必须写出该源程序文件的完整文件名,包括扩展名.java 。(T )
3、java 语言中不用区分字母的大写小写。( F )
4、数组允许存放不同类型的定长元素。(F )
5、Java 的类是单继承的,所有的类都从Object 类派生而来的。
(T )
6、System.out.println(“ Hello java! ”)中out 是System 类的一个成员变量。(T )
四、简答题(答案参看课件)
1、通过继承,子类可以获得哪些好处?
2、写出程序包组织Java 程序的好处?五、程序分析题
1、阅读下列程序,然后回答问题class Car {
int carNumber;
Car(){}
Car(int no){
this.carNumber=no;
}
void setNumber(int carNum) { carNumber = carNum;
}
void showNumber() {
System.out.println( “ My car No. is : ” + carNumber);
}
}
①写出这里定义了什么类?有哪些成员变量?有哪些成员方法?
定义了Car 类,成员变量有carNumber,成员方法有:构造方法、
setNumber、showNumber
②有哪些构造方法?
Car() 和Car(int no)
③这个类有无访问控制修饰?表示谁可以访问这个类内的属性和方法?
无访问控制修饰,表示在同一类或同一包中都可以访问
④void 表示什么?
方法无返回值
2、下列程序中,main() 方法中使用了上面定义的类,产生了多少个对象?对象名字分别是什么?写出执行后的输出结果。
public class CarDemo {
public static void main(String args[]){
Car demoCar1= new Car(); demoCar1.setNumber(168168);
demoCar1.showNumber();
}
}
产生了 1 个对象叫demoCar1,运行结果:My car NO. is:168168
六、设计题
1、编写一个完整的Java Application 程序输出“ I am a
student. ” ,并说明在JDK环境下的开发并运行的具体过程。
class Output{
public static void main(){
System.out.println( “I am a student. ”);
}
}
1、在记事本中编写源代码,并保存为Output.java
2、在源代码所在目录下发出命令javac Output.java
3、编译若不通过则重复1、2 步骤,若通过则发出命令java Outpur 并查看运行结果
2、用Java 实现如下的骰子游戏:丢下两个骰子,若分值的总值为7点,则赢;
否则输。提示:类图如右
图。
1)首先定义Die 类。
提示:Die 类表示一个骰子
有faceValue 一个静态属性,有一个roll() 方法getFaceValue() 。
roll() 方法使faceValue 为1~6 中的一个随机值。getFaceValue() 是取出faceValue 值。
2)然后定义DiceGame类。提示:DiceGame类有die1 、die2 两个静态属性,有一个play() 方法。play() 方法返回一个布尔类型,true 表示分值的总值为7 点,否则为false 。
3)最后写Test 类,对上面定义的类进行测试。
提示:写出主类,main() 方法中产生DiceGame对象,执行play() 方法后显示出输赢。
import java.util.*;
//import java.math.*;
class Die{
static int faceValue;
void roll(){
Random rnd=new Random();
faceValue=rnd.nextInt(6)+1;
//faceValue=(int)Math.floor(Math.random()*6+1);
}
int getFaceValue(){
return faceValue;
class DiceGame{
static int die1,die2; boolean play(){
Die a=new Die();
a.roll();
die1=a.getFaceValue(); System.out.println(" 第一次投骰为:
a.roll();
die2=a.getFaceValue();
System.out.println(" 第二次投骰为: if (die1+die2==7)
return true;
else
return false;
}
}
public class Test{
public static void main(String args[]){"+die1); "+die2);
} }DiceGame d=new DiceGame();
if (d.play())
System.out.print(" 赢!!"); else
System.out.print(" 输!!");