1、Java程序设计精编教程第版习题解答习题解答习题一(第1章)1James Gosling2需3个步骤:1) 用文本编辑器编写源文件。 2) 使用javac编译源文件,得到字节码文件。3) 使用解释器运行程序。3set classpath=D:jdkjrelib;.;4. B5. Java源文件的扩展名是.java,Java字节码的扩展名是.class。6D。 习题二(第2章)1Oxab187laderheightbottomOxab187ractanglewidthheight2public class Teacher double add(double a,double b) return
2、a+b; double sub(double a,double b) return a-b; public 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类,那么源文件的名字必须与这个类的
3、名字完全相同,扩展名是.java。4行尾风格。习题三(第3章)1用来标识类名、变量名、方法名、类型名、数组名、文件名的有效字符序列称为标识符。标识符由字母、下划线、美元符号和数字组成,第一个字符不能是数字。true不是标识符。2关键字就是Java语言中已经被赋予特定意义的一些单词,不可以把关键字作为名字来用。不是关键字。class implements interface enum extends abstract。3boolean,char,byte,short,int,long,float,double。4属于操作题,解答略。5属于操作题,解答略。6. public class E pub
4、lic static void main (String args ) char cStart=A,cEnd=Z; for(char c=cStart;c=cEnd;c+) 7不可以。习题四(第4章)1110。不规范。2新亲亲斤!。3public class JudgeAward void giveMess(int number) if(number=9|number=131|number=12) else if(number=209|number=596|number=27) else if(number=875|number=316|number=59) else 4public clas
5、s Computer public static void main(String args) Scanner reader=new Scanner; double amount = 0; 2c2c27。10100和。习题六(第6章)1如果子类和父类在同一个包中,那么,子类自然地继承了其父类中不是private的成员变量作为自己的成员变量,并且也自然地继承了父类中不是private的方法作为自己的方法, 继承的成员或方法的访问权限保持不变。当子类和父类不在同一个包中时,父类中的private和友好访问权限的成员变量不会被子类继承,也就是说,子类只继承父类中的protected和public访问
6、权限的成员变量作为子类的成员变量;同样,子类只继承父类中的protected和public访问权限的方法作为子类的方法。如果所声明的成员的变量的名字和从父类继承来的成员变量的名字相同(声明的类型可以不同),在这种情况下,子类就会隐藏掉所继承的成员变量。2不可以。3abstract类。4A类是B类的父类,当用子类创建一个对象b,并把这个对象b的引用放到父类的对象a中时,称a是b的上转型对象。5AD。6 。7 12。习题七(第7章)1不能。2不能。3可以把实现某一接口的类创建的对象的引用赋给该接口声明的接口变量中。那么该接口变量就可以调用被类实现的接口中的方法。4 8。5 1815。习题八(第8章
7、)1有效。2可以。3不可以。4大家好,祝工作顺利!习题九(第9章)1ABD。2Love:Game。3 15abc我们。413579。59javaHello。6public class E public static void main (String args ) String s1,s2,t1=ABCDabcd; s1=(); s2=(); String s3=(s2); 7. public class E public static void main (String args ) String s=ABCDabcd; char cStart=(0); char cEnd = ()-1);
8、 8.import .*;public class E public static void main(String args) Scanner read=new Scanner; CalendarBean cb=new CalendarBean(); int year=2000,month=1; year=(); month=(); (year); (month); String a= ();oCharArray(); for(char c:str) 3c,c); for(int i=0;i=0) m=m-1; (m); int c=(); if(c=0) else m=m-1; (m);
9、byte cc=new byte2; (cc); catch(Exception exp) 7. import .*;public class E public static void main(String args ) File file=new File(); File tempFile=new File(); try FileReader inOne=new FileReader(file); BufferedReader inTwo= new BufferedReader(inOne); FileWriter tofile=new FileWriter(tempFile); Buff
10、eredWriter out= new BufferedWriter(tofile); String s=null; int i=0; s=(); while(s!=null) i+; (i+ +s); (); s=(); (); (); (); (); (); catch(IOException e) 8. 属于上机操作题,解答略。 9. import .*;import .*;public class E public static void main(String args) File file = new File(); Scanner sc = null; double sum=0;
11、 int count = 0; try sc = new Scanner(file); while() try double price = (); count+; sum = sum+price; catch(InputMismatchException exp) String t = (); catch(Exception exp) 习题十一(第11章)1Frame容器的默认布局是BorderLayout布局。2不可以。3 import .*;import .*;public class E public static void main(String args) Computer fr=
12、new Computer(); class Computer extends JFrame implements DocumentListener JTextArea text1,text2; int count=1; double sum=0,aver=0; Computer() setLayout(new FlowLayout(); text1=new JTextArea(6,20); text2=new JTextArea(6,20); add(new JScrollPane(text1); add(new JScrollPane(text2); (false); ().addDocum
13、entListener(this); setSize(300,320); setVisible(true); validate(); setDefaultCloseOperation; public void changedUpdate(DocumentEvent e) String s=(); sum=0; aver=0; for(int i=0;i;i+) try sum=sum+(ai); catch(Exception ee) aver=sum/count; (null); (n和:+sum); (n平均值:+aver); public void removeUpdate(Docume
14、ntEvent e) changedUpdate(e); public void insertUpdate(DocumentEvent e) changedUpdate(e); 4. import .*;import .*;public class E public static void main(String args) ComputerFrame fr=new ComputerFrame(); class ComputerFrame extends JFrame implements ActionListener JTextField text1,text2,text3; JButton
15、 buttonAdd,buttonSub,buttonMul,buttonDiv; JLabel label; public ComputerFrame() setLayout(new FlowLayout(); text1=new JTextField(10); text2=new JTextField(10); text3=new JTextField(10); label=new JLabel( ,; ; add(text1); add(label); add(text2); add(text3); buttonAdd=new JButton(加); buttonSub=new JBut
16、ton(减); buttonMul=new JButton(乘); buttonDiv=new JButton(除); add(buttonAdd); add(buttonSub); add(buttonMul); add(buttonDiv); (this); (this); (this); (this); setSize(300,320); setVisible(true); validate(); setDefaultCloseOperation; public void actionPerformed(ActionEvent e) double n; if()=buttonAdd) d
17、ouble n1,n2; try n1=(); n2=(); n=n1+n2; (n); (+); catch(NumberFormatException ee) (请输入数字字符); else if()=buttonSub) double n1,n2; try n1=(); n2=(); n=n1-n2; (n); (-); catch(NumberFormatException ee) (请输入数字字符); else if()=buttonMul) double n1,n2; try n1=(); n2=(); n=n1*n2; (n); (*); catch(NumberFormatEx
18、ception ee) (请输入数字字符); else if()=buttonDiv) double n1,n2; try n1=(); n2=(); n=n1/n2; (n); (/); catch(NumberFormatException ee) (请输入数字字符); validate(); 5. import .*;import .*;public class E public static void main(String args) Window win = new Window(); (使用MVC结构); (100,100,420,260); class Window exten
19、ds JFrame implements ActionListener Lader lader; rim(); double bottom = ().trim(); double height = ().trim(); (above) ; (bottom); (height); double area = (); (面积:+area+n); catch(Exception ex) (n+ex+n); class Lader double above,bottom,height; public double getArea() double area = (above+bottom)*heigh
20、t/; return area; public void setAbove(double a) above = a; public void setBottom(double b) bottom = b; public void setHeight(double c) height = c; 习题十二(第12章)14种状态:新建、运行、中断和死亡。2有4种原因的中断:(1)JVM将CPU资源从当前线程切换给其他线程,使本线程让出CPU的使用权处于中断状态。(2)线程使用CPU资源期间,执行了sleep(int millsecond)方法,使当前线程进入休眠状态。(3)线程使用CPU资源期间,执
21、行了wait()方法,使得当前线程进入等待状态。(4)线程使用CPU资源期间,执行某个操作进入阻塞状态,比如执行读/写操作引起阻塞。3死亡状态,不能再调用start()方法。4新建和死亡状态。5两种方法:用Thread类或其子类。6使用setPrority(int grade)方法。7Java使我们可以创建多个线程,在处理多线程问题时,我们必须注意这样一个问题:当两个或多个线程同时访问同一个变量,并且一个线程需要修改这个变量。我们应对这样的问题作出处理,否则可能发生混乱。8当一个线程使用的同步方法中用到某个变量,而此变量又需要其它线程修改后才能符合本线程的需要,那么可以在同步方法中使用wait
22、()方法。使用wait方法可以中断方法的执行,使本线程等待,暂时让出CPU的使用权,并允许其它线程使用这个同步方法。其它线程如果在使用这个同步方法时不需要等待,那么它使用完这个同步方法的同时,应当用notifyAll()方法通知所有的由于使用这个同步方法而处于等待的线程结束等待。9不合理。10“吵醒”休眠的线程。一个占有CPU资源的线程可以让休眠的线程调用interrupt 方法“吵醒”自己,即导致休眠的线程发生InterruptedException异常,从而结束休眠,重新排队等待CPU资源。11. public class E public static void main(String
23、args) Cinema a=new Cinema(); class TicketSeller public class E public static void main(String args) ClassRoom room6501 = new ClassRoom(); try (1000); catch(Exception exp) class ClassRoom implements Runnable Thread student1,student2,teacher; ClassRoom() teacher = new Thread(this); student1 = new Thread(this); student2 = new Thread(this); (王教授); (张三); (李四); public void run() if()=student1) (1000*60*10); catch(InterruptedException e) (); public class E public static void main(String args) JoinWork work=new Jo
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1