java语言程序设计课后习题答案解析
- 格式:doc
- 大小:62.50 KB
- 文档页数:7
Java语言程序设计 (郑莉 )第二章习题答案1.什么是对象、类,它们之间的联系答:1)对象是包括现实世界物体特点的抽象实体,它反响系统为之保存信息和与它交互的能力。
对象是一些属性及服务的封装体,在程序设计领域,能够用“对象=数据+作用于这些数据上的操作”来表示。
现实生活中对象是指客观世界的实体;在程序中对象是指一组变量和有关方法的会集。
2)类是既有相同操作功能和相同的数据格式的对象的会集与抽象!3)两者的关系:对象是类的详尽实例. 。
2.什么是面向对象的程序设计方法它有那些基本特点答:面向对象程序设计从所办理的数据下手,以数据为中心而不是以服务为中心来描述系统。
它把编程问题视为一个数据会集,数据有对于功能而言,拥有更强的牢固性。
它的特点:抽象,封装,继承,多态。
3(无用)4.请讲解类属性、实例属性及其差异。
答:实例属性,由一个个的实例用来储藏全部实例都需要的属性信息,不相同实例的属性值可能会不相同。
5.请讲解类方法、实例属性及其差异。
答:实例方法表示特定对象的行为,在声明时前面不加static修饰符,在使用时需要发送给一个类实例。
类方法也称为静态方法,在方法声明时前面需加static修饰符,类方法表示详尽实例中类对象的共有行为。
差异:实例方法能够直接接见实例变量,调用实例方法,实例方法能够直接接见类变量,调用类方法;类方法能够直接调用类变量和类方法,类方法不能够直接调用实例变量和实例方法;6.类的接见控制符有哪几种详尽含义及其差异。
答:类的接见控制符只有public (公共类)及无修饰符(默认类)两种。
差异:当使用 public修饰符时表示全部其他的类都能够使用此类;当没有修饰符时,则只有与此类处于同一包中的其他类能够使用类。
7类成员的接见控制符有哪几种他们对类成员分别有哪些接见限制的作用答 : 类成员的接见控制符有public,private,protecte及无修饰符.public( 公有的 ): 用 public修饰的成分表示公有的, 也就是它可以被其他任何对象接见( 前提是对累成员所在的类接见有接见权限).Private(保护的 ) :类中限制为private的成员只能被这个类本身接见,在类外不能见。
Java语⾔程序设计(第三版)第⼆章课后习题答案(仅供参考)2.1 注意不同类型转换1import java.util.Scanner;23public class Ch02 {4public static void main(String[] args) {5 Scanner sc = new Scanner(System.in);6double f = sc.nextDouble();7double t = (5.0/9)*(f-32); // 注意 (5/9) 结果为整形要写成 (5.0/9)8 System.out.println(t)9 }2.21import java.util.Scanner;23public class Ch02 {4public static void main(String[] args) {5 Scanner sc = new Scanner(System.in);6 System.out.println("请输⼊圆柱体半径和⾼:");7double r = sc.nextDouble();8double h = sc.nextDouble();9double v = Math.PI * r * r * h; //圆周率⽅法 Math.PI10 System.out.println(v);11 }2.31import java.util.Scanner;23public class Ch02 {4public static void main(String[] args) {5 Scanner sc = new Scanner(System.in);6 System.out.println("请输⼊体重和⾝⾼:");7double g = sc.nextDouble();8double h = sc.nextDouble();9double BMI = g / (h * h);10 System.out.println(BMI);11 }2.4 使⽤循环每次对个位取数相加取数后除以10 使前⼀位变为个位继续判断⼩于等于0时停⽌1import java.util.Scanner;23public class Ch02 {4public static void main(String[] args) {5int sum = 0;6 Scanner sc = new Scanner(System.in);7int num1 = sc.nextInt();8while (num1 > 0) // 与 0 ⽐较判断是否需要取数9 {10 sum += (num1%10); // 通过取余获得个位数字11 num1 /= 10; // 每次取余后除以1012 }13 System.out.println(sum);14 }2.5 注意 System.currentTimeMillis()⽅法返回long形需要转换为int形1public class Ch02 {2public static void main(String[] args) {3// 通过 System.currentTimeMillis() ⽅法获得从1970年1⽉1⽇ 00:00:00 到现在的毫秒数4// 28800000 是格林时间与我们时区的时间差值5// 对 86400000 取余是把满⼀天的时间都去掉获取多出来的不⾜⼀天的时间6int t = (int)((System.currentTimeMillis()+28800000)%86400000);7int hour = t/3600000; // 除 3600000 获取满⼩时的个数即求⼩时为⼏点8int mine = t%3600000/60000; // 计算不⾜⼀⼩时的时间⾥有多少分钟9int s = t%3600000%60000/1000; // 计算不⾜⼀分钟的时间⾥有多少秒不要忘记除以 1000 (因为单位为毫秒)10 System.out.println("当前时间: "+hour+":"+mine+":"+s+" GMT");11 }2.6 a 不能为 0 b2 - 4 * a * c 不能为 01import java.util.Scanner;23public class Ch02 {4public static void main(String[] args) {5double sum,a,b,c,t;6 Scanner sc = new Scanner(System.in);7while (true) {8 a = sc.nextDouble();9 b = sc.nextDouble();10 c = sc.nextDouble();11 t = b*b-4*a*c;12if (a == 0) {13 System.out.println("a 不能为 0,请重新测试 ^_^");14 } else if (t < 0) {15 System.out.println("b*b-4*a*c不能为0,请重新测试");16 }17else18 {19break;20 }21 }22 sum = ((-b+Math.sqrt(t)/(2*a))); //( 2*a ) 注意加括号23 System.out.println(sum);2.7 注意计算公式先后顺序多使⽤⼩括号1import java.util.Scanner;23public class Ch02 {4public static void main(String[] args) {5 Scanner sc = new Scanner(System.in);6double yrate = sc.nextDouble();7double amount = sc.nextDouble();8double year = sc.nextDouble();9double month = (amount * (yrate/12))/(1-(1/Math.pow(1+yrate/12,year*12)));10double sumamount = month*12*year;11 System.out.println("⽉⽀付⾦额:"+month+"\n总偿还⾦额:"+sumamount);12 }。
java语言程序设计课后答案作业参考答案习题一4、如何建立和运行Java程序,首先启动文本编辑器,如记事本、UltraEdit等,编辑程序代码,并以.Java作为文件扩展名保存程序源代码;然后进入dos环境利用javac编译源程序,生成扩展名为.class的字节码文件;再利用命令java运行字节码文件,得到程序的运行结果。
在集成开发环境Jbuilder、Eclipse下,可以完成程序的编辑、编译、调试及运行等所有任务。
5、public class LikeJava{public static void main(String [] args){System.out.println(“I Like Java Very much!”);}}习题二5、(1) 45 (2) false (3) 14 (4) 14 (5),6 (6) true(7) 129、public class Volume{public static void main(String [] args) {double r=0,v=0;r=double.parseDouble(args[0]);v=4*3.14159/3*r*r*r;System.out.println(“球体积为:”+v);}}习题三8、public class Factorials {public static void main(String args[]) {int i, j;long s=0, k;i=1;do //外循环开始{k = 1;j=1;do{//内循环开始k = k * j; //内循环体j++;}while(j<=i);//内循环结束System.out.println(i + "!=" + k);s = s + k;i++;}while(i<=20); //外循环结束System.out.println("Total sum=" + s); }}10、public class Num{public static void main(String[]args) {int i,j,k,n;for (n=100;n<1000;n++){i=n/100;j=(n-i*100)/10;k=n%10;if (i*i*i+j*j*j+k*k*k==n)System.out.print(n+" ");}}}习题四5、import java.util.Scanner;class Factor{long fac(int m){if(m==0||m==1)return 1;else return m*fac(m-1);}public static void main(String [] args){int i,n;long sum=0;String s="";Scanner input=new Scanner(System.in);System.out.print("Please input n: ");n=input.nextInt();Factor f=new Factor();for(i=1;i<=n;i++){ System.out.println(f.fac(i));sum=sum+f.fac(i);s=s+i+"!+";}System.out.println(s.substring(0,s.length()-1)+"="+sum); }}习题五2、import java.io.*;public class YangHuiOk{public static void main (String args[]) throws IOException {int max,a[][],i,j;char x;System.out.print("请输入杨辉三角要显示的行数: ");x=(char)System.in.read();max = Integer.parseInt(String.valueOf(x));a=new int[max][];for (i=0;i<max;i++){a[i]=new int[i+1];}a[0][0]=1;for (i=1;i<max;i++){a[i][0]=1;a[i][a[i].length-1]=1;for (j=1;j<a[i].length-1;j++){a[i][j]=a[i-1][j-1]+a[i-1][j];}}for(i=0;i<max;i++){//for(j=0;j<=max-i;j++) System.out.print(" ");for(j=0;j<=a[i].length-1;j++) System.out.print(a[i][j]+" "); System.out.println();}}}5、import java.util.Scanner;public class MatrixTurn {public static void main (String[] args) {int m,n;Scanner input=new Scanner(System.in);System.out.print("请输入矩阵的行数: ");m=input.nextInt();System.out.print("请输入矩阵的列数: ");n=input.nextInt();Matrix t=new Matrix(m,n);for(int i=1;i<=m;i++)//为矩阵各元素赋值for (int j=1;j<=n;j++)t.setElement(Math.random(),i,j);System.out.println("转置前的矩阵如下: ");for(int i=1;i<=m;i++){for (int j=1;j<=n;j++)//System.out.print(t.matrix[i][j]+" ");System.out.print(t.getElement(i,j)+" ");//访问矩阵元素方法1 System.out.println();}Matrix z;//声明转置矩阵z=t.turn(t);System.out.println("转置后的矩阵如下: ");for(int i=0;i<n;i++){for (int j=0;j<m;j++)System.out.print(z.matrix[i][j]+" ");//访问矩阵元素方法2,前提是matrix前无privateSystem.out.println();}}}习题六9、public class Vehicle,String color, kind;int speed;Vehicle(){color=”Red”;kind=”卡车”;speed=0;}public void setColor(String color1) { color=color1;}public void setSpeed(String speed1) { speed=speed1;}public void setKind(String kind1) { kind=kind1;}public String getColor( ) {return color;}public String getKind( ) {return kind;}public int getSpeed( ) {return speed;}public static void main(String [] args){Vehicle che=new Vehicle ();Che.setColor(“Blue”);Che.setSpeed(150);Che.setKind(“跑车”);System.out.p rintln(“有一辆”+che.getColor()+”的”+che.getKind()+”行驶在高速公路上”);System.out.println(“时速”+che.getSpeed()+”km/h”); }}习题七 7、public class Vehicle ,String color, kind;int speed;Vehicle(){color=” ”;kind=” ”;speed=0;}public void setColor(String color1){color=color1;}public void setSpeed(String speed1) {speed=speed1;}public void setKind(String kind1) {kind=kind1;}public String getColor( ) {return color;}public String getKind( ) {return kind;}public int getSpeed( ) {return speed;}}public class Car extends Vehicle {int passenger;public Car(){super();passenger=0;}public void setPassenger(int passenger){this. passenger = passenger; }public int getPassenger( ) {return passenger;}public static void main(String [] args){Car benz=new Car();benz.setColor(“Yellow”);benz.setKind(“roadster”);benz.setSpeed(120);benz.setPassenger(4);System.out.println(“benz: “);System.out.println(“Color “+benz.getColor());System.out.print(“Speed (km/h)“);System.out.println(benz.getSpeed()); System.out.println(“Kind: “+benz.getKind()); System.out.print(“Passenger: “);System.out.println(benz.getPassenger());}}习题九4、import java.io.*;public class UseException{public static void main(String [] args){System.out.println("请输入一个整数字符串");try{BufferedReader in=new BufferedReader(new InputStreamReader(System.in));int a=Integer.parseInt(in.readLine());System.out.println("您输入的整数是:"+a);}catch(IOException e){System.out.println("IO错误");}catch(NumberFormatException e1){System.out.println("您输入的不是一个整数字符串");}}}习题十 7、import java.io.*;public class SaveName {public static void main(String [] args){try{BufferedReader br=new BufferedReader(newInputStreamReader(System.in));BufferedWriter bw=new BufferedWriter(new FileWriter("name.txt"));String s;while(true){System.out.println("请输入姓名:");s=br.readLine();if(s.length()==0)break;bw.write(s);bw.newLine();}br.close();bw.close();}catch(FileNotFoundException e){System.out.println(e.toString());}catch(IOException e1){System.out.println(e1.toString());}}}8、import java.io.*;public class SaveGrade{public static void main(String [] args){try{BufferedReader br=new BufferedReader(newInputStreamReader(System.in));BufferedWriter bw=new BufferedWriter(new FileWriter("grade.txt"));String s,ss;while(true){System.out.println("请输入姓名:");s=br.readLine();if(s.length()==0)break;bw.write(s);bw.newLine();System.out.println("请输入学号:");s=br.readLine();bw.write(s);bw.newLine();System.out.println("请输入成绩:");s=br.readLine();bw.write(s);bw.newLine();}br.close();bw.close();int max=0,min=100,total=0,num=0;BufferedReader bf=new BufferedReader(new FileReader("grade.txt")); while(true){ss=bf.readLine();if(ss==null)break;ss=bf.readLine();ss=bf.readLine();int grade=Integer.parseInt(ss);total+=grade;num+=1;if(grade>max)max=grade;if(grade<min)min=grade;}System.out.println("学生成绩中最高为:"+max+",最低为:"+min+",平均分为:"+total*1.0/num);bf.close();}catch(FileNotFoundException e){System.out.println(e.toString());}catch(IOException e1){System.out.println(e1.toString());}}}习题十一6、import java.awt.*;import java.awt.event.*;public class ChangeColor extends Frame { private Button red=new Button("红");private Button green=new Button("绿"); private Button blue=new Button("蓝"); private TextField text=new TextField(); public ChangeColor(){super("改变颜色");this.setLayout(null);text.setBackground(Color.WHITE);red.setBounds(25,50,50,20);this.add(red);green.setBounds(125,50,50,20);this.add(green);blue.setBounds(225,50,50,20);this.add(blue);text.setBounds(25,100,250,30);this.add(text);red.addActionListener(new ActionListener(){ public void actionPerformed(ActionEvent e) {text.setBackground(Color.RED);}});green.addActionListener(new ActionListener(){ public void actionPerformed(ActionEvent e) {text.setBackground(Color.GREEN);}});blue.addActionListener(new ActionListener(){ public void actionPerformed(ActionEvent e) {text.setBackground(Color.BLUE);}});addWindowListener(new WindowAdapter(){public void windowClosing(WindowEvent e){System.exit(0);}});setSize(300,200);setVisible(true);}public static void main (String[] args){ChangeColor color=new ChangeColor(); }}习题十二5、import java.awt.*;import java.awt.event.*;import javax.swing.*;public class Goods extends JFrame {private JComboBox list;private JTextArea info;private String names[]={"请选择你要查询的商品","A商品","B商品","C商品","D商品","E商品","F商品"};private String goods[][]={ {"","",""},{"A商品","北京",",300"},{"B商品","上海",",400"},{"C商品","广州",",500"},{"D商品","长沙",",600"},{"E商品","武汉",",700"},{"F商品","天津",",800"}};public Goods(){super("商品信息");Container pane=this.getContentPane();pane.setLayout(new BorderLayout());list=new JComboBox(names);info=new JTextArea(5,20);pane.add(list,BorderLayout.NORTH);pane.add(info,BorderLayout.CENTER);list.addItemListener(new ItemListener(){ public void itemStateChanged(ItemEvent e) {int index=list.getSelectedIndex();info.setText("商品名:"+goods[index][0]+"\n"); info.append("产地:"+goods[index][1]+"\n"); info.append("价格:"+goods[index][2]+"\n"); }});this.setSize(250,300);this.setVisible(true);}public static void main (String[] args) {Goods ccc=new Goods();ccc.addWindowListener(new WindowAdapter(){ public void windowClosing(WindowEvent e) {System.exit(0);}});}}。
java语言程序设计课后习题答案第一章:计算机、程序和JAVA概述1、2、1什么是硬件和软件?答:硬件指计算机中可见的物理部分;而软件提供不可见的指令,这些指令控制硬件并使硬件完成特定的任务。
1、2、2列举计算机的5个主要硬件组件。
答:中央处理器(CPU);内存(主存);存储设备(磁盘、光盘);输入设备(鼠标、键盘);输出设备(显示器、打印机);通信设备(调制解调器、网卡)。
1、2、3编写“CPU”代表什么含义?测量CPU速度的单位是什么?答:CPU(Central Proceing Unit)中央处理单元,包括控制单元和算术、逻辑单元;单位是HZ,现在通常以MHZ,GHZ数量级衡量。
1、2、4什么是比特?什么是字节?答:bit是计算机物理设备中存储的最小单位;8个bit为1个byte。
1、2、5内存是用来做什么的?RAM代表什么?为什么内存成为RAM?答:内存用来存储程序和数据;RAM(Random-Acce Memory)-可随机访问存储介质;因为内存可以按任意顺序存取字节所以被称为RAM(按功能划分)。
1、2、6用于测量内存大小的单位是什么?用于测量磁盘大小的单位是什么?答:GB,TB1、2、7内存和永久存储设备的主要不同是什么?答:内存是易失性存储介质(断电即失),存储容量小,传输速度快;永久存储设备为非易失性存储介质(断电可留),存储容量大,传输速度慢。
1、3、1CPU能理解什么语言。
机器语言。
1、3、2什么是汇编语言?什么是汇编器?汇编语言能用短的描述性单词来表示每一条机器语言指令,是一种低级语言。
汇编器可以将汇编语言转换成机器语言。
1、3、3什么是高级编程语言?什么是源程序?很像英语,易于学习和使用的编程语言称为高级编程语言。
使用高级编程语言编写的程序称为源程序。
1、3、4什么是解释器?什么是编译器?解释器会逐条读取源代码中的语言,并立刻翻译成机器代码或者虚拟机器代码,然后立刻运行。
J a v a 程 序 设 计 》 课 后练习答案第一章 Java 概述A. B. C. D.Java 源文件的扩展名是(D )译后不用修改就可在不同的操作系统平台上运行。
Java 之所以能平台无关,主要是依靠 Java 虚拟机(JVM 来实现的。
JVM 是一种抽象机器,它附着在具体操作系统之上,本身 具有一套虚机器指令,并有自己的栈、寄存器组等。
Java 编程人员在编写完 Java 程序后, Java 编译器将 Java 源代码文件编译后生成字节码文件(一种与操作系统无关的二进制文件)。
字节码文件通过Java 虚拟机(JVM 里的 类加载器加载后,经过字节码校验,由解释器解释成当前电脑的操作系统能够识别的目标 代码并最终运行。
以下图展示了 Java 程序从编译到最后运行的完整过程。
2、 简述 Java 语言的特点Java 具有以下特点:1) 、 简单性Java 语言的语法规则和C 语言非常相似,只有很少一部分不同于 C 语言,并且Java1.2.3.、选择题(A )是在Dos 命令提示符下编译Java 程序的命令,( 命令。
javac javajavadoc javaw D// /*/** */ B B )是运行Java 程序的4.A. B. C. D.(A. B. C. D.(A. B. C.D.)不是Java 程序中有效的注释符号。
*/ */ */)不是Java 语言的特点。
面向对象 自动检查语法错误 跨平台 解释执行Java 编译器会将Java 程序转换为( 可执行代码目标代码 字节码 机器代码1、A. .classB. .jarC. .jav 、简答题 Java 的跨平台的含义是什么?为什么Java 语言的一个非常重要的特点就是平台无关性。
它是指用D. .javaJava 可以跨平台? Java 编写的应用程序编5.还舍弃了C语言中复杂的数据类型(如:指针和结构体),因此很容易入门和掌握。
习题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。
1.1 指出JAVA语言的主要特点和JAVA程序的执行过程。
答:(1)强类型;(2)编译和解释;(3)自动无用内存回收功能;(4)面向对象;(5)与平台无关;(6)安全性;(7)分布式计算;(8)多线程;程序执行过程如图所示:编写源文件,编译器编译源文件转换成字节码,解释器执行字节码。
1.2 说出开发与运行JAVA程序的重要步骤。
答:(1)编写源文件:使用一个文本编译器,如Edit或记事本,不可以使用Word.将编好的源文件保存起来,源文件的扩展名必须是.java;(2)编译Java源文件:使用Java编译器(javac.exe)编译源文件得到字节码文件;(3)运行Java程序:Java程序分为两类——Java应用程序必须通过Java解释器(java.exe)来解释执行其字节码文件;Java小应用程序必须通过支持Java标准的浏览器来解释执行。
1.3 如何区分应用程序和小应用程序?答:应用程序在与源文件名字相同的类中,有main()方法,该方法代表应用程序的入口; 小应用程序必须有一个Applet类的子类,该类称作主类,必须用public修饰。
1.4 说出JAVA源文件的命名规则。
答:源文件命名规则和类命名规则一样,所有的单词首字母都用大写字母,且必须和源文件的public类同名。
1.6 JAVA语言使用什么字符集?共有多少个不同的字符?答:Java语言使用Unicode字符集,共有65535个字符。
1.7 JAVA语言标识符的命名规则是什么?(1)由字母(包括英文字母、下划线字符、美元字符、文字字符)和数字字符组成(2)限定标识符的第一个字符不能是数字字符(3)不能和关键字重名(4)长度不能超过255个字符1.8 JAVA有那些基本数据类型,它们的常量又是如何书写的?1.9 指出下列内容哪些是JAVA语言的整型常量,哪些是浮点数类型常量,哪些两者都不是。
整型常量: 4)0xABCL,8)003,10)077,12)056L浮点数类型常量:3)-1E-31,5).32E31 13)0.,14).0两者都不是: 1),2),6),7),9),11)第二章运算和语句2.1 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语言程序设计-基础篇》答案-第15章第15章异常和断言复习题15.1 答:略15.2 答:声明异常是为了在方法中产生异常时,以便通知方法的调用者。
在方法声明的头部使用关键字throws 声明,一个方法可以声明多个异常。
如:public void method() throws IOException, AWTException{ ……}15.3 答:必检异常是Java 强制要求程序员处理的异常,它是Exception 的后代类中除RuntimeException 以外的其他子类及后代类。
免检异常是指程序员不必处理的异常,它是Error 类和RuntimeException 类及它们的后代类。
15.4 答:throw 语句用来抛出异常,一个throw 语句不能同时抛出多个异常。
15.5 答:throws 声明异常;throw 抛出异常。
15.6 答:程序中发生异常后,JVM 会将产生的异常对象在方法调用链中传递并寻找适当的处理异常的方法,如果得不到适当处理,则JVM 中止程序的运行。
15.7 答:使用try-catch 语句捕获,具体参见课本。
15.8 答:statement3不会执行。
如果异常未捕获,statement4语句不会执行。
如果异常被捕获,statement4语句会执行。
如果异常传递给调用者,statement4语句不会执行。
课后答案网ww w.kh da w.c om15.9 答:输出:Rational operation error15.10 答:输出:Rational operation error15.11 答:输出如下:Rational operation error After the method call15.12 答:非GUI 程序中输出异常信息并中止;GUI 程序输出异常信息,并不中止。
原因参见课本P451。
15.13 答:略15.14 答:不会15.15 答:如果异常没有捕获,statement5不会执行。
习题一1.简述面向对象软件开发方法的重要意义。
【答】:面向对象的软件开发方法按问题论域来设计模块,以对象代表问题解的中心环节,力求符合人们日常的思维习惯,采用―对象+消息‖的程序设计模式,降低或分解问题的难度和复杂性,从而以较小的代价和较高的收益获得较满意的效果,满足软件工程发展需要。
2.解释下面几个概念:1)对象2)实例3)类 4)消息 5)封装 6)继承 7)多态【答】:1)对象:就是现实世界中某个具体的物理实体在计算机中的映射和体现,是由属性和操作所构成的一个封闭整体。
2)实例:是对象在计算机内存中的映像。
3)类:是描述对象的―基本原型‖,是描述性的类别或模板,即对一组对象的抽象。
它定义一组对象所能拥有的共同特征,用以说明该组对象的能力与性质。
4)消息:消息是对象之间进行通信的一种数据结构。
5)封装:封装性是保证软件部件具有优良的模块性的基础。
面向对象的类是封装良好的模块,类定义将其说明(用户可见的外部接口)与实现(用户不可见的内部实现)显式地分开,其内部实现按其具体定义的作用域提供保护。
6)继承:继承性是子类自动共享父类数据结构和方法的机制,这是类之间的一种关系。
7)多态:多态性是指一个名字具有多种语义,即指同一消息为不同对象所接受时,可以导致不同的操作。
3.对象―汽车‖与对象―小汽车‖是什么关系,对象―汽车‖与―轮胎‖又是什么关系?【答】:对象―汽车‖与对象―小汽车‖具有继承关系,即对象―小汽车‖继承了对象―汽车‖。
―轮胎‖是对象―汽车‖的一个属性,所以对象―汽车‖包含―轮胎‖,二者是包含关系。
java语言程序设计第二版习题答案Java语言程序设计第二版习题答案Java语言程序设计是一门广泛应用于软件开发领域的编程语言。
无论是初学者还是有经验的开发人员,都可以通过学习Java语言来提升自己的编程能力。
为了帮助读者更好地掌握Java语言的知识,本文将提供《Java语言程序设计第二版》中一些习题的答案,并对其中一些重要的概念进行解释和讨论。
第一章:计算机、程序和Java1.1 问题:编写一个Java程序,输出“Hello, World!”。
答案:```javapublic class HelloWorld {public static void main(String[] args) {System.out.println("Hello, World!");}}```1.2 问题:Java应用程序的执行过程是怎样的?答案:Java应用程序的执行过程可以分为三个阶段:编辑、编译和运行。
首先,我们使用文本编辑器编写Java源代码文件,文件的扩展名为.java。
然后,使用Java编译器将源代码文件编译成字节码文件,文件的扩展名为.class。
最后,使用Java虚拟机(JVM)加载字节码文件并执行程序。
第二章:基本程序设计2.1 问题:编写一个Java程序,计算两个整数的和。
答案:```javaimport java.util.Scanner;public class Sum {public static void main(String[] args) {Scanner input = new Scanner(System.in);System.out.print("Enter the first number: ");int num1 = input.nextInt();System.out.print("Enter the second number: ");int num2 = input.nextInt();int sum = num1 + num2;System.out.println("The sum is " + sum);}}```2.2 问题:什么是变量?如何在Java中声明和使用变量?答案:变量是用于存储数据的内存位置。
第1章Java语言概述选择题1-1 在下列概念中,Java语言只保留了(B)A. 运算符重载B. 方法重载C. 指针D. 结构和联合1-2 下列关于Java语言特性的描述中,错误的是(D)A. 支持多线程操作B. Java程序与平台无关C. Java和程序可以直接访问Internet上的对象D. 支持单继承和多继承1-3 下列关于Java Application程序在结构上的特点的中,错误的是(C)A. Java程序是由一个或多个类组成的B. 组成Java程序的若干个类可以放在一个文件中,也可以放在多个文件中C. Java程序的文件名要与某个类名相同D. 组成Java程序的多个类中,有且仅有一个主类1-4 Java程序经过编译后生成的文件的后缀是(C)A. .objB. .exeC. .classD. .java1-5 下列关于运行字节码文件的命令行参数的描述中,正确的是(A)A. 第一个命令行参数(紧跟命令字的参数)被存放在args[0]中B. 第一个命令行参数被存放在args[1]中C. 命令行的命令字被存放在args[0]中D.数组args[]的大小与命令行参数的个数无关判断题1-1JavaC++的语言之前问世的。
(错)1-2Java语言具有较好的安全性和可移植性及与平台无关等特性。
(对)1-3Java语言中取消了联合的概念,保留了结构概念。
(错)1-4Java语言中数据类型占内在字节数与平台无关。
(对)1-5Java语言中可用下标和指针两种方式表示数组元素。
(错)1-6Java语言的源程序不是编译型的,而是编译解释型的。
(对)1-7操作系统中进程和线程两个概念是没有区别的。
(错)1-8Java语言既是面向对象的又是面向网络的高级语言。
(对)1-9Java程序分为两大类:一类是Application程序,另一类是Applet程序。
前者又称Java应用程序,后者又称为Java小应用程序。
(对)1-10Java Application程序是由多个文件组成的,其中可以有也可以没有主文件。
Java语言程序设计基础教程习题解答《Java语言程序设计基础教程》练习思考题参考答案第1章 Java程序设计概述练习思考题1、 Java运行平台包括三个版本,请选择正确的三项:()A. J2EEB. J2MEC. J2SED. J2E解答:A,B,C2、 Java JDK中反编译工具是:()A. javacB. javaC. jdbD. javap解答:D3、 public static void main方法的参数描述是:()A. String args[]B. String[] argsC. Strings args[]D. String args解答:A,B4、在Java中,关于CLASSPATH环境变量的说法不正确的是:()A. CLASSPATH一旦设置之后不可修改,但可以将目录添加到该环境变量中。
B. 编译器用它来搜索各自的类文件。
C. CLASSPATH是一个目录列表。
D. 解释器用它来搜索各自的类文件。
5、编译Java Application源文件将产生相应的字节码文件,扩展名为()A. .javaB. .classC. .htmlD. .exe解答:B6、开发与运行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程序设计第三版是一本广泛用于教学和自学的Java语言教材,由Y. Daniel Liang所著。
这本书涵盖了Java编程的基础知识和高级概念,包括数据类型、控制结构、类和对象、继承、接口、异常处理、集合框架、多线程、输入输出流、网络编程等。
以下是一些可能的练习题答案和解析,但请注意,具体答案可能因版本和题目的不同而有所差异。
第一章:Java入门练习题1:编写一个Java程序,打印出“Hello, World!”。
答案:```javapublic class HelloWorld {public static void main(String[] args) {System.out.println("Hello, World!");}}```解析:这个程序定义了一个名为`HelloWorld`的公共类,其中包含一个`main`方法,这是Java程序的入口点。
`System.out.println`用于在控制台打印文本。
第二章:数据类型、运算符和表达式练习题2:计算并打印出以下表达式的值:`(5 + 3.14) * 2 - 7 / 2`答案:```javapublic class ExpressionEvaluation {public static void main(String[] args) {double result = (5 + 3.14) * 2 - 7 / 2;System.out.println(result);}}```解析:在Java中,算术运算符的优先级是加法和减法低于乘法和除法。
因此,表达式首先计算括号内的加法和乘法,然后执行除法,最后进行减法。
第三章:控制语句练习题3:编写一个程序,使用for循环打印出1到10的整数。
答案:```javapublic class ForLoopExample {public static void main(String[] args) {for (int i = 1; i <= 10; i++) {System.out.println(i);}}}```解析:`for`循环由三个部分组成:初始化表达式、条件表达式和迭代表达式。
java程序设计第三版课后答案Java程序设计第三版课后答案在编写Java程序设计第三版的课后答案时,我们首先需要了解这本书的结构和内容。
通常,一本好的教科书会包含理论讲解、示例代码、练习题和课后习题。
课后习题是帮助学生巩固和应用所学知识的重要部分。
以下是一些可能的课后答案示例,但请注意,具体答案需要根据实际的习题来编写。
第一章:Java基础问题1:简述Java语言的特点。
答案:Java是一种面向对象的编程语言,具有跨平台性、健壮性、安全性、简单性、多线程和动态性等特点。
它的跨平台性主要得益于Java虚拟机(JVM)的存在,使得Java程序可以在任何安装有JVM的设备上运行。
Java的健壮性体现在其严格的类型检查和异常处理机制。
安全性则体现在其对内存的自动管理以及对网络编程的内置支持。
问题2:编写一个Java程序,输出“Hello, World!”。
答案:```javapublic class HelloWorld {public static void main(String[] args) {System.out.println("Hello, World!");}}```第二章:数据类型和运算符问题1:Java中的基本数据类型有哪些?答案:Java中的基本数据类型包括整型(byte, short, int, long),浮点型(float, double),字符型(char)和布尔型(boolean)。
问题2:编写一个Java程序,实现两个整数的加法,并输出结果。
答案:```javapublic class IntegerAddition {public static void main(String[] args) {int number1 = 5;int number2 = 10;int sum = number1 + number2;System.out.println("The sum is: " + sum);}}```第三章:控制流程问题1:Java中有哪些控制流程语句?答案:Java中的控制流程语句包括条件语句(if, switch),循环语句(for, while, do-while)以及跳转语句(break, continue, return)。
Java语言程序设计(郑莉)第二章习题答案1.什么是对象、类,它们之间的联系?答:1)对象是包含现实世界物体特征的抽象实体,它反映系统为之保存信息和与它交互的能力。
对象是一些属性及服务的封装体,在程序设计领域,可以用“对象=数据+作用于这些数据上的操作”来表示。
现实生活中对象是指客观世界的实体;在程序中对象是指一组变量和相关方法的集合。
2)类是既有相同操作功能和相同的数据格式的对象的集合与抽象!3)两者的关系:对象是类的具体实例.。
2.什么是面向对象的程序设计方法?它有那些基本特征?答:面向对象程序设计从所处理的数据入手,以数据为中心而不是以服务为中心来描述系统。
它把编程问题视为一个数据集合,数据相对于功能而言,具有更强的稳定性。
它的特征:抽象,封装,继承,多态。
3(无用)4.请解释类属性、实例属性及其区别。
答:实例属性,由一个个的实例用来存储所有实例都需要的属性信息,不同实例的属性值可能会不同。
5.请解释类方法、实例属性及其区别。
答:实例方法表示特定对象的行为,在声明时前面不加static修饰符,在使用时需要发送给一个类实例。
类方法也称为静态方法,在方法声明时前面需加static修饰符,类方法表示具体实例中类对象的共有行为。
区别:实例方法可以直接访问实例变量,调用实例方法,实例方法可以直接访问类变量,调用类方法;类方法可以直接调用类变量和类方法,类方法不能直接调用实例变量和实例方法;6.类的访问控制符有哪几种?具体含义及其区别。
答:类的访问控制符只有public(公共类)及无修饰符(默认类)两种。
区别:当使用public修饰符时表示所有其他的类都可以使用此类;当没有修饰符时,则只有与此类处于同一包中的其他类可以使用类。
7类成员的访问控制符有哪几种?他们对类成员分别有哪些访问限制的作用?答:类成员的访问控制符有 public,private,protecte及无修饰符.public(公有的):用public修饰的成分表示公有的,也就是它可以被其他任何对象访问(前提是对累成员所在的类访问有访问权限).Private(保护的):类中限定为private的成员只能被这个类本身访问,在类外不可见。
自考Java语言程序设计(一)课后习题及答案自考Java语言程序设计(一)第一章Java语言概述课后习题一、Java语言概述1.Java语言有哪些特点?2.什么叫做类?什么叫做对象?3.简述Java的运行机制。
4.简述Java应用程序的开发流程。
5.当初Sun公司发展Java的原因是:来源:aaaexamdaaaa(a)要发展航空仿真软件(b)要发展人工智能软件(c)要发展消费性电子产品6.Java是从哪种语言改进并重新设计?(a)Ade来源:aaaexamdaaaa(b)C++(c)Pascal7.Java因为什么快速发展而走红?(a)个人计算机与网络(b)游戏软件(c)系统软件8.Java程序的种类有:(a)内嵌于Web文件中,由浏览器来观看的__________(b)可独立运行的__________考试大论坛(c)服务器端的_________9.Java是面向对象语言,对象是客观事物的,对象与之是一一对应的,它是很具体的概念。
10. 判断:用Javac编译Java源文件后得到代码叫字节码。
()参考答案1.答:面向对象、简单、平台无关性、安全性、内存管理、分布式应用、多线程、动态、解释运行,高效能2.答:在面向对象编程中,具体的客观实体称为对象,对象就是数据加方法。
对象在程序中是通过一种抽象数据类型来描述的,这种抽象数据类型称为类。
类是对具有相同属性和方法的一组相似对象的抽象,或者说类是对象的模板。
来源:考试大3.答:Java程序的运行必须经过编写、编译、运行三个步骤。
编写是指在Java开发环境中进行程序代码的输入过程,最终形成后缀名为.java源文件。
编译是指使用Java编译器对源文件进行错误排查的过程,编译后将生成后缀名为.class的字节码文件。
运行是指使用Java解释器将字节码文件翻译成机器代码,在cpu上运行并显示结果的过程。
这一过程如图所示。
考试大-全国最大教育类网站(aaaExamda。
J a v a程序设计课后练习答案Last updated on the afternoon of January 3, 2021《J a v a程序设计》课后练习答案第一章Java概述一、选择题1.(A)是在Dos命令提示符下编译Java程序的命令,(B)是运行Java程序的命令。
A.javacB.javaC.javadocD.javaw2.(D)不是Java程序中有效的注释符号。
ssB. .jarC. .javD. .java二、简答题1、Java的跨平台的含义是什么为什么Java可以跨平台2、Java语言的一个非常重要的特点就是平台无关性。
它是指用Java编写的应用程序编译后不用修改就可在不同的操作系统平台上运行。
Java之所以能平台无关,主要是依靠Java 虚拟机(JVM)来实现的。
JVM是一种抽象机器,它附着在具体操作系统之上,本身具有一套虚机器指令,并有自己的栈、寄存器组等。
Java编程人员在编写完Java程序后,Java编译器将Java源代码文件编译后生成字节码文件(一种与操作系统无关的二进制文件)。
字节码文件通过Java虚拟机(JVM)里的类加载器加载后,经过字节码校验,由解释器解释成当前电脑的操作系统能够识别的目标代码并最终运行。
以下图展示了Java程序从编译到最后运行的完整过程。
3、简述Java语言的特点Java具有以下特点:1)、简单性Java语言的语法规则和C语言非常相似,只有很少一部分不同于C语言,并且Java还舍弃了C语言中复杂的数据类型(如:指针和结构体),因此很容易入门和掌握。
2)、可靠性和安全性Java从源代码到最终运行经历了一次编译和一次解释,每次都有进行检查,比其它只进行一次编译检查的编程语言具有更高的可靠性和安全性。
3)、面向对象Java是一种完全面向的编程语言,因此它具有面向对象编程语言都拥有的封装、继承和多态三大特点。
4)、平台无关和解释执行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。
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=newInteger(input).intValue();while(length>=0){int divisor=(int)Math.pow(10,length); length=length-1;int output=n/divisor;n=n%divisor;System.out.print(output+",");}}}法二:(建议使用)public class Exercise5{public static void main(String[] args){int n=1678;int unit;int decimal;int hundred;int thousand;thousand=n/1000%10;hundred=n/100%10;decimal=n/10%10;unit=n%10;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=newInteger(input).intValue();while(length>=0){int divisor=(int)Math.pow(10,length); length=length-1;int output=n/divisor%10;System.out.print(output+",");}}}6.编写Java程序,接受用户输入的1-12之间的整数,若不符合条件则重新输入,利用switch语句输出对应月份的天数。
import java.io.*;public class Exercise6{public static void main(String[] args) throws IOException{int n;do{System.out.print("请输入1-12之间的整数:");InputStreamReader isStream=new InputStreamReader(System.in);BufferedReader bfReader=new BufferedReader(isStream);String input=bfReader.readLine(); n=new Integer(input).intValue(); }while(n>12||n<1);switch(n){case 2: System.out.println(n+"月份29天");break;case 1:case 3:case 5:case 7:case 8:case 10:case 12: System.out.println(n+"月份31天");break;case 4:case 6:case 9:case 11: System.out.println(n+"月份30天");break;}} }7.编写Java程序计算小于一个整数的全部素数并输出。
import java.io.*;public class Exercise7{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 n=newInteger(input).intValue();int i;System.out.println(2);for(i=2;i<n;i++){for(int j=2;j<=i/2+1;j++){if (i%j==0) break;if (j==i/2+1)System.out.println(i);} }}}9.编写Java程序实现:输入一组整数存放在数组中,比较并输出其中的最大值和最小值;在将数组元素从小到大排序并输出。
import java.io.*;public class Exercise9{public static void main(String[] args) throws IOException{final int N=5;int[] intArray=new int[N];//数组的赋值for(int i=0;i<N;i++){System.out.print("数组的第"+i+"个元素是:");InputStreamReader isStream=new InputStreamReader(System.in);BufferedReader bfReader=new BufferedReader(isStream);String input=bfReader.readLine(); int n=newInteger(input).intValue();intArray[i]=n;}//求最大最小值int max=intArray[0];int min=intArray[0];for(int j=0;j<N;j++){if(max<intArray[j])max=intArray[j];if(min>intArray[j])min=intArray[j];}System.out.println("最大值为:"+max);System.out.println("最小值为:"+min);//从小到大排序int temp;for(int i=0;i<N;i++){for(int j=i;j<N;j++){if(intArray[i]>intArray[j]){temp=intArray[i];intArray[i]=intArray[j];intArray[j]=temp;}}}//将排序后的结果打印System.out.println("排序后的数组为:");for(int i=0;i<N;i++){System.out.print(intArray[i]+","); }}}10.编写一个方法来计算正方形的面积和周长。