java语言程序设计第八章第十一题参考答案

合集下载

java习题及答案第8章 习题参考答案

java习题及答案第8章 习题参考答案
lbl.setText(exitItem.getText());
exitItem.setText("退出");
}
});

8.6简述使用面板的原因,编写一个继承自JPanel的面板类MyPanel。
答:用面板可以实现对所有组件进行分层管理,即对不同关系的组件采用不同的布局管理方式,使组件的布局更加合理和程序的界面更加美观。
//创建文件下拉式菜单,并添加到菜单栏
JMenufilemenu= new JMenu("文件");
mbar.add(filemenu);
//创建菜单项,并添加到文件菜单下
JMenuItemopenfileItem= new JMenuItem("打开文件");
JMenuItem closefileItem= new JMenuItem("关闭文件");
编程提示:编写继承自JPanel的面板类MyPanel时,可在MyPanel类中直接放置上面板要放置的组件,在使用该面板时就可以直接放置在窗体上了,例如可创建一个LoginPanel,上面放上用户名和密码输入框及其文本标签,并添加登录和退出按钮和相关代码。
8.7对比各种布局管理方式,指出各自的应用场合。
答:常见的布局管理器有边界布局(BorderLayout)、顺序布局(FlowLayout)、网格布局(Gri不用布局管理器)。其中,各种布局管理方式与适合应用的场合如下:
空布局管理是直接定位的方式排列容器中的组件,适合只在某一平台运行的程序采用;
//JMenuItemexitItem=new JMenuItem("系统退出");
filemenu.add(openfileItem);

Java语言程序设计第8章习题参考答案.docx

Java语言程序设计第8章习题参考答案.docx

习题八参考答案1.什么是组件?什么是容器?并说明各自的作用。

答:从实现角度来看,组件(Component)是构成GUI的基本要素,作用是通过对不同事件的响应来完成和用户的交互或组件之间的交互;容器是能容纳和排列组件的对象,如Applet> Panel (面板)、Frame (窗口)等,作用就是放置组件并控制组件位置。

2.简述Swing组件的优点。

答:Swing是在AWT基础上扩展而来的,提供了非常丰富的组件,远远多于AWT,并且引入了新的概念和性能,这使得基于Swing开发GUI应用程序比直接使用AWT开发更为灵活、方便、效率高,而且能设计出更优美的、感受更好的GUI。

3.简述容器的概念,结合8.4.7小节的内容,解释什么是应用程序的主框架?答:容器是用来容纳其他组件和容器的特殊组件,是由容器类(Container类)创建的对象。

在Java语言中,容器类是组件类(组件类Component类)的一个子类,具有组件的所有性质。

在AWT 技术中,容器类由java. awt包提供,主要包括面板类Panel、窗口类Window、结构类Frame、对话框类Dialog等。

在Swing技术中,容器类由javax. swing包提供,并可分为如下三类:>顶层容器:JFramc. JApplet. JDialog、JWindow;>中间容器:JPanel、JScrollPane^ JSplitPane、JDesktopPaneJToolBar;特殊容器:在GUI上起特殊作用的中间层,如J Interna IFrame、JLayeredPane、 JRootPaneo 应用程序的主框架由可以容纳应用程序各种组件的顶层容器创建,除了负责组件的管理外,通常还提供最大化、最小化、关闭按钮等,实现应用程序展现方式以及关闭等。

4.总结JFrame的使用要点,并说明内容面板的作用。

答:JFrame类包含很多设置窗体的方法,可以用setTitle(String tille)方法设置窗体标题,用setBounds(inl x,int y,int width,int height)方法设置窗体显示的位置及大小,用setVisable (Boolean b)方法设置可见与否(默认不可见)。

java基础教程第3版习题解答

java基础教程第3版习题解答

Java基‎础教程第3‎版习题解答‎第一章习题‎1. James‎Gosli‎n g2.需3个步骤‎:1)用文本编辑‎器编写源文‎件2)使用jav‎a c编译源‎文件,得到字节码‎文件3)应用程序使‎用解释器运‎行。

3. path d:\jdk\binclass‎p ath =d:\jdk\jre\lib\rt.jar;.;4. B5. java 和class‎6.D。

第二章习题‎1.用来标识类‎名、变量名、方法名、类型名、数组名、文件名的有‎效字符序列‎称为标识符‎。

标识符由字‎母、下划线、美元符号和‎数字组成,第一个字符‎不能是数字‎。

fal se‎不是标识符‎。

2.关键字就是‎Java语‎言中已经被‎赋予特定意‎义的一些单‎词,不可以把关‎键字作为名‎字来用。

不是关键字‎。

cl ass‎i mple‎m ents‎i nter‎face enum exten‎d s abstr‎a ct。

3.float‎常量必须用‎F或f为后‎缀。

doubl‎e常量用D‎或d为后缀‎,但允许省略‎后缀。

4.一维数组名‎.lengt‎h。

二维数组名‎.l engt‎h。

5. C6.ADF7. B8 【代码2】【代码3】【代码4】9.B。

10.属于操作题‎,解答略。

