Java作业8及答案
JAVA课后作业第8章
System.out.println("ok:" + str); b = new Boolean("true"); str = b.toString(); System.out.println("true:" + str); } }
8-1 使用 String 类的 toUpperCase()方法和 toLowerCase()方法来实现大小写的转换。
String str = "AbCDefGh";
String lStr = str.toLowerCase();
// 转换为小写后得到的字符串为“abcdefgh”
String uStr = str.toUpperCase();
}
8-5 编写程序,实现通过字符型变量创建 boolean 值,再将其转换成字符串输出,观察输出
后的字符串与创建 Boolean 对象时给定的参数是否相同。
public class CreateBoolean { public static void main(String args[]) { Boolean b = new Boolean("ok"); String str = b.toString();
String nu2 ="你好,我是锅巴小米"; String lStr=nu1.substring(0, 6).toLowerCase(); String uStr=nu2.substring(0, 6).toLowerCase(); if(lStr.equals(uStr)){
Syst); }else{
// 转换为大写后得到的字符串为“ABCDEFGH”
java习题及答案第8章 习题参考答案
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习题题目及答案
第1章问答题及作业题第1章问答题1、发明Java语言的原因是什么?发明Java语言的主要贡献者是谁?2、“Java编译器将源文件编译生成的字节码是机器码”,这句话正确吗?3、Java程序的主类必须含有怎样的方法?4、“Java应用程序必须含有一个类是public类”,这句话正确吗?5、“Java Applet程序的主类必须是public类”,这句话正确吗?6、请叙述Java源文件的命名规则。
7、源文件生成的字节码在运行时都加载到内存中吗?8、怎样编写加载运行Java Applet的简单网页?9、编译器使用“-source”参数的作用是什么?“-source”参数的默认取值是什么?第1章作业题1.参照例1-1编写一个Java应用程序,程序能在命令行中输出“早上好,Good Morning”。
2.参照例1-2编写一个Java Applet程序,程序能在浏览器中显示“你好,Hello”。
第2章问答题及作业题第2章问答题1、什么是标识符?标识符的规则是什么?2、什么是关键字?请说出5个关键字。
3、Java的基本数据类型是什么?4、下列哪些语句是错误的?int x=120;byte b=120;b=x;5、下列哪些语句是错误的?float x=12.0;float y=12;double d=12;y=d;6、下列两条语句的作用是等价的吗?char x=97;char x=’a’;7、下列语句输出的结果是什么?int a=97;byte b1=(byte)128;byte b2=(byte)-129;System.out.printf(“%c,%d,%d”,a,b1,b2);8、数组是基本数据类型吗?怎样获取一维数组的长度?9、假设有两个int类型数组:int[] a=new int[10];int[] b=new int[8];b=a;a[0]=100;b[0]的值一定是100吗?10、下列两条语句的作用等价吗?int[] a={1,2,3,4,5,6,7,8};int[] a=new int[8];}第2章作业题1.参照例2-1编写一个Java应用程序,输出俄文字母表。
习题答案8-Java面向对象程序设计(第3版)-赵生慧-清华大学出版社
第八章【练习8.1】1.A2.A3.B4. 组件是GUI程序的基本组成元素,任何一个GUI就是由若干组件对象构成的。
Swing是在AWT基础之上构建的一套新的Java图形界面库,其不再依赖操作系统的本地代码而是自己负责绘制组件的外观,因此也被称为轻量级(Light-weight)组件,这是它与AWT组件的最大区别。
Swing中几乎所有的类都直接或间接继承自AWT中的类,另一方面,Swing的事件模型也是完全基于AWT的,因此,AWT和Swing并非两套彼此独立的Java图形库。
5. 容器组件指那些能够“容纳”组件的特殊组件,如窗口、面板、对话框等。
容器可以嵌套,即容器中又包含容器。
Swing提供的常用容器组件有窗口、面板、可滚动面板、分割面板、分页面板等。
6.①顶层容器:指GUI程序中位于“最上层”的容器,其不能被包含到别的容器中,如窗口、对话框等。
②非顶层容器:位于顶层容器之下的容器,如面板、内部窗口等。
7. JLabel(标签)用于显示文字或图片,不能接受用户的输入。
JTextField (文本框) 可以接受用户输入或编辑单行文本。
JTextArea(文本区) 接受用户输入或编辑多行文本。
JPasswordField(密码输入框) 是JTextField 的子类,两者的主要区别是JPasswordField 不会显示出用户输入的内容,而只会显示出程序指定的一个固定字符,比如'*'。
8. 将多个单选按钮加入到同一个ButtonGroup群组对象中构成一组,保证该组按钮任一时刻只能有一个单选按钮被选中。
【练习8.2】1.C2.D3.D4.D5.//BasicSwingComponent.java1 import java.awt.FlowLayout;2 import java.awt.event.ItemEvent;3 import java.awt.event.ItemListener;45 import javax.swing.JButton;6 import javax.swing.JCheckBox;7 import javax.swing.JComboBox;8 import javax.swing.JFrame;9 import javax.swing.JLabel;10 import javax.swing.JList;11 import javax.swing.JPanel;12 import javax.swing.JPasswordField;13 import javax.swing.JRadioButton;14 import javax.swing.JScrollPane;15 import javax.swing.JTextArea;16 import javax.swing.JTextField;1718 public class BasicSwingComponent {1920 public static void main(String[] args) {21 JFrame win = new JFrame("JFrame");22 win.setSize(300, 300);23 win.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);24 win.setLayout(new FlowLayout());2526 JPanel jp1 = new JPanel();27 JPanel jp4 = new JPanel();28 JLabel label1 = new JLabel("用户名:");29 jp1.add(label1);30 JTextField textField = new JTextField(10);31 jp1.add(textField);32 jp4.add(new JLabel("口令:"));33 JPasswordField pfd = new JPasswordField(10);34 pfd.setEchoChar('*');35 jp4.add(pfd);3637 JPanel panel2 = new JPanel();38 JLabel label12 = new JLabel("性别:");39 panel2.add(label12);40 JRadioButton radio = new JRadioButton("男");41 radio.setSelected(true);42 panel2.add(radio);43 JRadioButton radio2 = new JRadioButton("女");44 panel2.add(radio2);4546 JPanel panel3 = new JPanel();47 JLabel label3 = new JLabel("爱好:");48 panel3.add(label3);49 JCheckBox check = new JCheckBox("运行");50 panel3.add(check);51 JCheckBox check2 = new JCheckBox("音乐");52 check2.setSelected(true);53 panel3.add(check2);54 JCheckBox check3 = new JCheckBox("网络");55 panel3.add(check3);5657 JPanel panel4 = new JPanel();58 JLabel label4 = new JLabel("JComboBox:");59 panel4.add(label4);60 String[] majors = { "软件工程", "计算机", "物联网", "大数据" };61 JComboBox cbxMajor = new JComboBox(majors);62 cbxMajor.addItemListener(new ItemListener() {6364 @Override65 public void itemStateChanged(ItemEvent e) {66 String selection=(String)e.getItem();//获取选择项67 if(e.getStateChange()==ItemEvent.SELECTED )68 System.out.println(selection);6970 }});71 panel4.add(cbxMajor);7273 JPanel panel5 = new JPanel();74 panel5.add(new JLabel("JList:"));75 JList lst = new JList(majors);76 panel5.add(lst);7778 JTextArea ta = new JTextArea();79 ta.setText("此处为简介 \n第二行\n第三行\n第四行");80 ta.setRows(3);81 ta.setColumns(10);82 JScrollPane scp = new JScrollPane(ta);8384 JPanel panel6 = new JPanel();85 JButton button = new JButton("提交");86 panel6.add(button);8788 win.add(jp1);89 win.add(jp4);90 win.add(panel2);91 win.add(panel3);92 win.add(scp);93 win.add(panel6);9495 win.setVisible(true);96 }97 }【练习8.3】1. D2. A3.①事件源(Event Source):事件的产生者或来源。
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程序设计单元测试八与答案
一、单选题1、容器被重新设置大小后,哪种布局管理器的容器中的组件大小不随容器大小的变化而改变?( )A.CardLayoutB.GridLayoutC.Border LayoutD.FlowLayout正确答案:D2、如果希望所有的控件在界面上均匀排列,应使用下列那种布局管理器?()A.BoxLayoutB.GridLayoutC.BorderLayoutD.FlowLouLayout正确答案:B3、下列不属于Swing中组件的是( )。
A.JPanelB.JTableC.JMenuD.JFrame正确答案:C4、对于Swing基本控件单选框,若要使两个单选框对象之间具有相互排斥的关系,需要( )。
A.创建两个单选框对象时定义相同的对象名B.将两个单选框对象放在同一个面板上C.定义一个ButtonGroup对象group,将两个单选框对象加到group 中D.让两个单选框排成一行或一列正确答案:C5、在基于Swing的图形用户界面设计中,面板属于( )。
A.顶层容器B.中间级容器C.窗格D.原子组件正确答案:B6、以下对框架的描述不正确的是()。
A.框架是Swing的顶级容器组件B.框架是一个图形界面程序的主窗口C.框架一般包括标题栏、最小化最大化关闭按钮以及边框等D.一个图形界面程序只能有一个框架正确答案:D7、在Swing中,下列出的面板的作用中,错误的是()。
A.放置并排列组件B.显示背景图案C.接收事件D.显示面板的边框正确答案:C8、在Swing中,如何设置组件的边框?()A.通过根窗格的setBorder函数设置某各组件的边框B.通过内容窗格的setBorder函数设置某各组件的边框C.通过组件的setBorder函数设置D.通过框架的setBorder函数设置某各组件的边框正确答案:C9、以下关于框架和其他窗口之间的关系中,错误的是()。
A.对话框必须依附于某个框架B.当框架最小化时,所有依附于它的窗口也会最小化C.框架是一个程序的主窗口,每个具有图形界面的程序都至少要有一个框架D.内部框架也是顶级容器组件正确答案:D10、JWindow是宣示屏上独立的本机窗口,它独立于其它容器,JWindow的两种形式是()。
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第八章答案
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() {}public runnable(String city) {this.city = city;}public void run() {for (int i = 0; i < 10; i++) {System.out.println(city);try {//休眠1000毫秒。
《Java语言程序设计-基础篇》答案-第08章
8.19 答: (a) 输出结果如下:
j is 3 i is 1 (b) 输出结果如下: i is 0 j is 4 i is 5 j is 4
8.20 答:(略)
8.21 答:结果是
z对 z错 z对 z对 z错 z错 z对 z错 z错
网 案 答 后 课
a 改为:return super.findArea() * length; hd 8.4 答:(略),自行查阅课本。 .k 8.5 答:每个类均有。
w 从公共父类 ng.Object 继承而来。 ww 创建对象后可以通过对象引用直接调用它们。 网 8.6 答:输出结果如下:
B’s constructor is invoked
1
7
网
案 8.12 答:无修饰符(包作用域)。说明:该题应为“应该在一个类的成员前面……”。
答 8.13 答:protected 修饰符。说明:该题应为“应该在一个类的成员前面……”。
后 8.14 答:类 B 能正常编译。 课 8.15 答:?处应该 protected,当然 public 是一定可以的。
案 A’s constructor is invoked 答 调用 new A(3)时,会调用 Object 的无参构造方法。 后 8.7 答:结果如下: 课 对(a)中的类 Circle,Test 类主方法输出 false;
对(b)中的类 Circle,Test 类主方法输出 false;
原因:
(a)中的 equals 方法,由于参数类型与其父类 Object 的 equals 方法 不同,所以没有形成覆盖,则在 Test 类方法中调用的是父类 Object 的 equals 方法,因此不能正确比较 2 个圆对象是否相等地。 (b)中的 equals 方法,形成了对父类 Object 的 equals 方法的覆盖, 则在 Test 类方法中调用的是子类 Circle 的 equals 方法,因此能正 确比较。
java课后习题答案及部分作业答案
java课后习题答案及部分作业答案第⼀章Java概述⼀、选择题1、下⾯哪个是在Dos命令提⽰符下编译Java程序的命令?(A )A. javacB. javaC. javadocD. javaw2、以下哪些是Java程序中有效的注释符号?(ABC )A. //B. /* */C. /** */D. */ */3、以下哪个不是Java语⾔的特点?(B )A. ⾯向对象B. ⾃动检查语法错误C. 跨平台D. 解释执⾏4、Java编译器会将Java程序转换为(C )A. 可执⾏代码B. ⽬标代码C. 字节码D. 机器代码5、Java源⽂件的扩展名是(D )A. .classB. .jarC. .javD. .java⼆、简答题1、Java的跨平台的含义是什么?为什么Java可以跨平台?Java语⾔的⼀个⾮常重要的特点就是平台⽆关性。
它是指⽤Java编写的应⽤程序编译后不⽤修改就可在不同的操作系统平台上运⾏。
Java之所以能平台⽆关,主要是依靠Java虚拟机(JVM)来实现的。
JVM是⼀种抽象机器,它附着在具体操作系统之上,本⾝具有⼀套虚机器指令,并有⾃⼰的栈、寄存器组等。
Java编程⼈员在编写完Java程序后,Java编译器将Java源代码⽂件编译后⽣成字节码⽂件2、简述Java语⾔的特点Java具有以下特点:1)、简单性Java语⾔的语法规则和C语⾔⾮常相似,只有很少⼀部分不同于C语⾔,并且Java还舍弃了C语⾔中复杂的数据类型(如:指针和结构体),因此很容易⼊门和掌握。
2)、可靠性和安全性Java从源代码到最终运⾏经历了⼀次编译和⼀次解释,每次都有进⾏检查,⽐其它只进⾏⼀次编译检查的编程语⾔具有更⾼的可靠性和安全性。
3)、⾯向对象Java是⼀种完全⾯向的编程语⾔,因此它具有⾯向对象编程语⾔都拥有的封装、继承和多态三⼤特点。
4)、平台⽆关和解释执⾏Java语⾔的⼀个⾮常重要的特点就是平台⽆关性。
它是指⽤Java编写的应⽤程序编译后不⽤修改就可在不同的操作系统平台上运⾏。
《Java基础入门》_课后习题答案大一计算机专业8
《Java基础入门》课后习题答案第8章GUI(图形用户界面)一、填空题1、在Java 中,图形用户界面简称: GUI2、事件监听器: 负责监听事件源上发生的事件,并对各种事件做出响应处理。
3、GUI 设计提供了一些基本的图形用户接口开发工具,如AWT:Swing 和JavaFX。
4、.如果单击Frame窗口有上角的关闭按相能将其关闭:那么这个Frame窗口添加了:WindowListener 监听器,并实现了监听器:windowClosing(WindowEvent e) 的方法。
5、创建下拉式菜单需要使用三个组件,分别是:JMenuBar、JMenu、JMenuItem二、判断题1、容器(Container)是一个可以包含基本组件和其他容器的组件。
对2.可以通过实现AetionListener 接口或者继承AconAdpter 类来实现动作事件监听器。
错3.CardLayout 布局管理器将界面看做一系列卡片,在任何时候只有其中一张卡片是可见的。
对4.非模态对话框是指用户需要等到处理完对话框后才能继续与其他窗口进行交互。
错5.JFrame 的默认布局管理器是FlowLayout。
错三、选择题1.下面四个组件中哪一个不是JComponent 的子类? (B)A.JButtonB.JDialogC. JLabelD.JMenuBar2.下面四个选项中,哪些是事件处理机制中的角色?(多选) (ABD)A.事件B.事件源C.事件接口D.事件监听器3. ActionEvent 的对象会被传递给以下哪个事件处理器方法? (D)A.addChangeListener()B. addActionListener()C. stateChanged()D. actionPerformed()4.下面哪些是FlowLayout 类中表示对齐方式的常量?(多选) (ABD)A.FlowLayout.LEFTB.FlowLayout.CENTERC. FlowLayout. VERTICALD. FlowLayout. RIGHT5.下列选项中关于JavaFX,描述错误的是(C )A.JavaFX是一个强大的图形和多媒体处理工具包集合B. JavaFX 允许开发者来设计、创建、测试、调试和部署客户端程序C.JavaFX不能与Swing实现互操作D.JavaFX可以实现跨平台功能四、简答题1、请简述GUI 中实现事件监听的步骤:●通过实现XxxListener接口或者继承XxxAdapter类实现一个事件监听器类,并对处理监听动作的方法进行重写●创建事件源对象和事件监听器对象●调用事件源的addXxxLisntener()方法,为事件源注册事件监听器对象2、请简述Swing 中的布局管理器有哪些。
Java2实用教程(第四版)课后习题1-8章答案最终
Java2实用教程(第四版)课后习题1-8章答案最终习题一(第1章)一、问答题1.James Gosling2.需3个步骤:1)用文本编辑器编写源文件。
2)使用javac编译源文件,得到字节码文件。
3)使用解释器运行程序。
3.由类所构成,应用程序必须有一个类含有public static void main(String args[])方法,含有该方法的类称为应用程序的主类。
不一定,但最多有一个public类。
4.Path设置为:以安装的版本为例。
)ClassPath设置为:set classpath=D:\jdk\jre\lib\;.;5..java和.class6. java Bird7.独行风格(大括号独占行)和行尾风格(左大扩号在上一行行尾,右大括号独占行)二、选择题1.B。
2.D。
三、阅读程序1.(a)。
(b)两个字节码,分别是和。
(c)得到“NoSuchMethodError”,得到“NoClassDefFo undError: 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】。
JAVA第八章课后习题解答
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作业8及答案
一、判断程序段1. class Something {final int i;public void doSomething() {System.out.println("i = " + i);}}7. interface Playable {void play();}interface Bounceable {void play();}interface Rollable extends Playable, Bounceable { Ball ball = new Ball("PingPang");}class Ball implements Rollable {private String name;public String getName() {return name;}public Ball(String name) { = name;}public void play() {ball = new Ball("Football");System.out.println(ball.getName());}}二、下面代码编译和运行的结果是什么?1. class MyThread extends Thread{public void run(){System.out.println("MyThread: run()");}public void start(){System.out.println("MyThread: start()");}}class MyRunnable implements Runnable{public void run(){System.out.println("MyRunnable: run()");}public void start(){System.out.println("MyRunnable: start()");}}public class MyTest {public static void main(String args[]){MyThread myThread = new MyThread();MyRunnable myRunnable = new MyRunnable();Thread thread = new Thread(myRunnable);myThread.start();thread.start();}}A.打印MyThread: start() 后面跟MyRunnable: run()B.打印MyThread: run() 后面跟MyRunnable: start()C.打印MyThread: start() 后面跟MyRunnable: start()D.打印MyThread: run() 后面跟MyRunnable: run()2. // 文件名:SuperclassX.javapackage packageX;public class SuperclassX{protected void superclassMethodX(){}int superclassVarX;}//文件名:SubclassY.java1.package packageX.packageY;2.3.public class SubclassY extends SuperclassX4.{5. SuperclassX objX = new SubclassY();6. SubclassY objY = new SubclassY();7. void subclassMethodY()8. {9. objY.superclassMethodX();10. int i;11. i = objY.superclassVarX;12. }13.}A.第5行编译错B.第9行编译错C.第11行意外D.都不是3. 程序段如下:1.class MyClass2.{3. void myMethod(int i) {System.out.println("int version");}4. void myMethod(String s) {System.out.println("String version");}5. public static void main(String args[])6. {7. MyClass obj = new MyClass();8. char ch = 'c';9. obj.myMethod(ch);10. }11.}A.第四行编译出错B.第九行抛出例外C.输出结果:int versionD.输出结果:String version4. public class ThrowsDemo {static void throwMethod() {System.out.println("Inside throwMethod.");throw new IllegalAccessException("demo");}public static void main(String args[]) {try {throwMethod();} catch (IllegalAccessException e) {System.out.println("Caught " + e);}}}A.编译错B.运行错C.编译成功,但是没有输出结果D.以上都不是5. class X {Y b = new Y();X() {System.out.print("X");}}class Y {Y() {System.out.print("Y");}}public class Z extends X {Y y = new Y();Z() {System.out.print("Z");}public static void main(String[] args) {new Z();}}A.ZB.YZC.XYZD.YXYZ6. public class MyThread implements Runnable {String myString = "Yes ";public void run() {this.myString = "No ";}public static void main(String[] args) {MyThread t = new MyThread();new Thread(t).start();for (int i=0; i < 10; i++)System.out.print(t.myString);}}A. 打印yes yes yes yes yes yes B. 打印no no no no no no no noC. 打印yes no yes no ye no ye no D. 不确定答案:一、1. 错。
Java Web 程序设计教程 第8章习题答案(范立锋、林果园 编著)
Java Web 程序设计教程(范立锋、林果园编著)第8章初识Hibernate框架习题答案1.什么是ORM?ORM就是对象关系映射。
其中的“O”代表的就是对象(object),“R”代表的是关系“relation”,M代表的是映射“mapping”。
其原理就是将对象与表、对象的属性与表的字段分别建立映射关系。
2.Hibernate有那些配置文件?这些配置文件都使用什么语法配置?HIbernate有两个配置文件。
一个配置文件是hibernate.cfg.xml,使用XML语法来配置数据库连接等信息,或者hibernate.properties,使用‘名称’=‘值’的形式配置。
HIbernate的另一个配置文件是映射文件,用来经数据表中的字段信息映射项目中创建的持久化的属性信息。
这样才能使用HIbernate的ORM机制,操作持久化类对象属性的同时就可以对数据中的数据进行更改。
3.简述在Hibernate中使用的映射关系类型。
映射关系类型如下表所示:Java Web程序设计4.Hibernate中用于开始使用Hibernate的入口配置类是什么?入口类是Configuration,该类用来读取HIbernate的配置文件并实例化SessionFactory对象等。
该类的实例化代码如下。
使用属性文件配置HIbernate时:Configuration config=new Configuration();使用配置文件配置HIbernate时:Configuration config=new Configuration().configrue();5.Hibernate中的关联关系都有哪些?实体之间通过关系来相互关联,关系之间有一对一(1:1)、一对多(1:n)和多对多(n:m)的关系。
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 todeclare a reference variable for an objectisClassName 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. Thatis 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 nullwhen 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 beca use 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.T wo 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 8基础应用与开发(第2版)-微课版-周清平-清华大学出版社
Java 8基础--课后练习答案
第1章
1. B
2. D
3. B
4. C
5. D
6. 每个独立的、可执行的Java应用程序必须要有main()方法才能运行,main()方法是程序的主方法,是整个程序的入口,运行时执行的第一个方法就是main()方法。
7. JVM在具体的操作系统之上运行,其本身具有一套虚拟机指令,但它通常是在软件而不是在硬件上实现。
JVM形成一个抽象层,将底层硬件平台、操作系统与编译过的代码联系起来。
Java字节码的格式通用,具有跨平台特性,但这种跨平台是建立在JVM虚拟机的基础之上,只有通过JVM处理后才可以将字节码转换为特定机器上的机器码,然后在特定的机器上运行。
第2章
1. A
2. C
3. A
4. D
5. D
6. C
7. C
第3章
1. B
2. A
3. B
4. B
5. C
6. A
7. D
8. C
第4章
1. C
2. A
3. C
4. D
5. C
6. B
7. C
第5章
1. B
2. D
3. D
4. AB
5. C
6. D
7. B
8. C
第6章
1. C
2. C
3. C
4. B
5. D
6. A
7. A 第7章
1. A
2. B
3. A
4. D
5. C
6. B
第8章
1. D
2. B
3. A
4. D
5. A
6. B
7. C。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
一、判断程序段
1. class Something {
final int i;
public void doSomething() {
System.out.println("i = " + i);
}
}
7. interface Playable {
void play();
}
interface Bounceable {
void play();
}
interface Rollable extends Playable, Bounceable { Ball ball = new Ball("PingPang");
}
class Ball implements Rollable {
private String name;
public String getName() {
return name;
}
public Ball(String name) {
= name;
}
public void play() {
ball = new Ball("Football");
System.out.println(ball.getName());
}
}
二、下面代码编译和运行的结果是什么?
1. class MyThread extends Thread{
public void run(){
System.out.println("MyThread: run()");
}
public void start(){
System.out.println("MyThread: start()");
}
}
class MyRunnable implements Runnable{
public void run(){
System.out.println("MyRunnable: run()");
}
public void start(){
System.out.println("MyRunnable: start()");
}
}
public class MyTest {
public static void main(String args[]){
MyThread myThread = new MyThread();
MyRunnable myRunnable = new MyRunnable();
Thread thread = new Thread(myRunnable);
myThread.start();
thread.start();
}
}
A.打印MyThread: start() 后面跟MyRunnable: run()
B.打印MyThread: run() 后面跟MyRunnable: start()
C.打印MyThread: start() 后面跟MyRunnable: start()
D.打印MyThread: run() 后面跟MyRunnable: run()
2. // 文件名:SuperclassX.java
package packageX;
public class SuperclassX{
protected void superclassMethodX(){}
int superclassVarX;
}
//文件名:SubclassY.java
1.package packageX.packageY;
2.
3.public class SubclassY extends SuperclassX
4.{
5. SuperclassX objX = new SubclassY();
6. SubclassY objY = new SubclassY();
7. void subclassMethodY()
8. {
9. objY.superclassMethodX();
10. int i;
11. i = objY.superclassVarX;
12. }
13.}
A.第5行编译错
B.第9行编译错
C.第11行意外
D.都不是
3. 程序段如下:
1.class MyClass
2.{
3. void myMethod(int i) {System.out.println("int version");}
4. void myMethod(String s) {System.out.println("String version");}
5. public static void main(String args[])
6. {
7. MyClass obj = new MyClass();
8. char ch = 'c';
9. obj.myMethod(ch);
10. }
11.}
A.第四行编译出错
B.第九行抛出例外
C.输出结果:int version
D.输出结果:String version
4. public class ThrowsDemo {
static void throwMethod() {
System.out.println("Inside throwMethod.");
throw new IllegalAccessException("demo");
}
public static void main(String args[]) {
try {
throwMethod();
} catch (IllegalAccessException e) {
System.out.println("Caught " + e);
}
}
}
A.编译错
B.运行错
C.编译成功,但是没有输出结果
D.以上都不是
5. class X {
Y b = new Y();
X() {
System.out.print("X");
}
}
class Y {
Y() {
System.out.print("Y");
}
}
public class Z extends X {
Y y = new Y();
Z() {
System.out.print("Z");
}
public static void main(String[] args) {
new Z();
}
}
A.Z
B.YZ
C.XYZ
D.YXYZ
6. public class MyThread implements Runnable {
String myString = "Yes ";
public void run() {
this.myString = "No ";
}
public static void main(String[] args) {
MyThread t = new MyThread();
new Thread(t).start();
for (int i=0; i < 10; i++)
System.out.print(t.myString);
}
}
A. 打印yes yes yes yes yes yes B. 打印no no no no no no no no
C. 打印yes no yes no ye no ye no D. 不确定
答案:
一、1. 错。
final int i是个final的instant variable (实例变量,或叫成员变量)。
final 的instant variable没有default value,必须在constructor (构造器)结束之前被赋予一个明确的值。
可以修改为"final int i = 0;"。
2. 错。
Ball ball = new Ball("PingPang");"实际上是"public static final Ball ball = new Ball("PingPang");"。
在Ball类的Play()方法中,"ball = new Ball("Football");"改变了ball的reference,所以编译时间错。
二、1.答案A
2.答案D
3.答案C
4.答案:A
5.答案D
6.答案D。