JAVA语言与面向对象程序设计课后习题答案
- 格式:doc
- 大小:242.50 KB
- 文档页数:53
习题解答习题11.James Gosling2.需3个步骤:1)用文本编辑器编写源文件。
2)利用javac编译源文件,取得字节码文件。
3)利用说明器运行程序。
3.由类组成。
不是必需的。
4.path=D:\jdk\bin;set classpath=D:\jdk\jre\lib\rt.jar;.;5.B6. Java源文件的扩展名是.java,Java字节码的扩展名是.class。
7.D。
8.A:Speak.java。
B:两个字节码文件,Speak.class和Xiti8.class。
C:java Xiti8。
D:执行java Speak的错误提示Exception in thread "main" ng.NoSuchMethodError: main 执行java xiti8取得的错误提示Exception in thread "main" ng.NoClassDefFoundError: xiti8 (wrong name: Xiti8) 执行java Xiti8.class取得的错误提示Exception in thread "main" ng.NoClassDefFoundError: Xiti8/class执行java Xiti8取得的输出结果I'm glad to meet you(4)9.属于操作题,解答略。
习题21. D2.【代码1】【代码2】错误//【代码3】更正为float z=6.89F;3.float型常量后面必需要有后缀“f”或“F”。
关于double常量,后面能够有后缀“d”或“D”,但许诺省略该后缀。
4.public class Xiti4{public static void main (String args[ ]){char ch1='你',ch2='我',ch3='他';System.out.println("\""+ch1+"\"的位置:"+(int)ch1);System.out.println("\""+ch2+"\"的位置:"+(int)ch2);System.out.println("\""+ch3+"\"的位置:"+(int)ch3);}}5.数组名字.length6.数组名字.length7.【代码1】A,65【代码2】-127【代码3】123456.783,123456.783128.【代码1】false【代码2】true【代码3】false【代码4】3【代码5】4.4【代码6】8.8习题31.输出110if-else语句书写的不够标准,复合语句缺少大括号“{}”,代码不够清楚。
Java面向对象程序设计(编着耿祥义张跃平)习题11.James Gosling2.(1)使用一个文本编辑器编写源文件。
(2)使用Java编译器(javac.exe)编译Java源程序,得到字节码文件。
(3)使用Java解释器(java.exe)运行Java程序3.Java的源文件是由若干个书写形式互相独立的类组成的。
应用程序中可以没有public类,若有的话至多可以有一个public类。
4.系统环境path D\jdk\bin;系统环境classpath D\jdk\jre\lib\rt.jar;.;5. B6. Java源文件的扩展名是.java。
Java字节码的扩展名是.class。
7. D8.(1)Speak.java(2)生成两个字节码文件,这些字节码文件的名字Speak.class 和 Xiti8.class(3)java Xiti8(4)执行java Speak的错误提示Exception in thread "main" ng.NoSuchMethodError: main执行java xiti8得到的错误提示Exception in thread "main" ng.NoClassDefFoundError: xiti8 (wrong name: Xiti8)执行java Xiti8.class得到的错误提示Exception in thread "main" ng.NoClassDefFoundError: Xiti8/class执行java Xiti8得到的输出结果I'm glad to meet you9.属于操作题,解答略。
习题21. D2.【代码1】【代码2】错误 //【代码3】更正为 float z=6.89F;3.float型常量后面必须要有后缀“f”或“F”。
对于double常量,后面可以有后缀“d”或“D”,但允许省略该后缀。
java面向对象程序设计习题答案Java面向对象程序设计习题答案习题一:定义一个类问题描述:定义一个名为`Person`的类,包含姓名(name)、年龄(age)和性别(gender)属性,以及构造方法和相应的getters和setters方法。
答案:```javapublic class Person {private String name;private int age;private String gender;public Person(String name, int age, String gender) { = name;this.age = age;this.gender = gender;}public String getName() {return name;}public void setName(String name) { = name;}public int getAge() {return age;}public void setAge(int age) {this.age = age;}public String getGender() {return gender;}public void setGender(String gender) {this.gender = gender;}}```习题二:继承与多态问题描述:创建一个名为`Student`的类,继承自`Person`类,并添加一个名为`studentId`的属性。
重写`toString()`方法,以显示学生的详细信息。
答案:```javapublic class Student extends Person {private String studentId;public Student(String name, int age, String gender, String studentId) {super(name, age, gender);this.studentId = studentId;}public String getStudentId() {return studentId;}public void setStudentId(String studentId) {this.studentId = studentId;}@Overridepublic String toString() {return "Student{" +"name='" + getName() + '\'' +", age=" + getAge() +", gender='" + getGender() + '\'' +", studentId='" + studentId + '\'' +'}';}}```习题三:封装与隐藏问题描述:创建一个名为`BankAccount`的类,包含账户ID (accountId)、账户余额(balance)和账户类型(accountType)。
《Java面向对象程序设计》(第2版)课后答案Java面向对象程序设计(编著耿祥义张跃平)习题11.James Gosling2.(1)使用一个文本编辑器编写源文件。
(2)使用Java编译器(javac.exe)编译Java 源程序,得到字节码文件。
(3)使用Java解释器(java.exe)运行Java 程序3.Java的源文件是由若干个书写形式互相独立的类组成的。
应用程序中可以没有public类,若有的话至多可以有一个public类。
4.系统环境path D\jdk\bin;系统环境classpath D\jdk\jre\lib\rt.jar;.;5. B6. Java源文件的扩展名是.java。
Java字节码的扩展名是.class。
7. D8.(1)Speak.java(2)生成两个字节码文件,这些字节码文件的名字Speak.class 和 Xiti8.class(3)java Xiti8(4)执行java Speak的错误提示Exception in thread "main" ng.NoSuchMethodError: main执行java xiti8得到的错误提示Exception in thread "main" ng.NoClassDefFoundError: xiti8 (wrong name: Xiti8)执行java Xiti8.class得到的错误提示Exception in thread "main" ng.NoClassDefFoundError:Xiti8/class执行java Xiti8得到的输出结果I'm glad to meet you9.属于操作题,解答略。
习题21. D2.【代码1】【代码2】错误 //【代码3】更正为 float z=6.89F;3.float型常量后面必须要有后缀“f”或“F”。
第一章1.public class BegintoLearn{public static void main(String args[]) {System.out.println("I’d like to study Java ! ");}}2.public class TraStar{public static void main(String args[]) {System.out.println("*");System.out.println("* *");System.out.println("* * *");System.out.println("* * * *");System.out.println("* * * * *");}}第二章1.public class ProNum{public static void main(String args[]) {float p;long q;int m=10,n=5;System.out.println("m="+m+" n="+n);m=m+3;n=n+5;System.out.println("m="+m+" n="+n);p=(float)(m+n)/2;System.out.println("p="+p);q=(m*m*n*n);System.out.println("q="+q);}}2.class SphereClass {public static void main(String args[]) {int r=3;double v;v=3.14*r*r*r*4/3;System.out.println("V="+v)}}第三章1. import java.io.*;public class InNum{public static void main(String args[]) throws IOException{ int num1,num2;String str;BufferedReader buf;buf=new BufferedReader(new InputStreamReader(System.in));System.out.print("Input first integer:");str=buf.readLine();num1=Integer.parseInt(str);System.out.print("Input second integer:");str=buf.readLine();num2=Integer.parseInt(str);System.out.println("The sum is "+(num1+num2));}}2.import java.io.*;public class Grade{public static void main(String args[]) throws IOException{ int score;char ch;String str;BufferedReader buf;buf=new BufferedReader(new InputStreamReader(System.in));System.out.print("Input the score(0-100):");str=buf.readLine();score=Integer.parseInt(str);if (score>=90)ch='A';else if (score>=75)ch='B';else if (score>=60)ch='C';elsech='D';System.out.print("The Grade is "+ch);}}3.public class ShuLie{public static void main(String args[]){int a ,q ,n;q=(150-135)/5;a=(135-20*q)/5;for (n=0;n<10;n++)System.out.print((a+n*q)+" ");}}4.public class Pyramid{public static void main(String args[]){int i,j,k;for(i=0;i<=4;i++){for ( j=0;j<20-i;j++)System.out.print(" ");for (k=0;k<=2*i;k++)if (k<=i)System.out.print(" "+(2*k+1));elseSystem.out.print(" "+(2*(2*i-k)+1));System.out.println();}}}5.import java.io.*;public class PrimeNumber{public static void main(String args[]) throws IOException{ int n=0;int m;String str;boolean mark=false;BufferedReader buf;buf=new BufferedReader(new InputStreamReader(System.in));System.out.print("Input the m:");str=buf.readLine();m=Integer.parseInt(str);for(int i=3;i<=m;i+=2){for(int j=2;j<i;j++){if(i%j==0){mark=true;break;}}if (!mark){System.out.print(" "+i);n++; //outputanewlineif(n%10==0) //after10numbersSystem.out.println();}mark=false;}System.out.println();}}6.import java.io.*;public class Factor12{public static void main(String args[]) throws IOException{ int m;String str;BufferedReader buf;buf=new BufferedReader(new InputStreamReader(System.in));System.out.print("Input the m:");str=buf.readLine();m=Integer.parseInt(str);System.out.print(m+"\'s factors are: ");System.out.println( );for(int i=1;i<=m;i++)if (m%i==0)System.out.print(" "+i);}}7.public class MSteel{public static void main(String args[]){int d=0;float m=2000;while (m>=5) {m=m/2;d++;System.out.print(d+": ");System.out.println(m);}System.out.print("You need "+d+" days");}}8.public class AlmostPi{public static void main(String args[]){int n;long m;double s,t;n=1;m=0;s=0;do{t=(double)n/(2*m+1);m++;n=-n;s=s+t;} while (4*s-3.14159> 0.0000001 || 4*s-3.14159< -0.0000001);System.out.println(m);}}9.public class LSRnd{public static void main(String args[]){int mun,n,max1,min1;max1=0;min1=100;for (n=1;n<=10;n++){mun=(int)(100*Math.random());System.out.print(mun+" ");if (mun>max1)max1=mun;if (mun<min1)min1=mun;}System.out.println();System.out.println("The largest number is: "+max1);System.out.println("The smallest number is: "+min1);}}10.import java.io.*;public class StrArry{public static void main(String args[]) throws IOException{int m;String str;Stringmonth[]={"January","February","March","April","May","June","July","August","september","October","November","December"};BufferedReader buf;buf=new BufferedReader(new InputStreamReader(System.in));System.out.print("Input the m:");str=buf.readLine();m=Integer.parseInt(str);if (m>=1 && m<=12)System.out.println(month[m-1]);elseSystem.out.print("Your Input is wrong");}}第四章1.import java.util.*;public class Person{private String name;private char sex;private int year,month;public Person( ){}public Person(String nm,char sx,int y,int m) {name=nm;sex=sx;year=y;month=m;}public void printPerson( ) {Calendar now=Calendar.getInstance();int age=now.get(Calendar.YEAR)-year;System.out.println("Name: "+name+",Sex: "+sex+", Age: "+age);}public static void main(String args[]){Person pe1=new Person("Tom",'m',1980,10);pe1.printPerson();}}2.public class Rectangle{double width,length,girth,area;public Rectangle(){};public Rectangle(double wd,double le) {width=wd;length=le;}public void setWidth(double wd) {width=wd;}public void setLength(double le) {length=le;}public double getWidth( ) {return width;}public double getLength( ) {return length;}public double girth(){return 2*(width+length);}public double area(){return width*length;}public void printRectangle(){System.out.println("Width="+width+" ,Length="+length);}public static void main(String args[]){Rectangle re1=new Rectangle(10,20);Rectangle re2=new Rectangle();re2.setWidth(3);re2.setLength(4);re1.printRectangle();System.out.println("Girth="+re1.girth()+",Area="+re1.area());re2.printRectangle();System.out.println("Girth="+re2.girth()+",Area="+re2.area());}}3.public class Matrix{ private int mx[][],m,n; public Matrix(int r,int c) { m=r;n=c;mx=new int[m][n];iniMatrix();}public Matrix(){m=3;n=3;mx=new int[3][3];iniMatrix();}public void iniMatrix(){ int i,j;for(i=0;i<=m-1;i++)for(j=0;j<=n-1;j++)mx[i][j]=(int)(Math.random()*100); }public void tranMatrix(){int i,j,t;int mt[][]=new int[m][n];for(i=0;i<=m-1;i++)for(j=0;j<=n-1;j++)mt[i][j]=mx[i][j];t=m;m=n;n=t;mx=new int[m][n];for(i=0;i<=m-1;i++)for(j=0;j<=n-1;j++)mx[i][j]=mt[j][i];}public void printMatrix(){int i,j;for(i=0;i<=m-1;i++){for(j=0;j<=n-1;j++)System.out.print(" "+mx[i][j]);System.out.println();}}public void addMatrix(Matrix b) {int i,j;for(i=0;i<=m-1;i++)for(j=0;j<=n-1;j++)mx[i][j]=mx[i][j]+b.mx[i][j];} public static void main(String args[]){Matrix ma=new Matrix(4,3);Matrix mb=new Matrix(4,3);System.out.println("The matrix_A:"); ma.printMatrix();System.out.println("The matrix_B:"); mb.printMatrix();System.out.println("Matrix_A +Matrix_B:");ma.addMatrix(mb);ma.printMatrix();System.out.println("Transpose Matrix_B:");mb.tranMatrix();mb.printMatrix();}}4.public class Substring{public static void main(String args[]){String str1=new String("addActionListener");String str2=new String("Action");int n;n=str1.indexOf(str2);if(n>=0){System.out.println("String_2 is in String_1");System.out.println("The substring before String_2 is "+str1.substring(0,n));System.out.println("The substring behind String_2 is "+str1.substring(n+str2.length( )));}}} 五、写出程序运行后的结果1. 2.。
public class San_4 {// 编写一个应用程序求1!+2!+ (20)/*** @param args//本题考查对循环的运用和对算法的编写*/public static void main(String[] args) {// TODO Auto-generated method stubint a;double b = 1, sum = 0;// 定义变量for (a = 1; a <= 20; a++) {// for循环实现该功能b = b * a;// 当a=1时,b=b*a=1,依此类推sum = sum + b;// 当a=1时,sum=sum+b=1,依次类推}for (int w = 1; w <= 19; w++) {// for循环打印出阶乘之和的形式来System.out.print(w + "!" + "+");}System.out.println("20!" + "=" + sum);// 最终输出阶乘之和double sum1 = 0, a1 = 1;int i = 1;while (i <= 20)// 用while循环实现该功能{sum1 = sum1 + a1;i++;a1 = a1 * i;}System.out.println("sum1=" + sum1);}}输出结果:1!+2!+3!+4!+5!+6!+7!+8!+9!+10!+11!+12!+13!+14!+15!+16!+17!+18!+19!+20!=2.18203E18sum1=2.18203E18习题3_5public class San_5 {// 求100以内的素数/*** @param args//本题考查对for循环、break语句、if语句的运用*/public static void main(String[] args) {// TODO Auto-generated method stubint i, j;for (i = 2; i <= 100; i++) {// for循环从2开始,逐渐增1for (j = 2; j <= i / 2; j++) {// for循环从2开始,逐步增1if (i % j == 0) {// 如果i除以j的余数为0,则终止本次for循环break;}}if (j > i / 2) {// 如果j>i/2,输出iSystem.out.print(" " + i);}}}}2 3 5 7 11 13 17 19 23 29 31 37 41 43 47 53 59 61 67 71 73 79 8389 97习题3_6public class San_6 {// 分别用while和for循环计算1+1/2!+1/3!+1/4!...的前20项和/*** @param args//本题考查同学们对while循环、for循环以及对输出字符串格式的运用 */public static void main(String[] args) {// TODO Auto-generated method stubint i = 1, k;double j = 1, m = 1, sum1 = 0, sum2 = 0;while (i <= 20) {// 用while循环实现sum1 = sum1 + j;i++;j = j * (1.0 / i);}System.out.print("1+");for (int r = 2; r <= 19; r++) {System.out.print("1/" + r + "!" + "+");}System.out.print("1/20!" + "=" + sum1);System.out.println();System.out.print("1+");for (int r = 2; r <= 19; r++) {System.out.print("1/" + r + "!" + "+");}for (k = 1; k <= 20; k++) {// 用for循环实现m *= (1.0 / k);sum2 += m;}System.out.println("1/20!" + "=" + sum2);}}计算结果:1+1/2!+1/3!+1/4!+1/5!+1/6!+1/7!+1/8!+1/9!+1/10!+1/11!+1/12!+1/13!+1/14!+1/15!+1/16!+1/17!+1/18!+1/19!+1/20!=1.904551+1/2!+1/3!+1/4!+1/5!+1/6!+1/7!+1/8!+1/9!+1/10!+1/11!+1/12!+1/13!+1/14!+1/15!+1/16!+1/17!+1/18!+1/19!+1/20!=1.90455习题3_7public class San_7 {// 一个数如果恰好等于它的因子之和,这个数就成为”完数“。
1、下列关于类的描述中,错误的是()。
A.可以将所有类成员的访问权限都设为私有权限B.类可认为是一种高级数据类型C.类包含数据成员和函数成员D.用类所定义出的变量称为对象正确答案:A2、下列关于重用代码的描述中,错误的是()。
A.函数是重用算法代码的语法形式B.类是一种数据类型,因此只能重用数据代码C.结构体类型是重用数据代码的语法形式D.类是同时重用算法代码和数据代码的语法形式正确答案:B3、关于程序开发过程中的程序员角色,下列哪种描述是错误的?A.一个程序员可以使用其他程序员提供的代码,即代码使用者B.一个程序员可以既是代码提供者,同时又是代码使用者C.一个程序员不能既是代码提供者,同时又是代码使用者D.一个程序员可以为其他程序员提供代码,即代码提供者正确答案:C4、关于程序设计方法,下列哪种描述是错误的?A.结构化程序设计分解出的函数是一种算法零件B.程序设计方法是研究如何对大型程序设计任务进行分解的方法C.结构化程序设计分解出的结构体类型是一种数据零件D.面向对象程序设计分解出的类是一种数据零件5、下列哪种思想不属于面向对象程序设计?A.继承B.模块化C.抽象D.封装正确答案:B6、下列关于类的描述中,错误的是()。
A.可以用流程图来描述类的设计B.类是描述客观事物的数据模型C.类的数据成员也被称作属性D.类的函数成员也被称作方法正确答案:A7、按照面向对象程序设计的观点,下列关于对象描述中错误的是()。
A.客观世界中的事物被称作客观对象B.类是描述客观对象的数据模型C.程序中用类定义出的对象被称作内存对象D.同一个类所定义出的两个内存对象可以有不同的成员正确答案:D8、关于面向对象程序设计方法,下列哪种描述是错误的?A.面向对象程序设计方法所设计出的类代码不能重用B.面向对象程序设计方法更便于代码分类管理C.面向对象程序设计方法中的类是客观事物抽象后的数据模型D.面向对象程序设计方法是当今程序设计的主流方法9、假设编写一个教务管理系统,通过分析可抽象出若干个类,其中不应当包括下列哪个类?A.宿舍类B.教师类C.课程类D.学生类正确答案:A10、如果将客观世界中的钟表抽象成一个钟表类,其中不应当包含下列哪个成员?A.设置时间B.显示时间C.功率D.时、分、秒正确答案:C11、下列关于字段成员的描述中,错误的是()。
java面向对象程序设计习题答案Java面向对象程序设计习题答案Java是一种广泛应用于软件开发的编程语言,而面向对象程序设计(Object-Oriented Programming,简称OOP)则是一种常用的编程范式。
在学习Java的过程中,习题是非常重要的一部分,通过解答习题可以帮助我们巩固所学的知识,并提升编程能力。
本文将为大家提供一些Java面向对象程序设计习题的答案,希望能对大家的学习有所帮助。
1. 编写一个Java类,实现一个简单的计算器功能。
该计算器应该具有加、减、乘、除四种基本运算功能,并能够接受用户输入的两个操作数和运算符。
在计算结果后,将结果输出给用户。
```javaimport java.util.Scanner;public class Calculator {public static void main(String[] args) {Scanner scanner = new Scanner(System.in);System.out.print("请输入第一个操作数:");double num1 = scanner.nextDouble();System.out.print("请输入第二个操作数:");double num2 = scanner.nextDouble();System.out.print("请输入运算符(+、-、*、/):"); String operator = scanner.next();double result = 0;switch (operator) {case "+":result = num1 + num2;break;case "-":result = num1 - num2;break;case "*":result = num1 * num2;break;case "/":result = num1 / num2;break;default:System.out.println("无效的运算符!");return;}System.out.println("计算结果为:" + result);}}```2. 编写一个Java类,实现一个简单的学生管理系统。
《J A V A语言程序设计》练习题 1一、单选择题1、编译Java Application 源程序文件将产生相应的字节码文件,这些字节码文件的扩展名为( )。
A. .javaB. .classC. .htmlD. .exe2、设x = 1 , y = 2 , z = 3,则表达式y+=z--/++x 的值是( )。
A. 3B. 3. 5C. 4D. 53、不允许作为类及类成员的访问控制符的是( )。
A. publicB. privateC. staticD. protected4、为AB类的一个无形式参数无返回值的方法method书写方法头,使得使用类名AB作为前缀就可以调用它,该方法头的形式为( )。
A. static void method( )B. public void method( )C. final void method( )D. abstract void method( )5、给定java 代码如下,编译运行后,输出结果是( )(选择一项)。
public class test {static int i;public int aMethod() {i++;return i;}public static void main (String args[]) {Test test=new Test() ;test.aMethod () ;} }a) 0 b) 1 c) 2 d) 3二、填空题1、开发与运行Java程序需要经过的三个主要步骤为编辑源程序、编译生成字节码和解释运行字节码。
2、在Java的基本数据类型中,char型采用Unicode编码方案,每个Unicode码占用2字节内存空间,这样,无论是中文字符还是英文字符,都是占用2字节内存空间。
3、设x = 2 ,则表达式( x + + )/3 的值是0 。
4、若x = 5,y = 10,则x < y和x >= y的逻辑值分别为true和false。
第1章面向对象软件开发概述1.简述面向过程问题求解和面向对象问题求解的异同。
试列举出面向对象和面向过程的编程语言各两种。
答:面向过程问题求解,以具体的解题过程为研究和实现的主体,其思维特点更接近于计算机;面向对象的问题求解,则是以“对象”为主体,“对象”是现实世界的实体或概念在计算机逻辑中的抽象表示,更接近于人的思维特点。
面向过程的编程语言:C,Pascal,Foratn。
面向对象的编程语言:C++,Java,C#。
2.简述对象、类和实体及它们之间的相互关系。
尝试从日常接触到的人或物中抽象出对象的概念。
答:面向对象技术中的对象就是现实世界中某个具体的物理实体在计算机逻辑中的映射和体现。
类是同种对象的集合与抽象。
类是一种抽象的数据类型,它是所有具有一定共性的对象的抽象,而属于类的某一个对象则被称为是类的一个实例,是类的一次实例化的结果。
如果类是抽象的概念,如“电视机”,那么对象就是某一个具体的电视机,如“我家那台电视机”。
3.对象有哪些属性?什么是状态?什么是行为?二者之间有何关系?设有对象“学生”,试为这个对象设计状态与行为。
答:对象都具有状态和行为。
对象的状态又称为对象的静态属性,主要指对象内部所包含的各种信息,也就是变量。
每个对象个体都具有自己专有的内部变量,这些变量的值标明了对象所处的状态。
行为又称为对象的操作,它主要表述对象的动态属性,操作的作用是设置或改变对象的状态。
学生的状态:姓名、性别、年龄、所在学校、所在系别、通讯地址、电话号码、入学成绩等;学生的行为:自我介绍、入学注册、选课、参加比赛等。
4.对象间有哪三种关系?对象“班级”与对象“学生”是什么关系?对象“学生”与对象“大学生”是什么关系?答:对象间可能存在的关系有三种:包含、继承和关联。
对象“班级”与对象“学生”是包含关系。
对象“学生”与对象“大学生”是继承关系。
5.有人说“父母”和“子女”之间是继承的关系。
这种说法是否正确?为什么?答:“父母”和“子女”之间不是面向对象意义上的“继承”关系。
因为这里的继承关系是“is a”的关系,“男人”与“人”之间可以说是继承关系。
6.面向对象的软件开发包括哪些过程?OOA模型包括哪三个层次?OOD模型在OOA模型的基础上引入了哪些工作?答:面向对象的软件开发过程可以大体划分为面向对象的分析(Object Oriented analysis,OOA)、面向对象的设计(Object oriented design,OOD)、面向对象的实现(Object oriented programming,OOP)三个阶段。
面向对象的分析的主要作用是明确用户的需求,并用标准化的面向对象的模型规范地表述这一需求,最后将形成面向对象的分析模型。
面向对象的设计将在OOA模型的基础上引入界面管理、任务管理和数据管理三部分的内容。
7.面向对象的程序设计方法有哪些优点?答:由于对象的概念能够以更接近实际问题的原貌和实质的方式来表述和处理这些问题,所以面向对象的软件开发方法比以往面向过程的方法有更好的灵活性、可重用性和可扩展性,使得上述“分析—设计—实现”的开发过程也更加高效、快捷。
第2章Java概述1.简述Java编译和运行的基本方法。
答:编译可以使用JDK中的工具javac.exe。
例如:javac HelloWorldApp.java运行Java程序则可以使用JDK提供的解释器是java.exe。
例如:java HelloWorldApp2.下载并安装JDK软件包,3.尝试查看其中的JDK文档。
答:Java编程的基本工具包是JDK(Java Development Kit)。
JDK是Sun公司免费提供的开发、运行Java程序的基本软件,它可以在Windows及Unix两种平台下使用。
常用的版本是JDK1.2.2,JDK1.3.0,JDK1.4等。
可以从网站下载较新的版本,如JDK1.5(也称为JDK5.0)。
JDK文档也可以从网上下载。
3.编写一个Java Application,利用JDK软件包中的工具编译并运行这个程序,在屏幕上输出“Welcome to Java World!”。
答:见程序。
public class Ex2_3{public static void main(String[] args){System.out.println("Welcom to java vorld");}}4.编写一个Java Applet,使之能够在浏览器中显示“Welcome to Java Applet World!”的字符串信息。
答:见程序。
import java.awt.*;import java.applet.*;public class Ex2_4 extends Applet { //an appletpublic void paint(Graphics g){g.drawString ("Welcome to Java Applet World!",20,20);}}5.编写一个HTML文件,将上题中生成的Applet字节码嵌入其中,并用WWW浏览器观看这个HTML文件规定的Web页面。
答:与上一题同。
6.编写一个程序,能够从键盘上接收两个数字,然后计算这两个数的积。
答:见程序。
import java.io.*;public class Ex2_6{public static void main(String[] args){String s = "";double c = 0;double d = 0;try{BufferedReader in = new BufferedReader(new InputStreamReader( System.in ) );System.out.print("请输入一个数: ");s = in.readLine();c = Double.parseDouble( s );System.out.print("请输入另一个数: ");s = in.readLine();d = Double.parseDouble( s );}catch(IOException e){}System.out.println("这两个数的积为: " + (c * d) );}}7.编写一个程序,从两个文本框中接收两个数字,然后计算这两个数的积。
答:见程序。
import java.applet.*;import java.awt.*;import java.awt.event.*;public class Ex2_7 extends Applet{TextField in1 = new TextField(10);TextField in2 = new TextField(10);Button btn = new Button("求两个数的积");Label out = new Label("用于显示结果的标签");public void init(){setLayout( new FlowLayout() );add( in1 );add( in2 );add( btn );add( out );btn.addActionListener( new BtnActionAdapter() );}class BtnActionAdapter implements ActionListener{public void actionPerformed( ActionEvent e ){String s1 = in1.getText();double d1 = Double.parseDouble( s1 );String s2 = in2.getText();double d2 = Double.parseDouble( s2 );double result = d1 * d2;out.setText( d1 + "X" + d2 +"=" + result);}}}8.常用的集成开发工具有哪些?各有什么特点?答:常用的集成开发工具包括:Borland公司出品的Jbuilder, Sun公司出品的Java Workshop, IBM公司的Visual Age for Java,Oracle公司的Java Develop,等等。
另外,Symantec公司的Visual Café也是著名的Java开发工具。
近来,Eclipse也是使用很广的集成开发工具。
第3章数据运算、流控制、数组1.简述Java程序的构成。
如何判断主类?下面的程序有几处错误?如何改正,这个程序的源代码应该保存成什么名字的文件? public class MyJavaClass{public static void main(){System.out.printIn("Am I wrong?");}System.out.printIn("程序结束。
");}答:一个复杂的程序可由一个至多个Java源程序文件构成,每个文件中可以有多个类定义。
一般的Java源程序文件由以下三部分组成:package 语句;(0句—1句)import 语句;(0句—多句)类定义(1个—多个类定义)这里所说的主类是指程序中含有main()方法的类。
上面的示例程序中的错误主要在于拼写,如:点及分号应该用西文的;printIn中的大写字母I应改为小写字母l;另外,main()方法应该带参数,改为:public static void main(String [] argvs)import java.applet.*;import java.awt.*;import java.awt.event.*;public class Ex2_7 extends Applet{TextField in1 = new TextField(10);TextField in2 = new TextField(10);Button btn = new Button("求两个数的积");Label out = new Label("用于显示结果的标签");public void init(){setLayout( new FlowLayout() );add( in1 );add( in2 );add( btn );add( out );btn.addActionListener( new BtnActionAdapter() );}class BtnActionAdapter implements ActionListener{public void actionPerformed( ActionEvent e ){String s1 = in1.getText();double d1 = Double.parseDouble( s1 );String s2 = in2.getText();double d2 = Double.parseDouble( s2 );double result = d1 * d2;out.setText( d1 + "X" + d2 +"=" + result);}}}2.Java有哪些基本数据类型?写出int型所能表达的最大、最小数据。