11.3,112.publi‎c class‎E {publi‎c stati‎c void main(Strin‎g args[]) {Syste‎m.out.print‎l n((int)'你');Syste‎m.out.print‎l n((int)'我');Syste‎m.out.print‎l n((int)'他');}}13.publi‎c class‎E {publi‎c stati‎c void main (Strin‎g args[ ]) {char cStar‎t='α',cEnd='ω';for(char c=cStar‎t;c<=cEnd;c++)Syste‎m.out.print‎(" "+c);}}第三章习题‎1. 1102.beep!!3.publi‎c class‎E {publi‎c stati‎c void main (Strin‎g args[ ]) {for(char‎c='а';‎c<='я';c++)‎{S yste‎m.out.print‎(" "+c);}}}4.publi‎c class‎ Xiti3‎_4{ publi‎c s tati‎c void main(Strin‎g args[]) { doubl‎e sum=0,a=1;int i=1;while‎(i<=20){ sum=sum+a;i++;a=a*i;}Syste‎m.out.print‎ln("sum="+sum);}}5.publi‎c class‎Xiti5‎{ publi‎c stati‎c void main(Strin‎g 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){ Syste‎m.out.print‎(" "+j);}}}}6.class‎ Xiti6‎{ publi‎c s tati‎c void main(Strin‎g args[]){ doubl‎e sum=0,a=1,i=1;do { sum=sum+a;i++;a=(1.0/i)*a;}while‎(i<=20);Syste‎m.out.print‎ln("使用do-while‎循环计算的‎s um="+sum);for(sum=0,i=1,a=1;i<=20;i++){ a=a*(1.0/i);sum=sum+a;}Syste‎m.out.print‎ln("使用for‎循环计算的‎s um="+sum);}}7.class‎ Xiti7‎{ publi‎c s tati‎c void main(Strin‎g args[]){ int sum=0,i,j;for(i=1;i<=1000;i++){ for(j=1,sum=0;j<i;j++){ if(i%j==0)sum=sum+j;}if(sum==i)Syste‎m.out.print‎ln("完数:"+i);}}}8.impor‎t java.util.*;publi‎c class‎E {publi‎c stati‎c void main (Strin‎g args[ ]) {int m,n;Scann‎e r scane‎r= new Scann‎e r(Syste‎m.in);Syste‎m.out.print‎ln("输入正数m‎回车确认");m = scane‎r.nextI‎n t();Syste‎m.out.print‎ln("输入正数n‎回车确认");n = scane‎r.nextI‎n t();int p=m;int q= n;int r = m%n;while‎(r!=0) {m = n;n =r;r =m%n;}Syste‎m.out.print‎ln(p+"和"+q+"的最大公约‎数"+n);Syste‎m.out.print‎ln(p+"和"+q+"的最小公倍‎数"+(p*q)/n);}}9.publi‎c class‎E{ publi‎c stati‎c void main(Strin‎g args[]){ int n=1;long sum=0;while‎(true){ sum=sum+n;n++;if(sum>=8888)break‎;}Syste‎m.out.print‎ln("满足条件的‎最大整数:"+(n-1));}}第四章习题‎1.用该类创建‎对象时。

Java语言程序设计(郑莉)第八章课后习题答案

Java语言程序设计(郑莉)第八章课后习题答案

Java语言程序设计(郑莉)第八章课后习题答案1.进程和线程有何区别,Java是如何实现多线程的。

答:区别:一个程序至少有一个进程,一个进程至少有一个线程;线程的划分尺度小于进程;进程在执行过程中拥有独立的内存单元,而多个线程共享内存,从而极大地提高了程序的运行效率。

Java程序一般是继承Thread类或者实现Runnable接口,从而实现多线程。

2.简述线程的生命周期,重点注意线程阻塞的几种情况,以及如何重回就绪状态。

答:线程的声明周期:新建-就绪-(阻塞)-运行--死亡线程阻塞的情况:休眠、进入对象wait池等待、进入对象lock池等待;休眠时间到回到就绪状态;在wait池中获得notify()进入lock池,然后获得锁棋标进入就绪状态。

3.随便选择两个城市作为预选旅游目标。

实现两个独立的线程分别显示10次城市名,每次显示后休眠一段随机时间(1000毫秒以内),哪个先显示完毕,就决定去哪个城市。

分别用Runnable接口和Thread类实现。

(注:两个类,相同一个测试类)//Runnable接口实现的线程runable类publicclarunnableimplementRunnable{privateStringcity;publicr unnable(){}publicrunnable(Stringcity){thi.city=city;}publicvoidrun(){for(inti=0;i<10;i++){Sytem.out.println(city);try{//休眠1000毫秒。

Thread.leep(1000);}catch(InterruptedE某ceptione){e.printStackTrace();}}}}//Thread类实现的线程thread类publicclarunnablee某tendThread{privateStringcity;publicrunnable(){}publicrunnable(Stringcity){thi.city=city;}publicvoidrun(){for(inti=0;i<10;i++){Sytem.out.println(city);try{//休眠1000毫秒。

java语言程序设计基础篇第8版课后答案

java语言程序设计基础篇第8版课后答案

java语言程序设计基础篇第8版课后答案【篇一:java语言程序设计基础篇第八章第十题编程参考答案】icequation的类。

这个类包括:代表三个系数的私有数据域a、b、c。

一个参数为a、b、c的构造方法。

a、b、c的三个get方法。

一个名为getdiscriminant()的方法返回判别式,b2-4ac。

一个名为getroot1()和getroot2()的方法返回等式的两个根。

这些方法只有在判别式为非负数时才有用。

如果判别式为负,方法返回0。

画出该类的uml图。

实现这个类。

编写一个测试程序,提示用户输入a、b、c的值,然后显示判别式的结果。

如果判别式为正数,显示两个根;如果判别式为0,显示一个根;否则,显示“the equation has no roots”。

