Java2(第5版)最新答案耿祥义
第1章
一、问答题
1.James Gosling
2.需3个步骤:
1)用文本编辑器编写源文件。
2)使用javac编译源文件,得到字节码文件。
3)使用解释器运行程序。
3.由类所构成,应用程序必须有一个类含有public static void main(String args[])方法,含有该方法的类称为应用程序的主类。不一定,但最多有一个public类。
4.set classpath=D:\jdk\jre\lib\rt.jar;.;
5.java和class
6. java Bird
7.独行风格(大括号独占行)和行尾风格(左大扩号在上一行行尾,右大括号独占行)
二、选择题
1.B。2.D。
三、阅读程序
1.(a)Person.java。(b)两个字节码,分别是Person.class和Xiti.class。(c)得到“NoSuchMethodError”,得到“NoClassDefFoundError: Xiti/class”,得到“您好,很高兴认识您nice to meet you”
第2章
一、问答题
1.用来标识类名、变量名、方法名、类型名、数组名、文件名的有效字符序列称为标识符。标识符由字母、下划线、美元符号和数字组成,第一个字符不能是数字。false不是标识符。2.关键字就是Java语言中已经被赋予特定意义的一些单词,不可以把关键字作为名字来用。不是关键字。class implements interface enum extends abstract。
3.boolean,char,byte,short,int,long,float,double。
4.float常量必须用F或f为后缀。double常量用D或d为后缀,但允许省略后缀。5.一维数组名.length。二维数组名.length。
二、选择题
1.C。2.ADF。3.B。4.BE。5.【代码2】【代码3】【代码4】【代码5】。6.B。
三、阅读或调试程序
1.属于操作题,解答略。
2.属于操作题,解答略。
3.属于操作题,解答略。
4.【代码1】:4。【代码2】:b[0]=1。5.【代码1】:40。【代码2】:7
四、编写程序
1. public class E {
public static void main(String args[]) {
System.out.println((int)'你');
System.out.println((int)'我');
System.out.println((int)'他');
}
}
2. public class E {
public static void main (String args[ ]) {
char cStart='α',cEnd='ω';
for(char c=cStart;c<=cEnd;c++)
System.out.print(" "+c);
}
}
第3章
一、问答题
1.boolean
2.不可以
3.boolean
4. 不是必须的
5.结束while语句的执行
6.可以
二、选择题
1.A。2.C。3.C。
三、阅读程序
1.你,苹,甜
2.Jeep好好
3.x=-5,y=-1
四、编程序题
1.public class Xiti1 {
public static void main(String args[]) {
double sum=0,a=1;
int i=1;
while(i<=20) {
sum=sum+a;
i++;
a=a*i;
}
System.out.println("sum="+sum);
}
}
2.public class Xiti2 {
public static void main(String args[]) {
int i,j;
for(j=2;j<=100;j++) {
for(i=2;i<=j/2;i++) {
if(j%i==0)
break;
}
if(i>j/2) {
System.out.print(" "+j);
}
}
}
}
3.class Xiti3 {
public static void main(String args[]) {
double sum=0,a=1,i=1;
do { sum=sum+a;
i++;
a=(1.0/i)*a;
}
while(i<=20);
System.out.println("使用do-while循环计算的sum="+sum);
for(sum=0,i=1,a=1;i<=20;i++) {
a=a*(1.0/i);
sum=sum+a;
}
System.out.println("使用for循环计算的sum="+sum);
}
}
4.public class Xiti4 {
public static void main(String args[]) {
int sum=0,i,j;
for(i=1;i<=1000;i++) {
for(j=1,sum=0;j
if(i%j==0)
sum=sum+j;
}
if(sum==i)
System.out.println("完数:"+i);
}
}
}
5.public class Xiti5 {
public static void main(String args[]) {
int m=8,item=m,i=1;
long sum=0;
for(i=1,sum=0,item=m;i<=10;i++) {
sum=sum+item;
item=item*10+m;
}
System.out.println(sum);
}
}
6.public class Xiti6 {
public static void main(String args[]) {
int n=1;
long sum=0;
while(true) {
sum=sum+n;
n++;
if(sum>=8888)
break;
}
System.out.println("满足条件的最大整数:"+(n-1));
}
}
习题四(第4章)
一、问答题
1. 封装、继承和多态。
2.当类名由几个单词复合而成时,每个单词的首字母使用大写。
3.名字的首单词的首字母使用小写,如果变量的名字由多个单词组成,从第2个单词开
始的其它单词的首字母使用大写。
4.属性
5.行为
6.用类创建对象时。没有类型
7.用类创建对象时。
8.一个类中可以有多个方法具有相同的名字,但这些方法的参数必须不同,即或者是参数的个数不同,或者是参数的类型不同。可以。
9.可以。不可以。
10.不可以。
11.一个类通过使用new运算符可以创建多个不同的对象,不同的对象的实例变量将被分配不同的内存空间。所有对象的类变量都分配给相同的一处内存,对象共享类变量。12.代表调用当前方法的对象。不可以。
二、选择题
1.B。2.D。3.D。4.D。5.CD。6.【代码1】【代码4】。7.【代码4】。
三、阅读程序
1.【代码1】:1,【代码2】:121,【代码3】:121。
2.sum=-100。
3. 27。
4.【代码1】:100,【代码2】:20.0。
5.上机实习题目,解答略。
6.上机实习题目,解答略。
四、编程题
CPU.java
public class CPU {
int speed;
int getSpeed() {
return speed;
}
public void setSpeed(int speed) {
this.speed = speed;
}
}
HardDisk.java
public class HardDisk {
int amount;
int getAmount() {
return amount;
}
public void setAmount(int amount) {
this.amount = amount;
}
}
PC.java
public class PC {
CPU cpu;
HardDisk HD;
void setCPU(CPU cpu) {
this.cpu = cpu;
}
void setHardDisk(HardDisk HD) {
this.HD = HD;
}
void show(){
System.out.println("CPU速度:"+cpu.getSpeed());
System.out.println("硬盘容量:"+HD.getAmount());
}
}
Test.java
public class Test {
public static void main(String args[]) {
CPU cpu = new CPU();
HardDisk HD=new HardDisk();
cpu.setSpeed(2200);
HD.setAmount(200);
PC pc =new PC();
pc.setCPU(cpu);
pc.setHardDisk(HD);
pc.show();
}
}
习题五(第5章)
一、问答题
1.不可以。
2.是。
3.不继承。
4.声明与父类同名的成员变量。
5.子类重写的方法类型和父类的方法的类型一致或者是父类的方法的类型的子类型,重写的方法的名字、参数个数、参数的类型和父类的方法完全相同。重写方法的目的是隐藏继承的方法,子类通过方法的重写可以把父类的状态和行为改变为自身的状态和行为。
6.不可以。
7.Abstract类。
8.上转型对象不能操作子类新增的成员变量,不能调用子类新增的方法。上转型对象可以访问子类继承或隐藏的成员变量,可以调用子类继承的方法或子类重写的实例方法。9.通过重写方法。
10.面向抽象编程目的是为了应对用户需求的变化,核心是让类中每种可能的变化对应地交给抽象类的一个子类类去负责,从而让该类的设计者不去关心具体实现。
二、选择题
1.C。2.D。3.CD。4.D。5.B。6.B。7.D。8.B。9.A。
三、阅读程序
1.【代码1】:15.0。【代码2】:8.0。
2.【代码1】:11。【代码2】:11。
3.【代码1】:98.0。【代码2】:12。【代码3】:98.0。【代码4】:9。
4.【代码1】:120。【代码2】:120。【代码3】:-100。
四、编程题
Animal.java
public abstract class Animal {
public abstract void cry();
public abstract String getAnimalName();
}
Simulator.java
public class Simulator {
public void playSound(Animal animal) {
System.out.print("现在播放"+animal.getAnimalName()+"类的声音:");
animal.cry();
}
}
Dog.java
public class Dog extends Animal {
public void cry() {
System.out.println("汪汪...汪汪");
}
public String getAnimalName() {
return "狗";
}
}
Cat.java
public class Cat extends Animal {
public void cry() {
System.out.println("喵喵...喵喵");
}
public String getAnimalName() {
return "猫";
}
}
Application.java
public class Example5_13 {
public static void main(String args[]) {
Simulator simulator = new Simulator();
simulator.playSound(new Dog());
simulator.playSound(new Cat());
}
}
习题六(第6章)
一、问答题
1.不能。
2.不能。
3.可以把实现某一接口的类创建的对象的引用赋给该接口声明的接口变量中。那么该接口变量就可以调用被类实现的接口中的方法。
4.不可以。
5.可以。
二、选择题
1.D。2.AB。3.B。
三、阅读程序
1.【代码1】:15.0。【代码2】:8。
2.【代码1】:18。【代码2】:15。
四、编程题
Animal.java
public interface Animal {
public abstract void cry();
public abstract String getAnimalName();
}
Simulator.java
public class Simulator {
public void playSound(Animal animal) {
System.out.print("现在播放"+animal.getAnimalName()+"类的声音:");
animal.cry();
}
}
Dog.java
public class Dog implements Animal {
public void cry() {
System.out.println("汪汪...汪汪");
}
public String getAnimalName() {
return "狗";
}
}
Cat.java
public class Cat implements Animal {
public void cry() {
System.out.println("喵喵...喵喵");
}
public String getAnimalName() {
return "猫";
}
}
Application.java
public class Example5_13 {
public static void main(String args[]) {
Simulator simulator = new Simulator();
simulator.playSound(new Dog());
simulator.playSound(new Cat());
}
}
习题七(第7章)
一、问答题
1.有效。
2.可以。
3.不可以。
4.一定是。
二、选择题
1.C。2.C。
三、阅读程序
1.大家好,祝工作顺利!
2.p是接口变量。
3.你好fine thanks。
4.属于上机实习程序,解答略。
四、编程题
import java.util.*;
public class E {
public static void main (String args[ ]){
Scanner reader = new Scanner(System.in);
double sum = 0;
int m = 0;
while(reader.hasNextDouble()){
double x = reader.nextDouble();
assert x< 100:"数据不合理";
m = m+1;
sum = sum+x;
}
System.out.printf("%d个数的和为%f\n",m,sum);
System.out.printf("%d个数的平均值是%f\n",m,sum/m);
}
}
习题八(第8章)
一、问答题
1.不是。"\\hello"是。
2.4和3。
3.false和true。
4.负数。
5.是true。
6.3和-1。
7.会发生NumberFormatException异常。
二、选择题
1.A。2.C。3.B。4.D。5.C。
三、阅读程序
1.【代码】:苹果。
2.【代码】:Love:Game。
3.【代码1】:15。【代码2】:abc我们。4.【代码】:13579。
5.【代码】:9javaHello。
6.属于上机实习程序,解答略。
7.属于上机实习程序,解答略。
四、编程题
1.public class E {
public static void main (String args[ ]) {
String s1,s2,t1="ABCDabcd";
s1=t1.toUpperCase();
s2=t1.toLowerCase();
System.out.println(s1);
System.out.println(s2);
String s3=s1.concat(s2);
System.out.println(s3);
}
}
2.public class E {
public static void main (String args[ ]) {
String s="ABCDabcd";
char cStart=s.charAt(0);
char cEnd = s.charAt(s.length()-1);
System.out.println(cStart);
System.out.println(cEnd);
}
}
3.import java.util.*;
public class E {
public static void main (String args[ ]) {
int year1,month1,day1,year2,month2,day2;
try{ year1=Integer.parseInt(args[0]);
month1=Integer.parseInt(args[1]);
day1=Integer.parseInt(args[2]);
year2=Integer.parseInt(args[3]);
month2=Integer.parseInt(args[4]);
day2=Integer.parseInt(args[5]);
}
catch(NumberFormatException e)
{ year1=2012;
month1=0;
day1=1;
year2=2018;
month2=0;
day2=1;
}
Calendar calendar=Calendar.getInstance();
calendar.set(year1,month1-1,day1);
long timeYear1=calendar.getTimeInMillis();
calendar.set(year2,month2-1,day2);
long timeYear2=calendar.getTimeInMillis();
long 相隔天数=Math.abs((timeYear1-timeYear2)/(1000*60*60*24));
System.out.println(""+year1+"年"+month1+"月"+day1+"日和"+
year2+"年"+month2+"月"+day2+"日相隔"+相隔天数+"天");
}
}
4. import java.util.*;
public class E {
public static void main (String args[ ]) {
double a=0,b=0,c=0;
a=12;
b=24;
c=Math.asin(0.56);
System.out.println(c);
c=Math.cos(3.14);
System.out.println(c);
c=Math.exp(1);
System.out.println(c);
c=Math.log(8);
System.out.println(c);
}
}
5.public class E {
public static void main (String args[ ]) {
String str = "ab123you你是谁?";
String regex = "\\D+";
str = str.replaceAll(regex,"");
System.out.println(str);
}
}
6.import java.util.*;
public class E {
public static void main(String args[]) {
String cost = "数学87分,物理76分,英语96分";
Scanner scanner = new Scanner(cost);
https://www.sodocs.net/doc/0f17356298.html,eDelimiter("[^0123456789.]+");
double sum=0;
int count =0;
while(scanner.hasNext()){
try{ double score = scanner.nextDouble();
count++;
sum = sum+score;
System.out.println(score);
}
catch(InputMismatchException exp){
String t = scanner.next();
}
}
System.out.println("总分:"+sum+"分");
System.out.println("平均分:"+sum/count+"分");
}
}
习题九(第9章)
一、问答题
1.Frame容器的默认布局是BorderLayout布局。
2.不可以。
3.ActionEvent。
4.DocumentEvent。
5.5个。
6.MouseMotionListener。
二、选择题
1.C。2.A。3.A。4.D。5.C。
三、编程题
1.import java.awt.*;
import javax.swing.event.*;
import javax.swing.*;
import java.awt.event.*;
public class E {
public static void main(String args[]) {
Computer fr=new Computer();
}
}
class Computer extends JFrame implements DocumentListener {
JTextArea text1,text2;
int count=1;
double sum=0,aver=0;
Computer() {
setLayout(new FlowLayout());
text1=new JTextArea(6,20);
text2=new JTextArea(6,20);
add(new JScrollPane(text1));
add(new JScrollPane(text2));
text2.setEditable(false);
(text1.getDocument()).addDocumentListener(this);
setSize(300,320);
setVisible(true);
validate();
setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
}
public void changedUpdate(DocumentEvent e) {
String s=text1.getText();
String []a =s.split("[^0123456789.]+");
sum=0;
aver=0;
for(int i=0;i try { sum=sum+Double.parseDouble(a[i]); } catch(Exception ee) {} } aver=sum/count; text2.setText(null); text2.append("\n和:"+sum); text2.append("\n平均值:"+aver); } public void removeUpdate(DocumentEvent e){ changedUpdate(e); } public void insertUpdate(DocumentEvent e){ changedUpdate(e); } } 2. import java.awt.*; import javax.swing.event.*; import javax.swing.*; import java.awt.event.*; public class E { public static void main(String args[]) { ComputerFrame fr=new ComputerFrame(); } } class ComputerFrame extends JFrame implements ActionListener { JTextField text1,text2,text3; JButton buttonAdd,buttonSub,buttonMul,buttonDiv; JLabel label; public ComputerFrame() { setLayout(new FlowLayout()); text1=new JTextField(10); text2=new JTextField(10); text3=new JTextField(10); label=new JLabel(" ",JLabel.CENTER); label.setBackground(Color.green); add(text1); add(label); add(text2); add(text3); buttonAdd=new JButton("加"); buttonSub=new JButton("减"); buttonMul=new JButton("乘"); buttonDiv=new JButton("除"); add(buttonAdd); add(buttonSub); add(buttonMul); add(buttonDiv); buttonAdd.addActionListener(this); buttonSub.addActionListener(this); buttonMul.addActionListener(this); buttonDiv.addActionListener(this); setSize(300,320); setVisible(true); validate(); setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE); } public void actionPerformed(ActionEvent e) { double n; if(e.getSource()==buttonAdd) { double n1,n2; try{ n1=Double.parseDouble(text1.getText()); n2=Double.parseDouble(text2.getText()); n=n1+n2; text3.setText(String.valueOf(n)); label.setText("+"); } catch(NumberFormatException ee) { text3.setText("请输入数字字符"); } } else if(e.getSource()==buttonSub) { double n1,n2; try{ n1=Double.parseDouble(text1.getText()); n2=Double.parseDouble(text2.getText()); n=n1-n2; text3.setText(String.valueOf(n)); label.setText("-"); } catch(NumberFormatException ee) { text3.setText("请输入数字字符"); } } else if(e.getSource()==buttonMul) {double n1,n2; try{ n1=Double.parseDouble(text1.getText()); n2=Double.parseDouble(text2.getText()); n=n1*n2; text3.setText(String.valueOf(n)); label.setText("*"); } catch(NumberFormatException ee) { text3.setText("请输入数字字符"); } } else if(e.getSource()==buttonDiv) {double n1,n2; try{ n1=Double.parseDouble(text1.getText()); n2=Double.parseDouble(text2.getText()); n=n1/n2; text3.setText(String.valueOf(n)); label.setText("/"); } catch(NumberFormatException ee) { text3.setText("请输入数字字符"); } } validate(); } } 3.import java.awt.*; import java.awt.event.*; import javax.swing.*; public class E { public static void main(String args[]){ Window win = new Window(); win.setTitle("使用MVC结构"); win.setBounds(100,100,420,260); } } class Window extends JFrame implements ActionListener { Lader lader; //模型 JTextField textAbove,textBottom,textHeight; //视图 JTextArea showArea; //视图 JButton controlButton; //控制器 Window() { init(); setVisible(true); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); } void init() { lader = new Lader(); textAbove = new JTextField(5); textBottom = new JTextField(5); textHeight = new JTextField(5); showArea = new JTextArea(); controlButton=new JButton("计算面积"); JPanel pNorth=new JPanel(); pNorth.add(new JLabel("上底:")); pNorth.add(textAbove); pNorth.add(new JLabel("下底:")); pNorth.add(textBottom); pNorth.add(new JLabel("高:")); pNorth.add(textHeight); pNorth.add(controlButton); controlButton.addActionListener(this); add(pNorth,BorderLayout.NORTH); add(new JScrollPane(showArea),BorderLayout.CENTER); } public void actionPerformed(ActionEvent e) { try{ double above = Double.parseDouble(textAbove.getText().trim()); double bottom = Double.parseDouble(textBottom.getText().trim()); double height = Double.parseDouble(textHeight.getText().trim()); lader.setAbove(above) ; lader.setBottom(bottom); lader.setHeight(height); double area = lader.getArea(); showArea.append("面积:"+area+"\n"); } catch(Exception ex) { showArea.append("\n"+ex+"\n"); } } } class Lader { double above,bottom,height; public double getArea() { double area = (above+bottom)*height/2.0; return area; } public void setAbove(double a) { above = a; } public void setBottom(double b) { bottom = b; } public void setHeight(double c) { height = c; } } 习题十(第10章) 一、问答题 1.使用FileInputStream。 2.FileInputStream按字节读取文件,FileReader按字符读取文件。 3.不可以。 4.使用对象流写入或读入对象时,要保证对象是序列化的。 5.使用对象流很容易得获取一个序列化对象的克隆,只需将该对象写入到对象输出流,那么用对象输入流读回的对象一定是原对象的一个克隆。 二、选择题 1.C。2.B。 三、阅读程序 1.【代码1】:51。【代码2】:0。 2.【代码1】:3。【代码2】:abc。【代码3】:1。【代码4】:dbc。3.上机实习题,解答略。 四、编程题 1.import java.io.*; public class E { public static void main(String args[]) { File f=new File("E.java");; try{ RandomAccessFile random=new RandomAccessFile(f,"rw"); random.seek(0); long m=random.length(); while(m>=0) { m=m-1; random.seek(m); int c=random.readByte(); if(c<=255&&c>=0) System.out.print((char)c); else { m=m-1; random.seek(m); byte cc[]=new byte[2]; random.readFully(cc); System.out.print(new String(cc)); } } } catch(Exception exp){} } } 2. import java.io.*; public class E { public static void main(String args[ ]) { File file=new File("E.java"); File tempFile=new File("temp.txt"); try{ FileReader inOne=new FileReader(file); BufferedReader inTwo= new BufferedReader(inOne); FileWriter tofile=new FileWriter(tempFile); BufferedWriter out= new BufferedWriter(tofile); String s=null; int i=0; s=inTwo.readLine(); while(s!=null) { i++; out.write(i+" "+s); out.newLine(); s=inTwo.readLine(); } inOne.close(); inTwo.close(); out.flush(); out.close(); tofile.close(); } catch(IOException e){} } } 3.import java.io.*; import java.util.*; public class E { public static void main(String args[]) { File file = new File("a.txt"); Scanner sc = null; double sum=0; int count = 0; try { sc = new Scanner(file); https://www.sodocs.net/doc/0f17356298.html,eDelimiter("[^0123456789.]+"); while(sc.hasNext()){ try{ double price = sc.nextDouble(); count++; sum = sum+price; System.out.println(price); } catch(InputMismatchException exp){ String t = sc.next(); } } System.out.println("平均价格:"+sum/count); } catch(Exception exp){ System.out.println(exp); } } } 习题十一(第11章) 一、问答题 Chapter 8 Objects and Classes 1. See the section "Defining Classes for Objects." 2. The syntax to define a class is public class ClassName { } 3.The syntax to declare a reference variable for an object is ClassName v; 4.The syntax to create an object is new ClassName(); 5. Constructors are special kinds of methods that are called when creating an object using the new operator. Constructors do not have a return type—not even void. 6. A class has a default constructor only if the class does not define any constructor. 7. The member access operator is used to access a data field or invoke a method from an object. 8.An anonymous object is the one that does not have a reference variable referencing it. 9.A NullPointerException occurs when a null reference variable is used to access the members of an object. 10.An array is an object. The default value for the elements of an array is 0 for numeric, false for boolean, ‘\u0000’ for char, null for object element type. 11.(a) There is such constructor ShowErrors(int) in the ShowErrors class. The ShowErrors class in the book has a default constructor. It is actually same as public class ShowErrors { public static void main(String[] args) { 习题解答 习题(第章) 一、问答题 . .需个步骤: 1)用文本编辑器编写源文件。 2)使用编译源文件,得到字节码文件。 3)使用解释器运行程序。 .源文件由若干个类所构成。对于应用程序,必须有一个类含有( [])的方法,含有该方法的类称为应用程序的主类。不一定,但至多有一个类。 .:\\\\;.; .和 . .独行风格(大括号独占行)和行尾风格(左大扩号在上一行行尾,右大括号独占行)二、选择题 .。.。 三、阅读程序 .()。()两个字节码,分别是和。()得到“”,得到“: ”,得到“您好,很高兴认识您”习题(第章) 一、问答题 .用来标识类名、变量名、方法名、类型名、数组名、文件名的有效字符序列称为标识符。标识符由字母、下划线、美元符号和数字组成,第一个字符不能是数字。不是标识符。.关键字就是语言中已经被赋予特定意义的一些单词,不可以把关键字作为名字来用。和不是关键字。个关键字:。 .,,,,,,,。 .常量必须用或为后缀。常量用或为后缀,但允许省略后缀。 .一维数组名。二维数组名。 二、选择题 .。.。.。.。.【代码】【代码】【代码】【代码】。.。 三、阅读或调试程序 .属于操作题,解答略。 .属于操作题,解答略。.属于操作题,解答略。.【代码】:。【代码】:[]。.【代码】:。【代码】:四、编写程序 . { ( []) { (()'你'); (()'我'); (()'他'); } } . { ( [ ]) { 'α''ω'; ( <) (" "); } } 习题(第章) 一、问答题 . .不可以 . . 不是必须的 .结束语句的执行 .可以 二、选择题 .。.。.。 三、阅读程序 .你,苹,甜 .好好 . 四、编程序题 .{ 第8章图形用户界面编程 8.1 什么是组件?什么是容器?并说明各自的作用。 答:从实现角度来看,组件(Component)是构成GUI 的基本要素,作用是通过对不同事件的响应来完成和用户的交互或组件之间的交互;容器是能容纳和排列组件的对象,如Applet、Panel(面板)、Frame(窗口)等,作用就是放置组件并控制组件位置。 8.2 叙述AWT和Swing组件的关系,指出Swing组件的优点。 答:Swing是在AWT基础上扩展而来的,提供了非常丰富的组件,远远多于AWT,并且引入了新的概念和性能,这使得基于Swing开发GUI应用程序比直接使用AWT开发更为灵活、方便、效率高,而且能设计出更优美的、感受更好的GUI。Swing是由javax.swing包提供的,主要包括两种类型的组件:顶层容器和轻量级组件。它们都以“J”开头。 8.3 总结JFrame的使用要点,并说明如何实现窗体的正常退出。 答:JFrame类包含很多设置窗体的方法,可以用setTitle(String title)方法设置窗体标题,用setBounds(int x,int y,int width,int height)方法设置窗体显示的位置及大小,用setVisable(Boolean b)方法设置可见与否(默认不可见)。此外,向JFrame添加组件有两种方式:调用getContentPane()方法获得内容面板,而后向其中添加组件,或者创建一个中间容器并将组件添加其中,而后用setContentPane()方法把该中间容器设置为JFrame的内容面板。由于JFrame对象的关闭按钮的默认动作只是将窗体隐藏,所以为了正确关闭窗体,应通过setDefaultCloseOperation(int operation)方法设置关闭按钮的动作。 8.4 总结常用Swing组件使用特点。 答:常用Swing组件使用时,首先要创建对应组件的对象,并放置在容器中,一般来说可用setText(String t)设置其的文本信息,setFont(Font font):设置文本的字体及大小,对于列表类组件还可以用AddItem()等方法加入选项,用getSelectedIndices()以int[]形式获得被选中的所有选项的索引值,具体使用方法可参照例8.6。 8.5 查阅资料,简述三个菜单类组件之间的关系,并编写一个带有文件菜单的GUI程序。 答:菜单相关的类主要有菜单栏类JMenuBar、菜单类JMenu和菜单项类MenuItem,此外,还有单选菜单项类JRadioButtonMenuItem和复选菜单项类JCheckBoxMenuItem以及弹出式菜单类JPopupMenu等。前三者的关系是菜单放置在菜单栏上,菜单由若干个菜单项组成。 提示:带有文件菜单的GUI程序核心代码如下: Java2(第5版)最新答案耿祥义 第1章 一、问答题 1.James Gosling 2.需3个步骤: 1)用文本编辑器编写源文件。 2)使用javac编译源文件,得到字节码文件。 3)使用解释器运行程序。 3.由类所构成,应用程序必须有一个类含有public static void main(String args[])方法,含有该方法的类称为应用程序的主类。不一定,但最多有一个public类。 4.set classpath=D:\jdk\jre\lib\rt.jar;.; 5.java和class 6. java Bird 7.独行风格(大括号独占行)和行尾风格(左大扩号在上一行行尾,右大括号独占行) 二、选择题 1.B。2.D。 三、阅读程序 1.(a)Person.java。(b)两个字节码,分别是Person.class和Xiti.class。(c)得到“NoSuchMethodError”,得到“NoClassDefFoundError: Xiti/class”,得到“您好,很高兴认识您nice to meet you” 第2章 一、问答题 1.用来标识类名、变量名、方法名、类型名、数组名、文件名的有效字符序列称为标识符。标识符由字母、下划线、美元符号和数字组成,第一个字符不能是数字。false不是标识符。2.关键字就是Java语言中已经被赋予特定意义的一些单词,不可以把关键字作为名字来用。不是关键字。class implements interface enum extends abstract。 3.boolean,char,byte,short,int,long,float,double。 4.float常量必须用F或f为后缀。double常量用D或d为后缀,但允许省略后缀。5.一维数组名.length。二维数组名.length。 二、选择题 1.C。2.ADF。3.B。4.BE。5.【代码2】【代码3】【代码4】【代码5】。6.B。 三、阅读或调试程序 为一个2*2的线性方程设计一个名为LinearEquation的类,然后编写一个测试程序测试它: 代码:/* * To change this license header, choose License Headers in Project Properties. * To change this template file, choose Tools | Templates * and open the template in the editor. */ /** * * @author Administrator */ class LinearEquation{ int a,b,c,d,e,f; LinearEquation(int a,int b,int c,int d,int e,int f){ this.a=a; this.b=b; this.c=c; this.d=d; this.e=e; this.f=f; } int getA(){ return a; } int getB(){ return b; } int getC(){ return c; } int getD(){ return d; } int getE(){ return e; } int getF(){ return f; } boolean isSolvable(){ return a*d-b*c!=0?true:false; } int getX(){ return (e*d-b*f)/(a*d-b*c); } int getY(){ return (a*f-e*c)/(a*d-b*c); } } public class XiTi811 { public static void main(String[] args){ System.out.println("请输入a,b,c,d,e,f的值:"); java.util.Scanner input=new java.util.Scanner(System.in); System.out.print("a="); int a=input.nextInt(); System.out.print("b="); int b=input.nextInt(); 习题解答 习题1(第1 章) 一、问答题 1. James Gosling 2.需 3 个步骤: 1)用文本编辑器编写源文件。 2)使用 javac 编译源文件 ,得到字节码文件。 3)使用解释器运行程序。 3 .源文件由若干个类所构成。对于应用程序,必须有一个类含有 public static void main(String args[]) 的方法,含有该方法的类称为应用程序的主类。不一定,但至多有一个 public 类。 4. set classpath=D:\jdk\jre\lib\rt.jar;.; 5.java 和 class 6.java Bird 7.独行风格(大括号独占行)和行尾风格(左大扩号在上一行行尾,右大括号独占行) 二、选择题 1.B。 2. D。 三、阅读程序 1. ( a) Person.java。 ( b)两个字节码,分别是 Person.class 和 Xiti.class。 ( c)得到 “ NoSuchMethodError ”,得到“ NoClassDefFoundError: Xiti/class ”,得到“您好,很高兴认识您nice to meet you” 习题2(第2 章) 一、问答题 1.用来标识类名、变量名、方法名、类型名、数组名、文件名的有效字符序列称为标识符。标识符由字母、下划线、美元符号和数字组成,第一个字符不能是数字。 false 不是标识符。 2.关键字就是 Java 语言中已经被赋予特定意义的一些单词,不可以把关键字作为名字来 用。 true 和 false 不是关键字。 6 个关键字: class implements interface enum extends abstract。 3. boolean, char, byte, short, int, long, float, double。 4. float 常量必须用 F 或 f 为后缀。 double 常量用 D 或 d 为后缀,但允许省略后缀。 5.—维数组名.length。二维数组名.length。 二、选择题 1.C。 2. ADF 。 3. B。 4. BE。 5.【代码2】【代码3】【代码4】【代码5】。 6. B。 Java语言程序设计 第八章课后习题答案 1.进程和线程有何区别,Java是如何实现多线程的。 答:区别:一个程序至少有一个进程,一个进程至少有一个线程;线程的划分尺度小于进程;进程在执行过程中拥有独立的内存单元,而多个线程共享内存,从而极大地提高了程序的运行效率。 Java程序一般是继承Thread 类或者实现Runnable接口,从而实现多线程。 2.简述线程的生命周期,重点注意线程阻塞的几种情况,以及如何重回就绪状态。 答:线程的声明周期:新建-就绪-(阻塞)-运行--死亡 线程阻塞的情况:休眠、进入对象wait池等待、进入对象lock池等待; 休眠时间到回到就绪状态;在wait池中获得notify()进入lock池,然后获得锁棋标进入就绪状态。 3.随便选择两个城市作为预选旅游目标。实现两个独立的线程分别显示10次城市名,每次显示后休眠一段随机时间(1000毫秒以内),哪个先显示完毕,就决定去哪个城市。分别用Runnable接口和Thread类实现。 (注:两个类,相同一个测试类) //Runnable接口实现的线程runable类 public class runnable implements Runnable { private String city; public runnable() {} public runnable(String city) { this.city = city; } public void run() { for (int i = 0; i < 10; i++) { System.out.println(city); try { //休眠1000毫秒。 Thread.sleep(1000); } catch (InterruptedException e) { e.printStackTrace(); } } } } // Thread类实现的线程thread类 public class runnable extends Thread { private String city; public runnable() {} 习题解答 习题一(第1章) 一、问答题 1.James Gosling 2.需3个步骤: 1)用文本编辑器编写源文件。 2)使用javac编译源文件,得到字节码文件。 3)使用解释器运行程序。 3.由类所构成,应用程序必须有一个类含有public static void main(String args[])方法,含有该方法的类称为应用程序的主类。不一定,但最多有一个public类。 4.set classpath=D:\jdk\jre\lib\rt.jar;.; 5.java和class 6. java Bird 7.独行风格(大括号独占行)和行尾风格(左大扩号在上一行行尾,右大括号独占行) 二、选择题 1.B。2.D。 三、阅读程序 1.(a)Person.java。(b)两个字节码,分别是Person.class和Xiti.class。(c)得到“NoSuchMethodError”,得到“NoClassDefFoundError: Xiti/class”,得到“您好,很高兴认识您nice to meet you” 习题二(第2章) 一、问答题 1.用来标识类名、变量名、方法名、类型名、数组名、文件名的有效字符序列称为标识符。标识符由字母、下划线、美元符号和数字组成,第一个字符不能是数字。false不是标识符。2.关键字就是Java语言中已经被赋予特定意义的一些单词,不可以把关键字作为名字来用。不是关键字。class implements interface enum extends abstract。 3.boolean,char,byte,short,int,long,float,double。 4.float常量必须用F或f为后缀。double常量用D或d为后缀,但允许省略后缀。5.一维数组名.length。二维数组名.length。 二、选择题 1.C。2.ADF。3.B。4.BE。5.【代码2】【代码3】【代码4】【代码5】。6.B。 Java程序设计第三次作业 第7章习题 4.1程序代码 import java.util.*; public class SUMANDAVERAGE { public static void main(String[] args) { Scanner reader=new Scanner(System.in); double sum=0; int m=0; while(reader.hasNextDouble()){ double x=reader.nextDouble(); assert x>=0&&x<=100:"该数是非法的成绩数据!"; m=m+1; sum=sum+x; } System.out.printf("%d个数的和为%f\n", m,sum); System.out.printf("%d个数的平均值为%f\n",m,sum/m); } } 4.2运行结果 第8章习题 4.1程序代码 package kehou; import java.util.Calendar; import java.util.InputMismatchException; import java.util.Scanner; public class BC8_4 { public static void main(String[] args) { System.out.print("请选择你要完成的功能:\n1,转换字母大小写及连接两个字符串。\n2,得到字符串第一个和最后一个字符。\n3,计算两个时间之间的间隔天数。\n" + "4,使用简单的Math类用法。\n5,剔除字符串中的非数字字符。\n6,解析字符串。\n."); System.out.print("输入数字i(i=1...6;输入0结束!):"); Scanner reader=new Scanner(System.in); 第1章Java 语言入门 1-1开发与运行Java程序需要经过哪些主要步骤和过程? 1-2怎样区分应用程序和小应用程序?应用程序的主类或小应用程序的主类必须用public修饰吗? 1-3Java程序是有什么组成的?一个程序中必须要有public类吗?Java源文件的命名规则是怎样的? 1-4在运行小应用程序的html文件中可以使用codebase属性制定小应用程序的字节码所驻留的目录。如果不使用codebase属性,小应用程序的字节码文件必须和运行它的html在同一目录中,编写一个小应用程序并将它的字节码存放在某个目录中,比如c:\Boy. 把运行该小应用程序的html文件(注意其中的codebase属性): < applet code=你的小程序的字节码wdith=20 height=30 codebase=c:\boy> 存放在另一个目录中(查阅有关编写网页方面的书籍,会有更 详细的关于怎样在一个网页中嵌入一个小应用程序的讲解)。 第2章标识符、关键字和数据类型 2-1上机运行下列程序,注意观察输出的结果。 public class E { public static void main ( string args [ ] ) { for (int i=20302; i<=20302; i++) { System.out. println (( char ) i ); } } 2-2System.out. println (“你好”);可输出字符串值,也可以使用System.out. println()输出变量或表达式的值,只需使用并置 符号:“+”将变量、表达式或一个常数值与一个字符串并置即 可,如System.out. println(“”+x);System.out. println(“:” +123+“大于”+122)等。上机调试下列程序,注意观察结果,特别注意System.out. print()和System.out. println()的区 别。 public class OutputData { public static void main ( string args [ ] ) { int x=234, y=432 ; System.out. println (“:” +x+“<”+2*x); System.out. print (“我输出结果后不回车“); System.out. println (“我输出结果后自动回车到下一行”); } } 《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; 三、问答题 1、简述Java的特点。 面向对象、跨平台性、健壮性、安全性、可移植性、多线程性、动态性等。 2、简述JRE与JDK的区别。 Java 2实用教程(第三版) 清华大学出版社 (编著耿祥义张跃平) 例子源代码 建议使用文档结构图 (选择Word菜单→视图→文档结构图) 第一章Java 语言入门例子1 public class Hello { public static void main (String args[ ]) { System.out.println("你好,很高兴学习Java"); } } 例子2 public class People { int height; String ear; void speak(String s) { System.out.println(s); } } class A { public static void main(String args[]) { People zhubajie; zhubajie=new People(); zhubajie.height=170; zhubajie.ear="两只大耳朵"; System.out.println("身高:"+zhubajie.height); System.out.println(zhubajie.ear); zhubajie.speak("师傅,咱们别去西天了,改去月宫吧"); } } 例子3 import java.applet.*; import java.awt.*; public class Boy extends Applet { public void paint(Graphics g) { g.setColor(Color.red); g.drawString("我一边喝着咖啡,一边学Java呢",5,30); g.setColor(Color.blue); 第4章类、对象和接口 1. 类中的实例变量在什么时候会被分配内存空间? 答: 当该类创建对象之后,实例变量才会被分配相应的内存空间。 2. 什么叫方法的重载?构造方法可以重载吗? 答:①一个类中可以有多个方法具有相同的名字,但这些方法的参数必须不同,即或者是参数的个数不同,或者是参数的类型不同(方法的重载体现了多态性,即功能多态性)。 ②构造方法可以重载。 3. 类中的实例方法可以操作类变量(static变量)吗?类方法(static方法)可 以操作实例变量吗? 答:①类中的实例方法可以操作类变量。 ②类方法不可以操作实例变量 4. 类中的实例方法可以用类名直接调用吗? 答: 类中的实例方法不可以用类名直接调用。 5. 举例说明protected方法和友好方法的区别。 答: 当子类与父类不在同一个包中时,子类可以继承父类的protected方法;而友好方法此时则不能被子类继承。 6. 举例说明类变量和实例变量的区别。 答:⑴书写: 定义成员变量时,类变量有static修饰;实例变量没有static修饰。例: class A { int x; //实例变量 static int y; //类变量 } ⑵内存: 不创建对象,类的实例变量不会被分配内存空间;类变量被分配相应的内存空间。 不同对象的实例变量被分配不同的内存空间;不同对象的类变量被分配相同的内存空间。 任何一个对象改变类变量,其他对象的相应类变量也发生相应变化。 一个对象的实例变量发生改变,不影响其他对象的相应实例变量。 例: 执行语句: A1.x=10; A1.y=20; 这时A2.x的值也是10;而A2.y的值保持原来的初值。 ⑶使用: 类变量可以被类方法操作;而实例变量不能被类方法操作。 例: class A { int x; static int y; static void func() { 《Java语言程序设计(基础篇)》(第10版梁勇著) 第八章练习题答案 8.1 public class Exercise08_01 { public static void main(String[] args) { Scanner input = new Scanner(System.in); System.out.print("Enter a 3 by 4 matrix row by row: "); double[][] m = new double[3][4]; for (int i = 0; i < m.length; i++) for (int j = 0; j < m[i].length; j++) m[i][j] = input.nextDouble(); for (int j = 0; j < m[2].length; j++) { System.out.println("Sum of the elements at column " + j + " is " + sumColumn(m, j)); } } public static double sumColumn(double[][] m, int columnIndex) { double total = 0; for (int i = 0; i < m.length; i++) total += m[i][columnIndex]; return total; } } 8.1附加 public class Exercise08_01Extra { public static void main(String[] args) { final int N = 2; Scanner input = new Scanner(System.in); double[][] A = new double[N][N]; System.out.print("Enter a, b, c, d: "); A[0][0] = input.nextDouble(); A[0][1] = input.nextDouble(); 《JA V A实用教程》作业2 第四章习题 4.1程序代码 (1)CPU.java public class CPU { int speed; void setSpeed(int m){this.speed=m;} int getSpeed(){return this.speed;} } (2)HardDisk.java public class HardDisk { int amount; void setAmount(int a){this.amount=a;} int getAmount(){return this.amount;} } (3)pc.java public class PC { CPU cpu; HardDisk HD; void setCPU(CPU x){cpu=x;} void setHardDisk(HardDisk h){HD=h;} void show(){ System.out.print("CPU的速度是:"); System.out.println(" "+this.cpu.getSpeed()); System.out.print("硬盘的大小是:"); System.out.println(" "+this.HD.getAmount()); } } (4)TEST.java public class TEST { public static void main(String[] args) { CPU c=new CPU(); c.setSpeed(2200); HardDisk disk=new HardDisk(); disk.setAmount(200); PC pc=new PC(); pc.setCPU(c); pc.setHardDisk(disk); pc.show(); } } 第一章 【思考题】 1、简述path环境变量的作用。 2、请说说你对JVM的理解。 【答案】 1、path环境变量是系统环境变量中的一种,它用于保存一系列可执行文件的路径,每个路径之间以分号分隔。当在命令行窗口运行一个可执行文件时,操作系统首先会在当前目录下查找是否存在该文件,如果不存在会继续在path环境变量中定义的路径下去寻找这个文件,如果仍未找到,系统会报错。 2、JVM是Java Virtual Machine的缩写,全称是Java虚拟机。Java语言的一个非常重要的特性就是跨平台性,而Java虚拟机是实现这一特性的关键。不同的操作系统需要使用不同版本的虚拟机,这种方式使得Java语言能够“一次编写,到处运行”。Java语言编译程序只需生成在Java虚拟机上运行的目标代码(字节码),就可以在多种平台上不加修改地运行。Java虚拟机在执行字节码时,把字节码解释成具体平台上的机器指令执行。 第二章 【思考题】 1、请简述&与&&的区别。 2、简述break、continue和return语句的区别。 【答案】 1、&和&&都可以用作逻辑与的运算符,表示逻辑与(and),当运算符两边的表达式的结果都为true时,整个运算结果才为true,否则,只要有一方为false,则结果为false。 当运算符“&”和“&&”的右边为表达式时,使用“&”进行运算,不论左边为true或 者false,右边的表达式都会进行运算。如果使用“&&”进行运算,当左边为false时,右边的表达式则不会进行运算,因此“&&”被称作短路与。 2、break语句:在switch条件语句和循环语句中都可以使用break语句。当它出现在switch条件语句中时,作用是终止某个case并跳出switch结构。当它出现在循环语句中,作用是跳出循环语句,执行后面的代码。 continue语句:continue语句用在循环语句中,它的作用是终止本次循环,执行下一次循环。 return语句:return语句可以用于从当前的方法中退出,返回到调用该方法的语句处,继续执行。return 返回一个值给调用该方法的语句,返回值的数据类型必须与方法的声明中的返回值的类型一致。 第三章 【思考题】 1、什么是对象什么是类类和对象有什么关系 2、请简述this关键字的应用。 【答案】 1、对象(Object)是一个应用系统中用来描述客观事物的实体,是具有特定属性和行为(方法)的基本运行单位,是类的一个特定状态下的实例。对象可以是一个实体、一个名词、一个可以想象为有自己标识的任何东西,可以概况来说:万物皆对象。 类(Class)是Java代码的基本组织模块,是用以描述一组具有共同属性和行为对象的基本原型,是对这组对象的概况、归纳和抽象的表达。类是对象的模板,它定义了本类对象所拥有的属性集和行为集,是对一组具有相同属性和相同方法的对象的定义。 类和对象之间是抽象和具体的关系:类是一个模板,是对某一类事物的抽象描述,而对象用于表示现实中该类事物的个体。类是在对象之上的抽象,对象则是类的具体化,是类的实例。类必须通过对象才能使用,而对象中的属性和行为必须在类中定义。 课程代码:座位号: 新疆大学期末考试 《Java2实用教程》试卷 姓名:学号:专业: 学院:班级: 题号 一 二 三 四 五 总分 得分 第一部分选择题(共12分) 一、单项选择题(本大题共4小题,每题只有一个正确答案,答对一题得3分,共12分) 1、下面的代码段中,执行之后i 和j 的值是什么?【】 inti=1; intj; j=i++; A 、1,1 B 、1,2 C 、2,1 D 、2,2 2、已知如下的命令执行javaMyTestabc 【】 请问哪个语句是正确的? A 、args[0]="MyTestabc" B 、args[0]="MyTest" C 、args[0]="a" 装 订 线 内 答 题 无效 **** ** ******** ** ** ****装 ******** **** ******** 订 ** ************ ** ****线 ** ** ** ** ** ** ** ** ** 得分 评卷人 D、args[2]='b' 3、以下哪个方法用于定义线程的执行体?【】 Astart() B、init() C、run() D、main() 4、下面哪个函数是publicvoidexample(){...}的重载函数【】 A、publicvoidexample(intm){...} B、publicintexample1(){...} C、publicvoidexample2(){...} D、以上都不对 第二部分非选择题(共88分) 二、名词解释(本大题3小题,每题4分,共12分。) 1、方法重载 2、构造方法 3、多态 Java2 实用教程(第三版) 课后习题参考答案 第1 章Java 入门 1. 开发与运行Jav a 程序需要经过哪些主要步骤和过程? 答:( 1)编写Java 源文件:使用文本编辑器(Edit 或记事本),拓展名为.java (2)编译Java 源文件:使用Java 编译器(javac.exe)。得到字节码文件*.class (3)运行Java 程序:Java 应用程序使用Java 解释器(java.exe)执行字节码文件; Java 小应用程序使用支持Java 标准的浏览器来执行。 2. 怎样区分应用程序和小应用程序?应用程序的主类或小应用程序的主类必须用public 修饰吗? 答:①应用程序必须有main 方法,这个方法是程序执行的入口。 小应用程序没有main 方法。 ②应用程序的主类不一定用public 修饰;小应用程序的主类必须用public 修饰。 3. Jav a 程序是由什么组成的?一个程序中必须要有public 类吗?Jav a 源文件的命名规则是怎样的?答:①Java 程序由类组成。 ②应用程序可以没有public 类;小应用程序一定有一个类是public 类(主类)。 ③应用程序:如果只有一个类,源文件名与该类的类名相同,拓展名为.java; 有多个类时,如果有public 类(最多一个),源文件名与public 类的类 名相同,拓展名是.java;没有public 类,源文件名与任何一个类的类名 相同即可,拓展名为.java。 小应用程序:源文件名与主类的类名相同,拓展名是.java。 4. 在运行小程序的HTM L 文件中可以使用codebas e 属性指定小程序的字节码所驻留的目录。如果不使用 codebas e 属性,小程序的字节码文件必须和运行它的HTM L 文件在同一目录中。编写一个小程序并将小程 序的字节码存放在某个目录中,比如C:\5000;把运行该小程序的HTM L 文件(注意其中的codebas e 属性): 存放在另一个目录中。 答:以书中小应用程序为例进行说明: ①编写Java 小应用程序源代码 import java.applet.*; import java.awt.*; public class Boy extends Applet { 第1章Java入门一、选择题 1.下列选项中,不属于Java语言特点的一项是(C )。 (A)分布式(B)安全性 (C)编译执行(D)面向对象 【解析】Java程序采用解释执行的方法。在系统编译运行Java程序时,Java编译器将Java程序转化为字节码,在运行时,解释器将编译得到的字节码进行解释执行。2.在Java语言中,( C )是最基本的元素? (A)方法(B)包 (C)对象(D)接口 【解析】构成Java程序的基本元素类(抽象的对象)。3.编译一个定义了3个类和10个方法的Java源文件后,会产生(D )个字节码文件?扩展名是(D )? (A)13个字节码文件,扩展名为.class (B)1个字节码文件,扩展名为.class (C)3个字节码文件,扩展名为.java (D)3个字节码文件,扩展名为.class 【解析】源文件中的每一个类编译后都会生成一个字节码文件,字节码文件的扩展名是.class。 4.在创建Applet应用程序时,需要用户考虑问题是( B )。 (A)窗口如何创建(B)绘制的图形在窗口中的位置 (C)程序的框架(D)事件处理 【解析】创建Applet程序时必须继承系统类Applet,而Applet类中已经包含了如何创建窗口以及事件处理等内容,这类程序的框架也都是固定的,而绘制图形在窗口中的位置则需要由用户确定。 5.Java语言属于(B )种语言? (A)面向机器的语言(B)面向对象的语言 (C)面向过程的语言(D)面向操作系统的语言 【解析】Java语言是一种纯面向对象的语言。6.下列关于Application和Applet程序的说法中不正确的一项是(B )。 (A)Application使用解释器java.exe (B)Application不使用独立的解释器 (C)Applet在浏览器中运行 (D)Applet必须继承Java的Applet类 【解析】Application程序包含main()方法,它是一种独立执行的程序,因此必须使用独立的解释器解释执行。7.下列选项中,不属于Java核心包的一项是(A )。 (A)javax.swing (B)java.io (C)java.utile (D)https://www.sodocs.net/doc/0f17356298.html,ng 【解析】凡是以java开头的包都是Java核心包,以javax开头的包则属于Java扩展包。 8.下列描述中,不正确的是(A )。 (A)不支持多线程 (B)一个Java源文件不允许有多个公共类 (C)Java通过接口支持多重继承 (D)Java程序分为Application和Applet两类 【解析】Java是支持多线程的语言。 9.阅读下列代码,选出该代码段正确的文件名(C )。 class A{ void method1(){ System.out.println("Method1 in class A"); } } public class B{ void method2(){ System.out.println("Method2 in class B"); } public static void main(String[] args){ System.out.println("main() in class B"); } } (A)A.java (B)A.class (C)B.java (D)B.class 【解析】Java源文件名必须和公共类的名字完全一样,源文件的扩展名为.java。 10.编译下面源程序会得到哪些文件(D )? class A1{ } class A2{ } public class B{ public static void main(String[] args){ } } (A)只有B.class文件(B)只有A1.class 和A2.class文件 (C)编译不成功(D)A1.class、A2.class和B.class文件 【解析】由于该程序包含3个类,每个类编译后都会生成1个字节码文件,因此编译后会生成以这3个类名命名的字节码文件。Java语言程序设计第九版第八章答案
Java2实用教程(第5版)习题解答(活动za)
java习题及答案第8章 习题参考答案
Java2实用教程(第5版)最新答案-耿祥义
java语言程序设计第八章第十一题参考答案
Java2实用教程(第5版)习题解答
Java语言程序设计郑莉第八章课后习地的题目详解
java2实用教程第4版_习题解答
《java2实用教程》(第四版)课后答案 第七章-第八章
java2实用教程试题
《Java基础入门》课后章节习题及答案(完整版)
java2实用教程(第3版例子代码)
Java2实用教程(第三版)课后习题参考答案
《Java语言程序设计(基础篇)》(第10版 梁勇 著)第八章练习题答案
《java2实用教程》(第四版)课后答案 第四章-第六章
Java基础程序设计_课后习题
Java2实用教程试题及答案(新大)
Java2实用教程课后复习题参考答案
JAVA各章习题及答案 -