JAVA大学实用教程 第四版 课后习题答案
- 格式:pdf
- 大小:773.73 KB
- 文档页数:19
Java2实用教程(第4版)答案耿祥义、张跃平第1章一、问答题1.James Gosling2.需3个步骤:1)用文本编辑器编写源文件。
2)使用javac编译源文件,得到字节码文件。
3)使用解释器运行程序。
3.由类所构成,应用程序必须有一个类含有public static void main(String args[])方法,含有该方法的类称为应用程序的主类。
不一定,但最多有一个public类。
4.set classpath=D:\jdk\jre\lib\rt.jar;.;5.java和class6. java Bird7.独行风格(大括号独占行)和行尾风格(左大扩号在上一行行尾,右大括号独占行)二、选择题1.B。
2.D。
三、阅读程序1.(a)Person.java。
(b)两个字节码,分别是Person.class和Xiti.class。
(c)得到“NoSuchMethodError”,得到“NoClassDefFoundError: Xiti/class”,得到“您好,很高兴认识您nice to meet you”第2章一、问答题1.用来标识类名、变量名、方法名、类型名、数组名、文件名的有效字符序列称为标识符。
标识符由字母、下划线、美元符号和数字组成,第一个字符不能是数字。
false不是标识符。
2.关键字就是Java语言中已经被赋予特定意义的一些单词,不可以把关键字作为名字来用。
不是关键字。
class implements interface enum extends abstract。
3.boolean,char,byte,short,int,long,float,double。
4.float常量必须用F或f为后缀。
double常量用D或d为后缀,但允许省略后缀。
5.一维数组名.length。
二维数组名.length。
二、选择题1.C。
2.ADF。
3.B。
4.BE。
5.【代码2】【代码3】【代码4】【代码5】。
Java作业4(第九章---第十三章)第九章3.1.1程序代码import java.awt.*;import javax.swing.event.*;import javax.swing.*;import java.awt.event.*;public class kehou31 {public static void main(String args[]) {Computer fr=new Computer();}}class Computer extends JFrame implements DocumentListener { JTextArea text1,text2;int count=1;double sum=0,aver=0;Computer() {setLayout(new FlowLayout());text1=new JTextArea(6,20);text2=new JTextArea(6,20);add(new JScrollPane(text1));add(new JScrollPane(text2));text2.setEditable(false);(text1.getDocument()).addDocumentListener(this);setSize(300,320);setVisible(true);validate();setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);}public void changedUpdate(DocumentEvent e) {String s=text1.getText();String []a =s.split("[^0123456789.]+");sum=0;aver=0;for(int i=0;i<a.length;i++) {try { sum=sum+Double.parseDouble(a[i]);}catch(Exception ee) {}}count=a.length;aver=sum/count;text2.setText(null);text2.append("\n和:"+sum);text2.append("\n平均值:"+aver);}public void removeUpdate(DocumentEvent e){changedUpdate(e); }public void insertUpdate(DocumentEvent e){changedUpdate(e);}}3.1.2 运行界面3.2.1程序代码import java.awt.*;import javax.swing.event.*;import javax.swing.*;import java.awt.event.*;public class kehou932 {public static void main(String args[]) {ComputerFrame fr=new ComputerFrame();fr.setBounds(100,100,650,120);fr.setTitle("多功能计算器");fr.setBackground(Color.blue);}}class ComputerFrame extends JFrame implements ActionListener {JTextField text1,text2,text3;JButton buttonAdd,buttonSub,buttonMul,buttonDiv;JLabel label;public ComputerFrame() {setLayout(new FlowLayout());text1=new JTextField(10);text2=new JTextField(10);text3=new JTextField(10);label=new JLabel(" ",JLabel.CENTER);label.setBackground(Color.green);add(text1);add(label);add(text2);add(text3);buttonAdd=new JButton("加");buttonSub=new JButton("减");buttonMul=new JButton("乘");buttonDiv=new JButton("除");add(buttonAdd);add(buttonSub);add(buttonMul);add(buttonDiv);buttonAdd.addActionListener(this);buttonSub.addActionListener(this);buttonMul.addActionListener(this);buttonDiv.addActionListener(this);setSize(300,320);setVisible(true);validate();setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE); }public void actionPerformed(ActionEvent e) {double n;if(e.getSource()==buttonAdd) {double n1,n2;try{ n1=Double.parseDouble(text1.getText()); n2=Double.parseDouble(text2.getText()); n=n1+n2;text3.setText(String.valueOf(n));label.setText("+");}catch(NumberFormatException ee){ text3.setText("请输入数字字符");}}else if(e.getSource()==buttonSub) {double n1,n2;try{ n1=Double.parseDouble(text1.getText()); n2=Double.parseDouble(text2.getText()); n=n1-n2;text3.setText(String.valueOf(n));label.setText("-");}catch(NumberFormatException ee){ text3.setText("请输入数字字符");}}else if(e.getSource()==buttonMul){double n1,n2;try{ n1=Double.parseDouble(text1.getText()); n2=Double.parseDouble(text2.getText()); n=n1*n2;text3.setText(String.valueOf(n));label.setText("*");}catch(NumberFormatException ee){ text3.setText("请输入数字字符");}}else if(e.getSource()==buttonDiv){double n1,n2;try{ n1=Double.parseDouble(text1.getText()); n2=Double.parseDouble(text2.getText()); n=n1/n2;text3.setText(String.valueOf(n));label.setText("/");}catch(NumberFormatException ee){ text3.setText("请输入数字字符");}}validate();}}3.2.2运行界面3.3.1 程序代码import java.awt.*;import java.awt.event.*;import javax.swing.*;public class kehou933 {public static void main(String args[]){Window win = new Window();win.setTitle("使用MVC结构");win.setBounds(100,100,420,260);}}class Window extends JFrame implements ActionListener { Lader lader; //模型JTextField textAbove,textBottom,textHeight; //视图 JTextArea showArea; //视图JButton controlButton; //控制器Window() {init();setVisible(true);setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);}void init() {lader = new Lader();textAbove = new JTextField(5);textBottom = new JTextField(5);textHeight = new JTextField(5);showArea = new JTextArea();controlButton=new JButton("计算面积");JPanel pNorth=new JPanel();pNorth.add(new JLabel("上底:"));pNorth.add(textAbove);pNorth.add(new JLabel("下底:"));pNorth.add(textBottom);pNorth.add(new JLabel("高:"));pNorth.add(textHeight);pNorth.add(controlButton);controlButton.addActionListener(this);add(pNorth,BorderLayout.NORTH);add(new JScrollPane(showArea),BorderLayout.CENTER);}public void actionPerformed(ActionEvent e) {try{double above = Double.parseDouble(textAbove.getText().trim());double bottom = Double.parseDouble(textBottom.getText().trim());double height = Double.parseDouble(textHeight.getText().trim());lader.setAbove(above) ;lader.setBottom(bottom);lader.setHeight(height);double area = lader.getArea();showArea.append(" 梯形的面积:"+area+"\n");}catch(Exception ex) {showArea.append("\n"+ex+"\n");}}}class Lader {double above,bottom,height;public double getArea() {double area = (above+bottom)*height/2.0;return area;}public void setAbove(double a) {above = a;}public void setBottom(double b) {bottom = b;}public void setHeight(double c) {height = c; }}3.3.2运行界面第十章4.1.1程序代码import java.io.*;public class E {public static void main(String args[]) {File f=new File("E.java");;try{ RandomAccessFile random=new RandomAccessFile(f,"rw");random.seek(0);long m=random.length();while(m>=0) {m=m-1;random.seek(m);int c=random.readByte();if(c<=255&&c>=0)System.out.print((char)c);else {m=m-1;random.seek(m);byte cc[]=new byte[2];random.readFully(cc);System.out.print(new String(cc));} }}catch(Exception exp){} }}4.1.2运行界面4.2.1程序代码import java.io.*;public class E {public static void main(String args[ ]) {File file=new File("E.java");File tempFile=new File("temp.txt");try{ FileReader inOne=new FileReader(file);BufferedReader inTwo= new BufferedReader(inOne);FileWriter tofile=new FileWriter(tempFile);BufferedWriter out= new BufferedWriter(tofile);String s=null;int i=0;s=inTwo.readLine();while(s!=null) {i++;out.write(i+" "+s);out.newLine();s=inTwo.readLine();}inOne.close();inTwo.close();out.flush();out.close();tofile.close();}catch(IOException e){}}}4.3.1程序代码import java.io.*;import java.util.*;public class kehou1043 {public static void main(String args[]) {File file = new File("a.txt");Scanner sc = null;double sum=0;int count = 0;try { sc = new Scanner(file);eDelimiter("[^0123456789.]+");while(sc.hasNext()){try{ double price = sc.nextDouble(); count++;sum = sum+price;System.out.println(price);}catch(InputMismatchException exp){String t = sc.next();}}System.out.println("平均价格:"+sum/count); }catch(Exception exp){System.out.println(exp);}}}4.3.2运行界面第十一章2.1.1程序代码import java.sql.*;import java.util.*;public class kehou1121 {public static void main(String args[]) {Query query=new Query();String dataSource="myData";String tableName="goods";Scanner read=new Scanner(System.in);System.out.print("输入数据源名:");dataSource = read.nextLine();System.out.print("输入表名:");tableName = read.nextLine();query.setDatasourceName(dataSource);query.setTableName(tableName);query.setSQL("SELECT * FROM "+tableName);query.inputQueryResult();}}class Query {String datasourceName=""; //数据源名String tableName=""; //表名String SQL; //SQL语句public Query() {try{ Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); }catch(ClassNotFoundException e) {System.out.print(e);}}public void setDatasourceName(String s) {datasourceName = s.trim();}public void setTableName(String s) {tableName = s.trim();}public void setSQL(String SQL) {this.SQL = SQL.trim();}public void inputQueryResult() {Connection con;Statement sql;ResultSet rs;try {String uri = "jdbc:odbc:"+datasourceName;String id = "";String password = "";con = DriverManager.getConnection(uri,id,password);DatabaseMetaData metadata = con.getMetaData();ResultSet rs1 = metadata.getColumns(null,null,tableName,null);int字段个数 = 0;while(rs1.next()) {字段个数++;}sql = con.createStatement();//创建SQL语句rs = sql.executeQuery(SQL);//执行SQL语句while(rs.next()) {for(int k=1;k<=字段个数;k++) {System.out.print(" "+rs.getString(k)+" ");}System.out.println("");}con.close();}catch(SQLException e) {System.out.println("请输入正确的表名"+e);}}}2.1.2运行界面2.2.1程序代码import java.sql.*;import java.util.*;public class kehou1122 {public static void main(String args[]) {Q query = new Q();String dataSource = "myData";String tableName = "goods";query.setDatasourceName(dataSource);query.setTableName(tableName);String name = "";Scanner read=new Scanner(System.in);System.out.print("商品名:");name = read.nextLine();String str="'%["+name+"]%'";String SQL = "SELECT * FROM "+tableName+" WHERE name LIKE "+str; query.setSQL(SQL);System.out.println(tableName+"表中商品名是"+name+"的记录");query.inputQueryResult();}}class Q {String datasourceName=""; //数据源名String tableName=""; //表名String SQL; //SQL语句public Q() {try{ Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");}catch(ClassNotFoundException e) {System.out.print(e);}}public void setDatasourceName(String s) {datasourceName = s.trim();}public void setTableName(String s) {tableName = s.trim();}public void setSQL(String SQL) {this.SQL = SQL.trim();}public void inputQueryResult() {Connection con;Statement sql;ResultSet rs;try {String uri = "jdbc:odbc:"+datasourceName;String id = "";String password = "";con = DriverManager.getConnection(uri,id,password);DatabaseMetaData metadata = con.getMetaData();ResultSet rs1 = metadata.getColumns(null,null,tableName,null);int字段个数 = 0;while(rs1.next()) {字段个数++;}sql = con.createStatement();rs = sql.executeQuery(SQL);while(rs.next()) {for(int k=1;k<=字段个数;k++) {System.out.print(" "+rs.getString(k)+" ");}System.out.println("");}con.close();}catch(SQLException e) {System.out.println("请输入正确的表名"+e);}}}2.2.2运行界面2.3.1程序代码import java.sql.*;import java.util.*;public class kehou1123 {public static void main(String args[]) {Q1 query = new Q1();String dataSource = "myData";String tableName = "goods";query.setDatasourceName(dataSource);query.setTableName(tableName);String SQL = "SELECT * FROM "+tableName+" ORDER BY madeTime";query.setSQL(SQL);System.out.println(tableName+"表记录按商品生产日期前后排序是: "); query.inputQueryResult();}}class Q1 {String datasourceName=""; //数据源名String tableName=""; //表名String SQL; //SQL语句public Q1() {try{ Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");}catch(ClassNotFoundException e) {System.out.print(e);}}public void setDatasourceName(String s) {datasourceName = s.trim();}public void setTableName(String s) {tableName = s.trim();}public void setSQL(String SQL) {this.SQL = SQL.trim();}public void inputQueryResult() {Connection con;Statement sql;ResultSet rs;try {String uri = "jdbc:odbc:"+datasourceName;String id = "";String password = "";con = DriverManager.getConnection(uri,id,password);DatabaseMetaData metadata = con.getMetaData();ResultSet rs1 = metadata.getColumns(null,null,tableName,null);int字段个数 = 0;while(rs1.next()) {字段个数++;}sql = con.createStatement();rs = sql.executeQuery(SQL);while(rs.next()) {for(int k=1;k<=字段个数;k++) {System.out.print(" "+rs.getString(k)+" ");}System.out.println("");}con.close();}catch(SQLException e) {System.out.println("请输入正确的表名"+e);}}}2.3.2运行界面第十二章4.1.1程序代码public class kehou1241{public static void main(String args[]) {Cinema a=new Cinema();a.zhang.start();a.sun.start();a.zhao.start();}}class TicketSeller //负责卖票的类。
习题解答习题一(第1章)一、问答题1.James Gosling2.需3个步骤:1)用文本编辑器编写源文件。
2)使用javac编译源文件,得到字节码文件。
3)使用解释器运行程序。
3.由类所构成,应用程序必须有一个类含有public static void main(String args[])方法,含有该方法的类称为应用程序的主类。
不一定,但最多有一个public类。
4.set classpath=D:\jdk\jre\lib\rt.jar;.;5.java和class6. java Bird7.独行风格(大括号独占行)和行尾风格(左大扩号在上一行行尾,右大括号独占行)二、选择题1.B。
2.D。
三、阅读程序1.(a)Person.java。
(b)两个字节码,分别是Person.class和Xiti.class。
(c)得到“NoSuchMethodError”,得到“NoClassDefFoundError: Xiti/class”,得到“您好,很高兴认识您nice to meet you”习题二(第2章)一、问答题1.用来标识类名、变量名、方法名、类型名、数组名、文件名的有效字符序列称为标识符。
标识符由字母、下划线、美元符号和数字组成,第一个字符不能是数字。
false不是标识符。
2.关键字就是Java语言中已经被赋予特定意义的一些单词,不可以把关键字作为名字来用。
不是关键字。
class implements interface enum extends abstract。
3.boolean,char,byte,short,int,long,float,double。
4.float常量必须用F或f为后缀。
double常量用D或d为后缀,但允许省略后缀。
5.一维数组名.length。
二维数组名.length。
二、选择题1.C。
2.ADF。
3.B。
4.BE。
5.【代码2】【代码3】【代码4】【代码5】。
Java程序设计实用教程(第4版)习题解答及实验指导叶核亚编著2019年11月目录“Java程序设计”课程教学要求 (1)第1章 Java概述 (4)第2章 Java语言基础 (6)第3章类的封装、继承和多态 (28)第4章接口、内部类和 Java API基础 (47)第5章异常处理 (53)第6章图形用户界面 (56)第7章多线程 (62)第8章输入/输出流和文件操作 (65)“Java程序设计”课程教学要求1. 课程性质、目的和任务程序设计是高等学校计算机学科及电子信息学科各专业本科的核心专业基础课程,是培养学生软件设计能力的重要课程。
在计算机学科的本科教学中,起着非常重要的作用。
“Java程序设计”是计算机科学及技术专业本科的专业基础限选课,开设本课程的目的是:进行程序设计和面向对象方法的基础训练;使用Java编程技术,设计解决操作系统、网络通信、数据库等多种实际问题的应用程序。
本课程通过全面、系统地介绍Java语言的基础知识、运行机制、多种编程方法和技术,使学生理解和掌握面向对象的程序设计方法,理解和掌握网络程序的特点和设计方法,建立起牢固扎实的理论基础,培养综合应用程序的设计能力。
本课程的先修课程包括:C/C++程序设计I、C/C++程序设计II、数据结构、操作系统、计算机网络、数据库原理等。
2. 教学基本要求本课程的基本要求如下。
①了解Java语言特点,理解Java Application应用程序的运行原理和方法。
掌握在JDK环境中编译和运行程序的操作,熟悉在MyEclipse集成开发环境中,编辑、编译、运行和调试程序的操作。
②掌握Java语言中语句、数组、引用类型等基本语法成分的使用方法,通过类、接口、内嵌类型、包、异常处理等机制表达和实现面向对象程序设计思想。
③掌握Java的多种实用技术,包括图形用户界面、多线程、文件操作和流、使用URL和Socket进行网络通信等。
④熟悉Java JDBC数据库应用的设计方法。
习题解答习题一(第1章)一、问答题1.James Gosling2.需3个步骤:1)用文本编辑器编写源文件。
2)使用javac编译源文件,得到字节码文件。
3)使用解释器运行程序。
3.由类所构成,应用程序必须有一个类含有public static void main(String args[])方法,含有该方法的类称为应用程序的主类。
不一定,但最多有一个public类。
4.set classpath=D:\jdk\jre\lib\rt.jar;.;5.java和class6. java Bird7.独行风格(大括号独占行)和行尾风格(左大扩号在上一行行尾,右大括号独占行)二、选择题1.B。
2.D。
三、阅读程序1.(a)Person.java。
(b)两个字节码,分别是Person.class和Xiti.class。
(c)得到“NoSuchMethodError”,得到“NoClassDefFoundError: Xiti/class”,得到“您好,很高兴认识您nice to meet you”习题二(第2章)一、问答题1.用来标识类名、变量名、方法名、类型名、数组名、文件名的有效字符序列称为标识符。
标识符由字母、下划线、美元符号和数字组成,第一个字符不能是数字。
false不是标识符。
2.关键字就是Java语言中已经被赋予特定意义的一些单词,不可以把关键字作为名字来用。
不是关键字。
class implements interface enum extends abstract。
3.boolean,char,byte,short,int,long,float,double。
4.float常量必须用F或f为后缀。
double常量用D或d为后缀,但允许省略后缀。
5.一维数组名.length。
二维数组名.length。
二、选择题1.C。
2.ADF。
3.B。
4.BE。
5.【代码2】【代码3】【代码4】【代码5】。
Java大学实用教程课后答案第一章1.发明java的原因是什么,发明java的主要贡献者是谁?答:开发java语言的动力源于对独立平台的需要,即用这种语言编写的程序不会因为芯片的变化而发生无法运行或出现运行错误的情况。
当时,c语言已无法满足人们的这一愿望,因为c语言总是针对特定的芯片将源程序编译成机器码,该机器码的运行就与特定的芯片指令有关,在其他类型的芯片上可能无法运行或者运行出错。
主要贡献者是James Gosling。
2.“java编译器将源文件编译生成的字节码是机器码”,这句话正确吗?答:不正确,字节码是很接近机器码的二进制文件,不能被机器直接识别。
3. java应用程序的主类必须含有怎么样的方法?4. "java应用程序必须有一个类是public类".这句话正确吗?答:一个java应用程序必须有一个类含有public static void main(String args[] )方法,称为该应用程序的主类。
5. "java applet程序的主类必须是public类",这句话正确吗?不正确"java applet源文件的主类必须是public类",这句话正确吗?正确6. 叙述java源文件的命名法则。
答:(1)如果源文件中有多个类,那么只能有一个类是public类。
(2)如果有一个类是public类,那么源文件的名字必须和这个类的名字完全相同,扩展名为.java(3)如果源文件没有public类,那么源文件的名字只要和某个类的名字相同,并且扩展名为.java就可以了。
(4)java 语言区分大小写。
7. 源文件生成的的字节码运行时加载到内存中吗?8. 怎样编写加载运行java applet的简单网页?9. JDK1.6编译器使用"-source"参数的作用是什么,其默认的参数取值是什么?答:在编译源文件时使用"-source"参数来约定字节码适合的java 平台。
习题解答习题一(第1章)一、问答题1.James Gosling2.需3个步骤:1)用文本编辑器编写源文件。
2)使用javac编译源文件,得到字节码文件。
3)使用解释器运行程序。
3.由类所构成,应用程序必须有一个类含有public static void main(String args[])方法,含有该方法的类称为应用程序的主类。
不一定,但最多有一个public类。
4.set classpath=D:\jdk\jre\lib\rt.jar;.;5.java和class6. java Bird7.独行风格(大括号独占行)和行尾风格(左大扩号在上一行行尾,右大括号独占行)二、选择题1.B。
2.D。
三、阅读程序1.(a)Person.java。
(b)两个字节码,分别是Person.class和Xiti.class。
(c)得到“NoSuchMethodError”,得到“NoClassDefFoundError: Xiti/class”,得到“您好,很高兴认识您nice to meet you”习题二(第2章)一、问答题1.用来标识类名、变量名、方法名、类型名、数组名、文件名的有效字符序列称为标识符。
标识符由字母、下划线、美元符号和数字组成,第一个字符不能是数字。
false不是标识符。
2.关键字就是Java语言中已经被赋予特定意义的一些单词,不可以把关键字作为名字来用。
不是关键字。
class implements interface enum extends abstract。
3.boolean,char,byte,short,int,long,float,double。
4.float常量必须用F或f为后缀。
double常量用D或d为后缀,但允许省略后缀。
5.一维数组名.length。
二维数组名.length。
二、选择题1.C。
2.ADF。
3.B。
4.BE。
5.【代码2】【代码3】【代码4】【代码5】。
《JA V A实用教程》作业2 第四章习题4.1程序代码(1)CPU.javapublic class CPU {int speed;void setSpeed(int m){this.speed=m;}int getSpeed(){return this.speed;}}(2)HardDisk.javapublic class HardDisk {int amount;void setAmount(int a){this.amount=a;}int getAmount(){return this.amount;}}(3)pc.javapublic class PC {CPU cpu;HardDisk HD;void setCPU(CPU x){cpu=x;}void setHardDisk(HardDisk h){HD=h;}void show(){System.out.print("CPU的速度是:");System.out.println(" "+this.cpu.getSpeed());System.out.print("硬盘的大小是:");System.out.println(" "+this.HD.getAmount()); }}(4)TEST.javapublic class TEST {public static void main(String[] args) { CPU c=new CPU();c.setSpeed(2200);HardDisk disk=new HardDisk();disk.setAmount(200);PC pc=new PC();pc.setCPU(c);pc.setHardDisk(disk);pc.show();}}4.2 运行界面第五章习题5.1程序代码(1)package模拟器;public class Animal {void cry(){};String getAnimalName() {return null;}}(2)package模拟器;public class Simulator {Animal ani;void playSound(Animal x){x.cry();System.out.println("这是"+x.getAnimalName()+"的叫声!"); }}(3)package模拟器;public class Dog extends Animal {void cry(){System.out.println("汪汪汪!");};String getAnimalName(){return ("Dog");};}(4)package模拟器;public class Cat extends Animal {void cry(){System.out.println("喵喵喵!");};String getAnimalName(){return ("Cat");};}(5)package模拟器;public class Application {public static void main(String[] args) {Simulator s=new Simulator();s.playSound(new Dog());s.playSound(new Cat());}}5.2运行结果第六章习题6.1程序代码(1)package模拟器;public class Animal {void cry(){};String getAnimalName() {return null;}}(2)package模拟器;public class Simulator {Animal ani;void playSound(Animal x){x.cry();System.out.println("这是"+x.getAnimalName()+"的叫声!"); }}(3)package模拟器;public class Dog extends Animal {void cry(){System.out.println("汪汪汪!");};String getAnimalName(){return ("Dog");};}(4)package模拟器;public class Cat extends Animal {void cry(){System.out.println("喵喵喵!");};String getAnimalName(){return ("Cat");};}(5)package模拟器;public class Application {public static void main(String[] args) {Simulator s=new Simulator();s.playSound(new Dog());s.playSound(new Cat());}}6.2运行结果。
最新精选全文完整版(可编辑修改)Java编程思想(第四版)习题答案第二章练习1:public class PrimitiveTest {static int i;static char c; 精选全文,可以编辑修改文字!public static void main(String[] args) {System.out.println("int = " + i);System.out.println("char = " + c);}}练习2:public class HelloWorld {public static void main(String[] args) {System.out.println("Hello World!");}}练习3:public class ATNTest {public static void main(String[] args) {class ATypeName {int i;double d;boolean b;void show() {System.out.println(i);System.out.println(d);System.out.println(b);}}A TypeName a = new ATypeName();a.i = 3;a.d = 2.71828;a.b = false;a.show();}}练习4:public class DataOnlyTest {public static void main(String[] args) {class DataOnly {int i;double d;boolean b;void show() {System.out.println(i);System.out.println(d);System.out.println(b);}}DataOnly data = new DataOnly();data.i = 3;data.d = 2.71828;data.b = false;data.show();}}练习5:public class DOTest2 {public static void main(String[] args) {class DataOnly {int i;double d;boolean b;void show() {System.out.println(i);System.out.println(d);System.out.println(b);}}DataOnly data = new DataOnly();data.i = 234;data.d = 2.1234545;data.b = true;data.show();}}练习6:public class StorageTest {public static void main(String[] args) {class StoreStuff {int storage(String s) {return s.length() * 2;}}StoreStuff x = new StoreStuff();System.out.println(x.storage("hi"));}}练习7:class StaticTest {static int i = 47;}class Incrementable {static void increment() { StaticTest.i++; }}public class ITest {public static void main(String[] args) {System.out.println("StaticTest.i= " + StaticTest.i);StaticTest st1 = new StaticTest();StaticTest st2 = new StaticTest();System.out.println("st1.i= " + st1.i);System.out.println("st2.i= " + st2.i);Incrementable sf = new Incrementable();sf.increment();System.out.println("After sf.increment() called: ");System.out.println("st1.i = " + st1.i);System.out.println("st2.i = " + st2.i);Incrementable.increment();System.out.println("After Incrementable.increment called: ");System.out.println("st1.i = " + st1.i);System.out.println("st2.i = " + st2.i);}}练习8:class StaticTest {static int i = 47;}class Incrementable {static void increment() { StaticTest.i++; }}public class OneStaticTest {public static void main(String[] args) {System.out.println("StaticTest.i= " + StaticTest.i);StaticTest st1 = new StaticTest();StaticTest st2 = new StaticTest();System.out.println("st1.i= " + st1.i);System.out.println("st2.i= " + st2.i);Incrementable.increment();System.out.println("After Incrementable.increment() called: ");System.out.println("st2.i = " + st2.i);Incrementable.increment();System.out.println("After Incrementable.increment called: ");System.out.println("st1.i = " + st1.i);System.out.println("st2.i = " + st2.i);st1.i = 3;System.out.println("After st1.i = 3, ");System.out.println("st1.i = " + st1.i);System.out.println("st2.i = " + st2.i);System.out.println("Create another StaticTest, st3.");StaticTest st3 = new StaticTest();System.out.println("st3.i = " + st3.i);}}练习9:public class AutoboxTest {public static void main(String[] args) {boolean b = false;char c = 'x';byte t = 8;short s = 16;int i = 32;long l = 64;float f = 0.32f;double d = 0.64;Boolean B = b;System.out.println("boolean b = " + b);System.out.println("Boolean B = " + B);Character C = c;System.out.println("char c = " + c);System.out.println("Character C = " + C);Byte T = t;System.out.println("byte t = " + t);System.out.println("Byte T = " + T);Short S = s;System.out.println("short s = " + s);System.out.println("Short S = " + S);Integer I = i;System.out.println("int i = " + i);System.out.println("Integer I = " + I);Long L = l;System.out.println("long l = " + l);System.out.println("Long L = " + L);Float F = f;System.out.println("Float F = " + F);Double D = d;System.out.println("double d = " + d);System.out.println("Double D = " + D);}}练习10:public class CommandArgTest {public static void main(String[] args) {int[]args1={1,2,3};System.out.println("args[0] = " + args1[0]);System.out.println("args[1] = " + args1[1]);System.out.println("args[2] = " + args1[2]);}}练习11:public class Rainbow {public static void main(String[] args) {AllTheColorsOfTheRainbow atc = new AllTheColorsOfTheRainbow();System.out.println("atc.anIntegerRepresentingColors = " + atc.anIntegerRepresentingColors);atc.changeColor(7);atc.changeTheHueOfTheColor(77);System.out.println("After color change, atc.anIntegerRepresentingColors = " + atc.anIntegerRepresentingColors);System.out.println("atc.hue = " + atc.hue);}}class AllTheColorsOfTheRainbow {int anIntegerRepresentingColors = 0;int hue = 0;void changeTheHueOfTheColor(int newHue) {hue = newHue;}int changeColor(int newColor) {return anIntegerRepresentingColors = newColor;}}练习12:public class DocTest {/** Entry poing to class & application.* @param args array of string arguments* @throws exceptions No exceptions thrown*/public static void main(String[] args) {System.out.println(new Date());}}练习13-1:public class Documentation1 {/** A field comment */public int i;/** A method comment */public void f() {}}2:public class Documentation2 {Date d = new Date();void showDate() {System.out.println("Date = " + d);}}3:public class Documentation3 {public static void main(String[] args) {Date d = new Date();System.out.println("d = " + d);}}练习14:public class Documentation4 {public int i = 2;private int j = 3;public static void main(String[] args) {Date d = new Date();System.out.println("d = " + d);}}练习15:public class HelloDocTest {public static void main(String[] args) {System.out.println("Hello World!");}}练习16:class Tree {int height;Tree() {System.out.println("Planting a seedling");height = 0;}Tree(int initialHeight) {height = initialHeight;System.out.println("Creating new tree that is " + height + " feet tall");}void info() {System.out.println("Tree is " + height + " feet tall");}void info(String s) {System.out.println(s + ": Tree is " + height + " feet tall");}}public class Overloading {public static void main(String[] args) {for(int i = 0; i < 5; i++) {Tree t = new Tree(i);();("overloading method");}// Overloaded constructor:new Tree();}}第三章练习1:public class PrintTest {public static void main(String[] args) {print("Hello, from short form.");P.rintln("Hello from greggordon form.");System.out.println("Hello from long form.");}}练习2:class Tube {float level;}public class Assign {public static void main(String[] args) {Tube t1 = new Tube();Tube t2 = new Tube();t1.level = 0.9f;t2.level = 0.47f;P.rintln("1: t1.level: " + t1.level + ", t2.level: " + t2.level);t1 = t2;P.rintln("2: t1.level: " + t1.level + ", t2.level: " + t2.level);t1.level = 0.27f;P.rintln("3: t1.level: " + t1.level + ", t2.level: " + t2.level);}}练习3:class Box {float a;}public class PassObject2 {static void f(Box y) {y.a = 2.71828f;}public static void main(String[] args) {Box x = new Box();x.a = 3.1416f;print("1: x.a = " + x.a);f(x);print("2: x.a = " + x.a);}}练习4:class VelocityCalculator {static float velocity (float d, float t) {if(t == 0) return 0f;else return d/t;}}public class VelocityTester {public static void main(String[] args) {float d = 565.3f;float t = 3.6f;System.out.println("Distance: " + d);System.out.println("Time: " + t);float v = VelocityCalculator.velocity(d, t);System.out.println("Velocity: " + v);}}练习5:class Dog {String name;String says;void setName(String n) {name = n;}void setSays(String s) {says = s;}void showName() {P.rintln(name);}void speak() {P.rintln(says);}}public class DogTest {public static void main(String[] args) {Dog spot = new Dog();spot.setName("Spot");spot.setSays("Ruff!");Dog scruffy = new Dog();scruffy.setName("Scruffy");scruffy.setSays("Wurf!");spot.showName();spot.speak();scruffy.showName();scruffy.speak();}}练习6:class Dog {String name;String says;void setName(String n) {name = n;}void setSays(String s) {says = s;}void showName() {P.rintln(name);}void speak() {P.rintln(says);}}public class DogCompare {public static void main(String[] args) {Dog spot = new Dog();spot.setName("Spot");spot.setSays("Ruff!");Dog scruffy = new Dog();scruffy.setName("Scruffy");scruffy.setSays("Wurf!");spot.showName();spot.speak();scruffy.showName();scruffy.speak();Dog butch = new Dog();butch.setName("Butch");butch.setSays("Hello!");butch.showName();butch.speak();P.rintln("Comparison: ");P.rintln("spot == butch: " + (spot == butch));P.rintln("spot.equals(butch): " + spot.equals(butch));P.rintln("butch.equals(spot): " + butch.equals(spot));P.rintln("Now assign: spot = butch");spot = butch;P.rintln("Compare again: ");P.rintln("spot == butch: " + (spot == butch));P.rintln("spot.equals(butch): " + spot.equals(butch));P.rintln("butch.equals(spot): " + butch.equals(spot));P.rintln("Spot: ");spot.showName();spot.speak();P.rintln("Butch: ");butch.showName();butch.speak();}}练习7:总之,在这一学年中,我不仅在业务能力上,还是在教育教学上都有了一定的提高。
第一章Java语言概述2.“java编译器将源文件编译为的字节码文件是机器码”这句话正确吗?答:不正确3.java应用程序的主类必须含有怎样的方法?答:含有main方法4。
“java应用程序必须有一个类是public类”这句话正确吗?答;不正确,只能有一个public类5。
“java Applet程序的主类必须是public类”这句话正确吗?答:正确,因为java Applet主类必须是Applet类的子类并且是public的类6。
请叙述java源程序的命名规则。
答:与public的类同名。
7。
源文件生成的字节码文件在运行时都加载到内存中吗?答:非也,动态随需要运行才加载。
8.面向对象的程序设计语言有那些基本特征?答:封装;继承;多态性。
9.在Java程序中有多个类文件时,用Java命令应该运行那个类?答:具有main方法的类第二章基本数据类型和数组4。
下列哪些语句是错的?Int x=120;Byte b=120;b=x;答:B=x;错应为b=(byte)x5。
下列哪些语句是错的?答:y=d;错,应y=(float)d6。
下列两个语句是等价的吗?Char x=97;Char x=‘a’;答:是等价的。
7。
下列system.out.printf语句输出结果是什么?Int a=97;Byte b1=(byte)128;Byte b2=(byte)(-129);System.out.printf(“%c,%d,%d”,a,b1,b2);如果输出语句改为:System.out.printf(“%d,%d,%d”,a,b1,b2);输出什么?答:输出a ,-128,127修改后输出97,-128,1278.数组是基本数据类型吗?怎样获取数组的长度?答:不是基本数据类型,是复合数据类型。
可以通过:数组名.length的方法获得数组长度9。
假设有两个int类型数组:Int[] a=new int[10];Int[] b=new int[8];b=a;A[0]=100;B[0]的值一定是100吗?答;一定,因为a数组与b数组引用相同。
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第四版课后习题答案
Java第四版课后习题答案
在学习Java编程语言的过程中,课后习题是巩固知识、加深理解的重要环节。
本文将为大家提供Java第四版课后习题的答案,希望能够帮助大家更好地掌握Java编程语言。
第一章
1.1 什么是Java虚拟机?它的作用是什么?
Java虚拟机是Java程序的运行环境,它的作用是将Java字节码翻译成特定平台的机器码,从而实现跨平台的特性。
1.2 什么是Java应用程序?它的特点是什么?
Java应用程序是一种可以在Java虚拟机上运行的程序,它的特点是跨平台、面向对象、安全性高。
1.3 什么是Java开发工具包(JDK)?它包含哪些组件?
Java开发工具包是用于开发Java程序的工具集合,它包含Java编译器、Java 虚拟机、Java类库等组件。
第二章
2.1 什么是变量?Java中有哪些基本数据类型?
变量是用来存储数据的容器,Java中的基本数据类型包括整型、浮点型、字符型、布尔型。
2.2 什么是常量?Java中如何定义常量?
常量是不可改变的值,Java中可以使用关键字final来定义常量。
2.3 什么是运算符?Java中有哪些运算符?
运算符是用来进行数学运算或逻辑运算的符号,Java中包括算术运算符、关系运算符、逻辑运算符等。
通过对这些课后习题的答案的学习,相信大家对Java编程语言会有更深入的理解和掌握。
希望大家能够在学习的过程中不断积累知识,不断提升自己的编程能力。
Java2实用教程(第4版)答案耿祥义、张跃平第1章一、问答题1.James Gosling2.需3个步骤:1)用文本编辑器编写源文件。
2)使用javac编译源文件,得到字节码文件。
3)使用解释器运行程序。
3.由类所构成,应用程序必须有一个类含有public static void main(String args[])方法,含有该方法的类称为应用程序的主类。
不一定,但最多有一个public类。
4.set classpath=D:\jdk\jre\lib\rt.jar;.;5.java和class6. java Bird7.独行风格(大括号独占行)和行尾风格(左大扩号在上一行行尾,右大括号独占行)二、选择题1.B。
2.D。
三、阅读程序1.(a)Person.java。
(b)两个字节码,分别是Person.class和Xiti.class。
(c)得到“NoSuchMethodError”,得到“NoClassDefFoundError: Xiti/class”,得到“您好,很高兴认识您nice to meet you”第2章一、问答题1.用来标识类名、变量名、方法名、类型名、数组名、文件名的有效字符序列称为标识符。
标识符由字母、下划线、美元符号和数字组成,第一个字符不能是数字。
false不是标识符。
2.关键字就是Java语言中已经被赋予特定意义的一些单词,不可以把关键字作为名字来用。
不是关键字。
class implements interface enum extends abstract。
3.boolean,char,byte,short,int,long,float,double。
4.float常量必须用F或f为后缀。
double常量用D或d为后缀,但允许省略后缀。
5.一维数组名.length。
二维数组名.length。
二、选择题1.C。
2.ADF。
3.B。
4.BE。
5.【代码2】【代码3】【代码4】【代码5】。
JA V A 2实用教程习题解答习题一(第1章)一、问答题1.James Gosling2.需3个步骤:1)用文本编辑器编写源文件。
2)使用javac编译源文件,得到字节码文件。
3)使用解释器运行程序。
3.由类所构成,应用程序必须有一个类含有public static void main(String args[])方法,含有该方法的类称为应用程序的主类。
不一定,但最多有一个public类。
4.set classpath=D:\jdk\jre\lib\rt.jar;.;5.java和class6. java Bird7.独行风格(大括号独占行)和行尾风格(左大扩号在上一行行尾,右大括号独占行)二、选择题1.B。
2.D。
三、阅读程序1.(a)Person.java。
(b)两个字节码,分别是Person.class和Xiti.class。
(c)得到“NoSuchMethodError”,得到“NoClassDefFoundError: Xiti/class”,得到“您好,很高兴认识您nice to meet you”习题二(第2章)一、问答题1.用来标识类名、变量名、方法名、类型名、数组名、文件名的有效字符序列称为标识符。
标识符由字母、下划线、美元符号和数字组成,第一个字符不能是数字。
false不是标识符。
2.关键字就是Java语言中已经被赋予特定意义的一些单词,不可以把关键字作为名字来用。
不是关键字。
class implements interface enum extends abstract。
3.boolean,char,byte,short,int,long,float,double。
4.float常量必须用F或f为后缀。
double常量用D或d为后缀,但允许省略后缀。
5.一维数组名.length。
二维数组名.length。
二、选择题1.C。
2.ADF。
3.B。
4.BE。
5.【代码2】【代码3】【代码4】【代码5】。