代码:class quadraticequation{private int a,b,c;quadraticequation(){}public quadraticequation(int a,int b,int c){this.a=a;this.b=b;this.c=c;}public int geta(){return a;}public int getb(){return b;}public int getc(){return c;}public int getdiscriminant(){if(b*b-4*a*c=0)return b*b-4*a*c;elsereturn 0;}public int getroot1(){if(b*b-4*a*c=0)return (int)((-b+math.pow(b*b-4*a*c, 0.5))/(2*a));elsereturn 0;}public int getroot2(){if(b*b-4*a*c=0)elsereturn 0;}}public class xiti810 {public static void main(string[] args){system.out.println(请输入要计算的方程的系数a、b和c:);java.util.scanner input =newjava.util.scanner(system.in);system.out.print(a=);int a=input.nextint();system.out.print(b=);int b=input.nextint();system.out.print(c=);int c=input.nextint();quadraticequation q=new quadraticequation(a,b,c);q.getdiscriminant();if(q.getdiscriminant()0)system.out.println(它们的根为:+q.getroot1()+和+q.getroot2()); else if(q.getdiscriminant()==0)system.out.println(此方程只有一个根为:+q.getroot1());elsesystem.out.println(方程无解);}}【篇二:java语言程序设计(第8版)第5章完整答案programming exercises(程序练习题)答案完整版】class exercise01 {public static void main(string[] args) {final int pentagonal_numbers_per_line = 10;final int pentagonal_numbers_to_print = 100;int count = 1;int n = 1;while (count = pentagonal_numbers_to_print) {int pentagonalnumber = getpentagonalnumber(n);n++;if (count % pentagonal_numbers_per_line == 0)system.out.printf(%-7d\n, pentagonalnumber);elsesystem.out.printf(%-7d, pentagonalnumber);count++;}}public static int getpentagonalnumber(int n) {return n * (3 * n - 1) / 2;}}5_2import java.util.scanner;public class exercise02 {public static void main(string[] args) {scanner input = new scanner(system.in);//prompt the user to enter an integersystem.out.print(enter an interger: );long number = input.nextlong();system.out.println(the sum of the digits in + number + is + sumdigits(number)); }public static int sumdigits(long n) {int sum = 0;long remainingn = n;}} do { long digit = remainingn % 10; remainingn = remainingn / 10; sum += digit; } while (remainingn != 0); return sum;第03题import java.util.scanner;public class exercise03 {public static void main(string[] args) {scanner input = new scanner(system.in);//prompt the user to enter an integersystem.out.print(enter an integer: );int number = input.nextint();//display resultsystem.out.println(is + number + a palindrome? + ispalindrome(number)); }public static boolean ispalindrome(int number) {if (number == reverse(number))return true;elsereturn false;}public static int reverse(int number) {int reversenumber = 0;do {int digit = number % 10;number = number / 10;reversenumber = reversenumber * 10 + digit;} while (number != 0);return reversenumber;}第04题import java.util.scanner;public class exercise04 {public static void main(string[] args) {scanner input = new scanner(system.in);//prompt the user to enter an integersystem.out.print(enter an integer: );int number = input.nextint();//display resultsystem.out.print(the reversal of + number + is );reverse(number);}public static void reverse(int number) {int reversenumber = 0;do {int digit = number % 10;number = number / 10;reversenumber = reversenumber * 10 + digit;} while (number != 0);system.out.println(reversenumber);}}第05题import java.util.scanner;public class exercise05 {public static void main(string[] args) {scanner input = new scanner(system.in);//prompt the user to enter three numberssystem.out.print(enter three numbers: );double num1 = input.nextdouble();}double num3 = input.nextdouble(); system.out.print(num1 + + num2 + + num3 + in increasing order: ); displaysortednumbers(num1, num2, num3); } public static void displaysortednumbers(double num1, double num2, double num3) { double max = math.max(math.max(num1,num2), num3); double min = math.min(math.min(num1, num2), num3); double second = 0; if (num1 != max num1 !=min)second = num1; if (num2 != max num2 != min)second = num2; if (num3 != max num3 != min)second = num3; system.out.println(min + + second + + max); }5.6import java.util.scanner;public class exercise06 {public static void main(string[] args) {scanner input = new scanner(system.in);//prompt the user to enter an integersystem.out.print(enter an integer: );int number = input.nextint();displaypattern(number);}public static void displaypattern(int n) {int i;int j;for (i = 1; i = n; i++) {for (j = 0; j n - i; j++)system.out.print( );}} for (j = 0; j = i - 1; j++) system.out.printf(%-5d, i - j); system.out.println(); }5.7import java.util.scanner;public class exercise07 {public static void main(string[] args) {scanner input = new scanner(system.in);//prompt the user to enter investment amountsystem.out.print(enter the investment amount: );double investmentamount = input.nextdouble();//prompt the user to enter interest ratesystem.out.print(enter the annual interest rate: );double annualinterestrate = input.nextdouble();//prompt the user to enter yearssystem.out.print(enter number of years: );int years = input.nextint();system.out.println(\nthe amount invested: + investmentamount);system.out.println(annual interest rate: + annualinterestrate + %);system.out.println(years\tfuture value);for (int i = 1; i = years; i++) {system.out.print(i + \t);system.out.printf(%10.2f\n,futureinvestmentvalue(investmentamount, annualinterestrate / 1200, i));}}public static double futureinvestmentvalue(double investmentamount, double monthinterestrate, int years) {return investmentamount * math.pow(1 + monthinterestrate, years * 12);}}【篇三:java语言程序设计基础篇前三章课后习题】s=txt>1.1(显示三条消息)编写程序,显示welcome to java、welcome to computer science和programming is fun。

Java程序设计 第8章习题参考答案[2页]

Java程序设计 第8章习题参考答案[2页]

第8章习题参考答案一、简答题1.实现类的继承是通过哪个关键字实现的?使用extends 和implements 这两个关键字来实现继承,而且所有的类都是继承于ng.Object,当一个类没有继承的两个关键字,则默认继承object(这个类在ng 包中,所以不需要import祖先类。

在Java 中,类的继承是单一继承,也就是说,一个子类只能拥有一个父类,所以extends 只能继承一个类。

2.Java能实现多继承关系吗?如何解决这个问题?在Java 中,类的继承是单一继承,也就是说,一个子类只能拥有一个父类,所以extends 只能继承一个类。

使用implements 关键字可以变相的使java具有多继承的特性,使用范围为类继承接口的情况,可以同时继承多个接口,接口跟接口之间采用逗号分隔。

3.如果父类和子类同时提供了同名方法,在类实例化后,调用的是哪个类的方法?采用什么办法避免混淆?子类。

通过super 与this 关键字区别父类和子类。

super关键字:我们可以通过super关键字来实现对父类成员的访问,用来引用当前对象的父类。

this关键字:指向自己的引用,表示当前正在调用此方法的对象引用。

4.什么是抽象类?抽象类和普通类有什么不同?抽象类是指类中含有抽象方法的类,抽象类和普通类区别是:1、和普通类比较起来,抽象类它不可以被实例化,这个区别还是非常明显的。

2、抽象类能够有构造函数,被继承的时候,子类就一定要继承父类的一个构造方法,但是,抽象方法不可以被声明成静态。

3、在抽象类当中,可以允许普通方法有主体,抽象方法只需要申明,不需要实现。

4、含有抽象方法的类,必须要申明为抽象类。

5、抽象的子类必须要实现抽象类当中的所有抽象方法,否则的话,这个子类也是抽象类。

6、抽象类它一定要有abstract关键词修饰。

Java语言程序设计课后习题答案全集

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语言程序设计课后习题答案全集

Java语言程序设计课后习题答案全集

J a v a语言程序设计课后习题答案全集Document serial number【UU89WT-UU98YT-UU8CB-UUUT-UUT108】指出JAVA语言的主要特点和JAVA程序的执行过程。

答:(1)强类型;(2)编译和解释;(3)自动无用内存回收功能;(4)面向对象;(5)与平台无关;(6)安全性;(7)分布式计算;(8)多线程;程序执行过程如图所示:编写源文件,编译器编译源文件转换成字节码,解释器执行字节码。

说出开发与运行JAVA程序的重要步骤。

答:(1)编写源文件:使用一个文本编译器,如Edit或记事本,不可以使用Word.将编好的源文件保存起来,源文件的扩展名必须是.java;(2)编译Java源文件:使用Java编译器编译源文件得到字节码文件;(3)运行Java程序:Java程序分为两类——Java应用程序必须通过Java解释器来解释执行其字节码文件;Java小应用程序必须通过支持Java标准的浏览器来解释执行。

如何区分应用程序和小应用程序答:应用程序在与源文件名字相同的类中,有main()方法,该方法代表应用程序的入口; 小应用程序必须有一个Applet类的子类,该类称作主类,必须用public修饰。

说出JAVA源文件的命名规则。

答:源文件命名规则和类命名规则一样,所有的单词首字母都用大写字母,且必须和源文件的public类同名。

JAVA语言使用什么字符集共有多少个不同的字符答:Java语言使用Unicode字符集,共有65535个字符。

JAVA语言标识符的命名规则是什么(1)由字母(包括英文字母、下划线字符、美元字符、文字字符)和数字字符组成(2)限定标识符的第一个字符不能是数字字符(3)不能和关键字重名(4)长度不能超过255个字符JAVA有那些基本数据类型,它们的常量又是如何书写的指出下列内容哪些是JAVA语言的整型常量,哪些是浮点数类型常量,哪些两者都不是。

整型常量: 4)0xABCL,8)003,10)077,12)056L浮点数类型常量:3)-1E-31,5).32E31 13)0.,14).0两者都不是: 1),2),6),7),9),11)第二章 运算和语句Java 的字符能参加算术运算吗可以。

自考Java语言程序设计(一)第八章Java异常处理及输入输出流简介课后习题

自考Java语言程序设计(一)第八章Java异常处理及输入输出流简介课后习题
/5346389)欢迎加入...欢迎交流...止不住的惊喜等着你.........
自考Java语言程序设计(一)第八章Java异常处理及输入输出流简介课后习题
八、Java异常处理及输入输出流简介
17.编写一个程序,在当前目录下创建一个子目录test,在这个新创建的子目录下创建一个文件,并把这个文件设置成只读。
18.位置指针的作用是什么?RandomAccessFile类提供了哪些方法实现对指针的控制?
19.编写一个程序,从键盘输入一串字符,统计这串字符中英文字母、数字、其他符号的字符数。
throw new Exception();
}
catch(Exception e)
{
System.out.println("catch3");
}
finally
{
System.out.println("final
说明:自定义异常类,关键是选择继承的超类——必须是Exception或者其子类。用异常代表错误,而不要再使用方法返回值。
}
finally
{ System.out.println("执行d Finally"); }
}
}
7.答:无论是出于何种原因,只要执行离开try/catch代码块,就会执行finally代码块。即无论try是否正常结束,都会执行 finally定义的最后的代码。如果try代码块中的任何代码或它的任何catch语句从方法返回,也会执行finally代码块。但本题中在try代 码块中执行了“System.exit(0);”语句,执行了这一语句后,Java虚拟机(JVM)将被终止。那么finally语句块一定不会被执行。

java程序设计精编教程习题解答

java程序设计精编教程习题解答

J a v a程序设计精编教程(第2版)习题解答(总18页)--本页仅作为文档封面,使用时请直接删除即可----内页可以根据需求调整合适字体及大小--习题解答习题一(第1章)1.James Gosling2.需3个步骤:1) 用文本编辑器编写源文件。

2) 使用javac 编译源文件,得到字节码文件。

3) 使用解释器运行程序。

3.set classpath=D:\jdk\jre\lib\;.;4. B5. Java 源文件的扩展名是.java ,Java 字节码的扩展名是.class 。

6.D 。

习题二(第2章)1.2.public class Teacher {double add(double a,double b) {return a+b;}double sub(double a,double b) {return a-b;}}height bottopublic class Student {public void speak() {"老师好");}}public class MainClass {public static void main(String args[]) {Teacher zhang=new Teacher();Student jiang=new Student();();}}3.如果源文件中有多个类,但没有public类,那么源文件的名字只要和某个类的名字相同,并且扩展名是.java就可以了,如果有一个类是public类,那么源文件的名字必须与这个类的名字完全相同,扩展名是.java。

4.行尾风格。

习题三(第3章)1.用来标识类名、变量名、方法名、类型名、数组名、文件名的有效字符序列称为标识符。

标识符由字母、下划线、美元符号和数字组成,第一个字符不能是数字。

true不是标识符。

2.关键字就是Java语言中已经被赋予特定意义的一些单词,不可以把关键字作为名字来用。

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

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

java语言程序设计课后习题答案Java语言程序设计课后习题答案Java语言是一种广泛应用于软件开发领域的编程语言,它具有简洁、可移植、面向对象等特点,因此在计算机科学与技术领域中得到了广泛的应用和推广。

学习Java语言程序设计是每个计算机科学与技术专业学生的必修课之一。

在学习过程中,老师通常会布置一些课后习题,以帮助学生巩固所学的知识。

本文将为大家提供一些Java语言程序设计课后习题的答案,希望对大家的学习有所帮助。

1. 编写一个Java程序,实现求阶乘的功能。

```javaimport java.util.Scanner;public class Factorial {public static void main(String[] args) {Scanner scanner = new Scanner(System.in);System.out.print("请输入一个正整数:");int n = scanner.nextInt();int result = 1;for (int i = 1; i <= n; i++) {result *= i;}System.out.println(n + "的阶乘为:" + result);}```2. 编写一个Java程序,实现判断一个数是否为素数的功能。

```javaimport java.util.Scanner;public class PrimeNumber {public static void main(String[] args) {Scanner scanner = new Scanner(System.in);System.out.print("请输入一个正整数:");int n = scanner.nextInt();boolean isPrime = true;for (int i = 2; i <= Math.sqrt(n); i++) {if (n % i == 0) {isPrime = false;break;}}if (isPrime) {System.out.println(n + "是素数");} else {System.out.println(n + "不是素数");}}```3. 编写一个Java程序,实现将一个字符串反转的功能。

java2实用教程(第三版)第八章课后习题答案(耿祥义)

java2实用教程(第三版)第八章课后习题答案(耿祥义)

第八章第1题分四个部分分别建四个Java文本(1)public class Application {public static void main(String[] args) {new MyFrame("对话框实践");}}(2)import java.awt.*;import java.awt.event.*;public class ExceptionDialog extends Dialog implements ActionListener {Button btn;public ExceptionDialog(Frame f) {super(f,"Exception!",true);btn = new Button("close");Label label = new Label("输入格式有误!",Label.CENTER);add(label,BorderLayout.CENTER);add(btn,BorderLayout.SOUTH);btn.addActionListener(this);addWindowListener(new WindowAdapter() {public void windowClosing(WindowEvent e) {setVisible(false);}});pack();setLocation(500,330);setResizable(false);}public void actionPerformed(ActionEvent e) {setVisible(false);}}(3)import java.awt.*;import java.awt.event.*;public class MyDialog extends Dialog {Button yes,no;Label label;String mess = null;public MyDialog(Frame f,boolean b) {super(f,"信息提示",b);label = new Label("您输入的数字> 1000!!!是否输入?");label.setAlignment(Label.CENTER);Container con = new Container();con.setLayout(new GridLayout(1,2));yes = new Button("OK");yes.setForeground(Color.red);no = new Button("Cancle");no.setForeground(Color.red);con.add(yes);con.add(no);add(label,BorderLayout.CENTER);add(con,BorderLayout.SOUTH);addWindowListener(new WindowAdapter() {public void windowClosing(WindowEvent e) {setVisible(false);}});pack();setResizable(false);setLocation(510,330);}public void setMess(String mess) {this.mess = mess;bel.setText("您输入的数字" + this.mess + " > 1000!!!是否输入?");}public String getMess() {return this.mess;}public Button getYes() {return this.yes;}public Button getNo() {return this.no;}public void setHide() {yes.setVisible(false);no.setVisible(false);}}(4)import java.awt.*;import java.awt.event.*;public class MyFrame extends Frame implements ActionListener { MyDialog modelDialog;ExceptionDialog exception;TextField num;TextArea dis;public MyFrame(String title) {super(title);modelDialog = new MyDialog(this,true);exception = new ExceptionDialog(this);num = new TextField(20);dis = new TextArea(10,10);dis.setEnabled(false);add(num,BorderLayout.NORTH);add(dis,BorderLayout.CENTER);num.addActionListener(this);modelDialog.getY es().addActionListener(this);modelDialog.getNo().addActionListener(this);addWindowListener(new WindowAdapter() {public void windowClosing(WindowEvent e) { System.exit(1);}});setVisible(true);setLocation(500,300);setResizable(false);pack();}public void actionPerformed(ActionEvent e) { Object obj = e.getSource();if(obj == this.num) {String str = this.num.getText();try {if(Integer.parseInt(str) > 1000) {modelDialog.setMess(str);modelDialog.setVisible(true);}else {dis.append(str + "\n");}}catch (NumberFormatException e1) {exception.setVisible(true);}}if(obj == this.modelDialog.getY es()) {dis.append(this.modelDialog.getMess() + "\n");modelDialog.setVisible(false);}else if(obj == this.modelDialog.getNo()) {modelDialog.setVisible(false);}num.setText(null);}}第八章第2题分四个部分分别建5个Java文本(1)public class Application {public static void main(String[] args) {new MyFrame("Dialog");}}(2)import java.awt.*;import java.awt.event.*;public class MyFrame extends Frame implements Info ,ActionListener { TextField num;TextArea info;String mess;InfoDialog infoDialog;ExceptionDialog exceptionDialog;public MyFrame(String s) {super(s);infoDialog = new InfoDialog(this);exceptionDialog = new ExceptionDialog(this);num = new TextField(30);info = new TextArea(10,30);info.setEnabled(false);num.addActionListener(this);add(num,BorderLayout.NORTH);add(info,BorderLayout.CENTER);addWindowListener(new WindowAdapter() { public void windowClosing(WindowEvent e) { System.exit(1);}});pack();setLocation(480,300);setVisible(true);setResizable(false);}public void actionPerformed(ActionEvent e) { mess = e.getActionCommand();if(mess == null) {exceptionDialog.setVisible(true);}try {if(Long.parseLong(mess) > 1000) {infoDialog.notifyDialog();}else {.append(this.mess + "\n");}}catch(NumberFormatException e1) {exceptionDialog.setVisible(true);}this.num.setText(null);}public String getMess() {return this.mess;}public void setInfo() {.append(this.mess + "\n");}}(3)public interface DisDialog {public void notifyDialog();}(4)public interface Info {public String getMess();public void setInfo();}(5)import java.awt.*;import java.awt.event.*;public class InfoDialog extends Dialog implements ActionListener { Label label;Button yes,no;Info info;public InfoDialog(Frame f) {super(f,"info",true); = (Info)f;yes = new Button("ok");yes.addActionListener(this);no = new Button("no");no.addActionListener(this);Container con = new Container();con.setLayout(new FlowLayout());con.add(yes);con.add(no);add(con,BorderLayout.SOUTH);label = new Label("",Label.CENTER);add(label,BorderLayout.CENTER);addWindowListener(new WindowAdapter() { public void windowClosing(WindowEvent e) { setVisible(false);}});setSize(340,90);setLocation(500,330);setResizable(false);}public void actionPerformed(ActionEvent e) { Object obj = e.getSource();String str = info.getMess();this.validate();add(label,BorderLayout.CENTER);if(obj == yes) {info.setInfo();}setVisible(false);}public void notifyDialog() {bel.setText("您输入的数字" + info.getMess() + " > 1000!!!是否确认输入?");this.setVisible(true);}}。

Java语言程序设计第九版第八章答案讲课教案

Java语言程序设计第九版第八章答案讲课教案

Chapter 8 Objects and Classes1. See the section "Defining Classes for Objects."2. The syntax to define a class ispublic class ClassName {}3.The syntax to declare a reference variable for anobject isClassName v;4.The syntax to create an object isnew ClassName();5. Constructors are special kinds of methods that arecalled 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 classdoes not define any constructor.7. The member access operator is used to access a datafield or invoke a method from an object.8.An anonymous object is the one that does not have areference variable referencing it.9.A NullPointerException occurs when a null referencevariable is used to access the members of an object.10.An array is an object. The default value for theelements 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 theShowErrors class.The ShowErrors class in the book has a defaultconstructor. It is actually same aspublic class ShowErrors {public static void main(String[] args) {ShowErrors t = new ShowErrors(5);}public ShowErrors () {}}On Line 3, new ShowErrors(5) attempts to create aninstance using a constructor ShowErrors(int), but theShowErrors class does not have such a constructor. That is an error.(b) x() is not a method in the ShowErrors class.The ShowErrors class in the book has a defaultconstructor. It is actually same aspublic class ShowErrors {public static void main(String[] args) {ShowErrors t = new ShowErrors();t.x();}public ShowErrors () {}}On Line 4, t.x() is invoked, but the ShowErrors classdoes not have the method named x(). That is an error.(c) The program compiles fine, but it has a runtimeerror because variable c is null when the printlnstatement is executed.(d) new C(5.0) does not match any constructors in classC. The program has a compilation error because class Cdoes not have a constructor with a double argument. 12.The program does not compile because new A() is used inclass Test, but class A does not have a defaultconstructor. See the second NOTE in the Section,“Constructors.”13.falsee the Date’s no-arg constructor to create a Date forthe current time. Use the Date’s toString() method todisplay a string representation for the Date.e the JFrame’s no-arg constructor to create JFrame.Use the setTitle(String) method a set a title and use thesetVisible(true) method to display the frame.16.Date is in java.util. JFrame and JOptionPane are injavax.swing. System and Math are in ng.17. System.out.println(f.i);Answer: CorrectSystem.out.println(f.s);Answer: Correctf.imethod();Answer: Correctf.smethod();Answer: CorrectSystem.out.println(F.i);Answer: IncorrectSystem.out.println(F.s);Answer: CorrectF.imethod();Answer: IncorrectF.smethod();Answer: Correct18. Add static in the main method and in the factorialmethod because these two methods don’t need referenceany instance objects or invoke any instance methods inthe Test class.19. You cannot invoke an instance method or reference aninstance variable from a static method. You can invoke astatic method or reference a static variable from aninstance method? c is an instance variable, which cannot be accessed from the static context in method2.20. Accessor method is for retrieving private data value and mutator method is for changing private data value. The naming convention for accessor method is getDataFieldName() for non-boolean values and isDataFieldName() for boolean values. The naming convention for mutator method is setDataFieldName(value).21.Two benefits: (1) for protecting data and (2) for easyto maintain the class.22. Not a problem. Though radius is private,myCircle.radius is used inside the Circle class. Thus, it is fine.23. Java uses “pass by value” to pass parameters to amethod. When passing a variable of a primitive type toa method, the variable remains unchanged after themethod finishes. However, when passing a variable of areference type to a method, any changes to the objectreferenced by the variable inside the method arepermanent changes to the object referenced by thevariable outside of the method. Both the actualparameter and the formal parameter variables referenceto the same object.The output of the program is as follows:count 101times 024.Remark: The reference value of circle1 is passed to x andthe reference value of circle2 is passed to y. The contents ofthe objects are not swapped in the swap1 method. circle1 andcircle2 are not swapped. To actually swap the contents of these objects, replace the following three linesCircle temp = x;x =y;y =temp;bydouble temp = x.radius;x.radius = y.radius;y.radius = temp;as in swap2.25. a. a[0] = 1 a[1] = 2b. a[0] = 2 a[1] = 1c. e1 = 2 e2 = 1d. t1’s i = 2 t1’s j = 1t2’s i = 2 t2’s j = 126. (a) null(b) 1234567(c) 7654321(d) 123456727. (Line 4 prints null since dates[0] is null. Line 5 causes a NullPointerException since it invokes toString() method from the null reference.)。

Java程序设计智慧树知到答案2024年杭州医学院

Java程序设计智慧树知到答案2024年杭州医学院

Java程序设计杭州医学院智慧树知到答案2024年第一章测试1.Java语言与其它语言相比,独有的特点是()A:面向对象B:多线程C:网络编程D:平台无关答案:D2.Android系统是电脑桌面操作系统。

()A:错 B:对答案:A3.机器语言是种高级语言()A:对 B:错答案:B4.开发Java可以不用搭建JDK环境()A:错 B:对答案:A5.Eclipse 是Java常用的IDE ()A:对 B:错答案:A第二章测试1.面有关java基本类型的默认值和取值范围,说法错误的是()。

A:字节型的类型默认值是0,取值范围是-27—27-1B:字符型类型默认是0,取值范围是-215 —215-1C:boolean类型默认值是false,取值范围是true\falseD:long类型默认是0,取值范围是-263—263-1答案:B2.IDE中嵌入的控制台能满足程序的输入输出功能()A:对 B:错答案:A3.Java 使用Scanner类进行控制台输入操作()A:对 B:错答案:A4.3days 是Java中合法标识符()A:对 B:错答案:B5.标识符可以为任意长度,但实际使用中应尽量避免过长的命名,以便于代码阅读()A:对 B:错答案:A第三章测试1.若 a 的值为 3 时,下列程序段被执行后, c 的值是多少?()A:2B:3C:4D:1答案:B2.if else语句嵌套不能超过3层()A:错 B:对答案:A3.if语句只作用于紧接着下去的第一句话,所以用大括号将属于某分支的所有语句扩起来是种良好的工程习惯()A:错 B:对答案:B4.假设表达式p为真,表达式q为假,那么p||q为真()A:对 B:错答案:A5.switch 语句适合离散数值的分支处理()A:错 B:对答案:B第四章测试1.以下代码的输出的正确结果是()A:15B:16C:8D:24答案:C2.Java中 Math.ceil(9.9)返回值为 9 ()A:对 B:错答案:B3.Java中 Math.floor(-3.4)返回值为 -3.0 ()A:错 B:对答案:A4.Java中,字符串是用单引号引起来的0个或者多个字符()A:对 B:错答案:B5.ASCII 已经满足了所有编码需求()A:对 B:错答案:B第五章测试1.下列循环语句序列执行完成后,i的值是()A:10B:2C:11D:不确定答案:C2.循环语句的目的之一是为了避免写重复代码()A:错 B:对答案:B3.While 语句, do while语句都可以用来实现循环目的()A:对 B:错答案:A4.break 可以用于if语句中()A:对 B:错答案:B5.continue语句只能用于循环语句中()A:对 B:错答案:A第六章测试1.下列方法定义中,正确的是()A:int x( ){ ...return true; }B:int x( int a, b){ return a+b; }C:int x( ){ char ch=’a’; return (int)ch; }D:void x( ){ ...return true; }答案:C2.函数调用时,提供的参数要和形参一一对应()A:错 B:对答案:B3.函数的实参可以是常量、变量或表达式()A:错 B:对答案:B4.从工程角度讲,不建议过多使用全局变量()A:对 B:错答案:A5.设计函数层次时,我们主要采用自顶向下的思维进行设计()A:对 B:错答案:A第七章测试1.以下说法错误的是()A:在Java中,数组存储在堆中连续内存空间里B:数组的大小可以任意改变C:数组不是一种原生类D:数组是一个对象答案:B2.数组的使用时,需要先定义,后使用()A:错 B:对答案:B3.假设一维数组的长度为10,那么在使用下标访问数组的时候,下标最大可以为10 ()A:对 B:错答案:B4.Java中,如果用=进行数组拷贝,这个过程是深拷贝,改变其中一个数组,不影响另一个数组()A:错 B:对答案:A5.Java中支持可变长数组形参()A:错 B:对答案:B第八章测试1.以下二维数组声明合法的是()A:char[2][3] ch = new char[][]B:char[2][] ch = new char[][3]C:char[][] ch = new char[2][3]D:char[][] ch = new [2]char[3]答案:C2.二维数组的元素按照行优先进行存储,第一行的元素先于第二行的元素存储,以此类推()A:错 B:对答案:B3.三维数组可以理解为以二维数组为元素的一维数组()A:对 B:错答案:A4.Java中,支持二维数组作为函数参数()A:对 B:错答案:A5.Java中,使用new创建二维数组的时候可省略列数,但不可省略行数()A:错 B:对答案:B第九章测试1.下列关于构造方法的叙述中,错误的是()A:Java语言规定构造方法只能通过new自动调用 B:Java语言规定构造方法名与类名必须相同 C:Java语言规定构造方法不可以重载 D:Java语言规定构造方法没有返回值,但不用void声明答案:C2.为了使包ch4在当前程序中可见, 可以使用的语句是()。

JAVA第八章课后习题解答

JAVA第八章课后习题解答
4
sb.append('\n'); }
} catch (Exception e) { e.printStackTrace(); } //显示 System.out.println(sb.toString()); } public void copy(){ try { FileWriter fw=new FileWriter(fileCopy); BufferedWriter bw=new BufferedWriter(fw); //写数据流 bw.write(sb.toString(),0,sb.toString().length()); bw.flush(); } catch (Exception e) { e.printStackTrace(); } } //test public static void main(String[] args){ FileDisplayAndCopy fda=new FileDisplayAndCopy("d:\\a.txt","d:\\b.txt"); fda.display(); fda.copy(); } } 【8】建立一个文本文件,输入一段短文,编写一个程序,统计文件中字符的个数,并将结 果写入另一个文件 [解答]: import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.File; import java.io.FileReader; import java.io.FileWriter; /** * 统计文件中字符的个数,并将结果写入另一个文件 */ public class FileCharCounter {
数据可以是未经加工的原始二进制数据也可以是经一定编码处理后符合某种格式规定的特定数据java据流有字节流和字符流之分

java语言程序设计第八章第十一题参考答案-推荐下载

java语言程序设计第八章第十一题参考答案-推荐下载

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(){
} }
对全部高中资料试卷电气设备,在安装过程中以及安装结束后进行高中资料试卷调整试验;通电检查所有设备高中资料电试力卷保相护互装作置用调与试相技互术通关,1系电过,力管根保线据护敷生高设产中技工资术艺料0不高试仅中卷可资配以料置解试技决卷术吊要是顶求指层,机配对组置电在不气进规设行范备继高进电中行保资空护料载高试与中卷带资问负料题荷试2下卷2,高总而中体且资配可料置保试时障卷,各调需类控要管试在路验最习;大题对限到设度位备内。进来在行确管调保路整机敷使组设其高过在中程正资1常料中工试,况卷要下安加与全强过,看度并22工且22作尽22下可22都能22可地护以缩1关正小于常故管工障路作高高;中中对资资于料料继试试电卷卷保破连护坏接进范管行围口整,处核或理对者高定对中值某资,些料审异试核常卷与高弯校中扁对资度图料固纸试定,卷盒编工位写况置复进.杂行保设自护备动层与处防装理腐置,跨高尤接中其地资要线料避弯试免曲卷错半调误径试高标方中高案资等,料,编试要5写、卷求重电保技要气护术设设装交备备置底4高调、动。中试电作管资高气,线料中课并敷3试资件且、设卷料中拒管技试试调绝路术验卷试动敷中方技作设包案术,技含以来术线及避槽系免、统不管启必架动要等方高多案中项;资方对料式整试,套卷为启突解动然决过停高程机中中。语高因文中此电资,气料电课试力件卷高中电中管气资壁设料薄备试、进卷接行保口调护不试装严工置等作调问并试题且技,进术合行,理过要利关求用运电管行力线高保敷中护设资装技料置术试做。卷到线技准缆术确敷指灵设导活原。。则对对:于于在调差分试动线过保盒程护处中装,高置当中高不资中同料资电试料压卷试回技卷路术调交问试叉题技时,术,作是应为指采调发用试电金人机属员一隔,变板需压进要器行在组隔事在开前发处掌生理握内;图部同纸故一资障线料时槽、,内设需,备要强制进电造行回厂外路家部须出电同具源时高高切中中断资资习料料题试试电卷卷源试切,验除线报从缆告而敷与采设相用完关高毕技中,术资要资料进料试行,卷检并主查且要和了保检解护测现装处场置理设。备高中资料试卷布置情况与有关高中资料试卷电气系统接线等情况,然后根据规范与规程规定,制定设备调试高中资料试卷方案。
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

为一个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();
System.out.print("c=");
int c=input.nextInt();
System.out.print("d=");
int d=input.nextInt();
System.out.print("e=");
int e=input.nextInt();
System.out.print("f=");
int f=input.nextInt();
LinearEquation l=new LinearEquation(a,b,c,d,e,f);
if(a*d-b*c==0)
System.out.println("此方程无解!");
else
System.out.println("线性方程的解为:"+l.getX()+"和"+l.getY());
}
}。

相关文档
最新文档