java2简明教程部分课后复习题答案
- 格式:doc
- 大小:114.00 KB
- 文档页数:30
习题一(第1章)一、问答题1.James Gosling2.需3个步骤:1)用文本编辑器编写源文件。
2)使用javac编译源文件,得到字节码文件。
3)使用解释器运行程序。
3.由类所构成,应用程序必须有一个类含有public static void main(String args[])方法,含有该方法的类称为应用程序的主类。
不一定,但最多有一个public类。
4.Path设置为:D:\jdk\jdk1.7.0_40\bin;(以安装的1.7.0_40版本为例。
)ClassPath设置为: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。
二级java语言试题及答案1. 选择题- 1.1 以下哪个选项是Java语言的特点之一?- A. 面向对象- B. 编译型语言- C. 动态类型- D. 以上都不是- 答案: A- 1.2 Java语言中,以下哪个关键字用于定义类?- A. class- B. public- C. static- D. void- 答案: A2. 填空题- 2.1 Java语言中的主函数入口是`____`。
- 答案: main- 2.2 在Java中,`____`关键字用于声明一个方法。
- 答案: void3. 简答题- 3.1 简述Java语言的垃圾回收机制。
- 答案: Java语言的垃圾回收机制是指系统自动回收不再被引用的对象所占用的内存空间。
Java虚拟机(JVM)负责管理内存,当对象不再被任何变量引用时,垃圾回收器会将其标记为可回收,并在适当的时候释放这些内存资源。
4. 编程题- 4.1 编写一个Java程序,实现计算两个整数的和。
- 答案:```javapublic class SumCalculator {public static void main(String[] args) {int num1 = 10;int num2 = 20;int sum = addNumbers(num1, num2);System.out.println("The sum is: " + sum);}public static int addNumbers(int a, int b) {return a + b;}}```5. 阅读题- 5.1 阅读以下Java代码片段,并回答问题:```javapublic class HelloWorld {public static void main(String[] args) {System.out.println("Hello, World!");}}```- 5.1.1 这段代码的作用是什么?- 答案: 这段代码的作用是输出字符串"Hello, World!"到控制台。
java二级试题及答案一、选择题(每题2分,共10题,共计20分)1. 下面哪个选项不是Java关键字?A. classB. packageC. finalD. import2. 下面哪种循环语句可以用于遍历数组或集合?A. forB. whileC. do-whileD. switch3. Java中的包(package)用于什么目的?A. 控制类的访问权限B. 封装类的属性和方法C. 组织类的层次结构D. 使类具有继承特性4. 在Java中,以下哪个关键字用于定义一个类的子类?A. superB. thisC. extendsD. implements5. 下面哪个选项不是Java中的访问修饰符?A. privateB. protectedC. publicD. static6. 在Java中,以下哪个方法用于启动一个新的线程?A. start()B. run()C. execute()D. launch()7. 在Java中,以下哪个异常类是所有异常的父类?A. ExceptionB. RuntimeExceptioinC. ErrorD. Throwable8. 在Java中,以下哪个关键字用于定义常量?A. varB. constC. finalD. static9. 在Java中,以下哪种集合类用于存储键值对?A. ArrayListB. HashSetC. LinkedListD. HashMap10. 下面哪个选项不是Java中的基本数据类型?A. intB. doubleC. booleanD. string二、填空题(每空2分,共5题,共计10分)1. Java中的数据类型分为两类,分别为基本数据类型和_____________。
2. Java中的三目运算符的格式是_____________。
3. 在Java中,方法的重载是指在同一个类中,方法名相同但参数类型或个数_____________的情况下可以存在多个方法。
习题一1.简述面向对象软件开发方法的重要意义。
【答】:面向对象的软件开发方法按问题论域来设计模块,以对象代表问题解的中心环节,力求符合人们日常的思维习惯,采用―对象+消息‖的程序设计模式,降低或分解问题的难度和复杂性,从而以较小的代价和较高的收益获得较满意的效果,满足软件工程发展需要。
2.解释下面几个概念:1)对象2)实例3)类 4)消息 5)封装 6)继承 7)多态【答】:1)对象:就是现实世界中某个具体的物理实体在计算机中的映射和体现,是由属性和操作所构成的一个封闭整体。
2)实例:是对象在计算机内存中的映像。
3)类:是描述对象的―基本原型‖,是描述性的类别或模板,即对一组对象的抽象。
它定义一组对象所能拥有的共同特征,用以说明该组对象的能力与性质。
4)消息:消息是对象之间进行通信的一种数据结构。
5)封装:封装性是保证软件部件具有优良的模块性的基础。
面向对象的类是封装良好的模块,类定义将其说明(用户可见的外部接口)与实现(用户不可见的内部实现)显式地分开,其内部实现按其具体定义的作用域提供保护。
6)继承:继承性是子类自动共享父类数据结构和方法的机制,这是类之间的一种关系。
7)多态:多态性是指一个名字具有多种语义,即指同一消息为不同对象所接受时,可以导致不同的操作。
3.对象―汽车‖与对象―小汽车‖是什么关系,对象―汽车‖与―轮胎‖又是什么关系?【答】:对象―汽车‖与对象―小汽车‖具有继承关系,即对象―小汽车‖继承了对象―汽车‖。
―轮胎‖是对象―汽车‖的一个属性,所以对象―汽车‖包含―轮胎‖,二者是包含关系。
java程序设计第二版课后答案Java程序设计第二版课后答案涵盖了多个章节,每个章节都包含了不同的编程概念和练习题。
以下是一些常见章节的课后答案概要,以供参考:第1章:Java简介- 1.1 Java的起源和特点- 1.2 Java平台的组成- 1.3 Java开发环境的搭建第2章:基本语法- 2.1 数据类型- 2.2 变量声明- 2.3 运算符- 2.4 控制语句(if, switch, loop)第3章:控制流程- 3.1 条件语句(if-else, switch-case)- 3.2 循环语句(for, while, do-while)- 3.3 跳转语句(break, continue, return)第4章:数据结构- 4.1 数组的定义和使用- 4.2 字符串的处理- 4.3 集合框架简介第5章:面向对象编程- 5.1 类和对象- 5.2 构造方法- 5.3 继承- 5.4 封装和多态第6章:异常处理- 6.1 异常的概念- 6.2 异常的分类- 6.3 异常的处理方式(try-catch-finally)第7章:输入输出- 7.1 标准输入输出- 7.2 文件输入输出- 7.3 序列化第8章:Java集合框架- 8.1 集合的基本概念- 8.2 List接口及其实现- 8.3 Set接口及其实现- 8.4 Map接口及其实现第9章:泛型- 9.1 泛型的概念- 9.2 泛型的使用- 9.3 泛型的限制第10章:多线程- 10.1 线程的概念- 10.2 创建和启动线程- 10.3 线程的同步第11章:网络编程- 11.1 网络编程基础- 11.2 Socket编程- 11.3 URL和URLConnection第12章:图形用户界面- 12.1 AWT和Swing- 12.2 事件处理- 12.3 布局管理器第13章:Java数据库连接- 13.1 JDBC基础- 13.2 数据库连接和操作- 13.3 SQL语句的使用第14章:Java Web应用- 14.1 Servlet基础- 14.2 JSP技术- 14.3 MVC架构模式每个章节的课后答案通常包括理论问题和编程练习题的解答。
计算机二级Java习题及答案计算机二级Java习题及答案成绩的取得离不开我们平时的努力,以下是店铺为大家整理的计算机二级Java习题及答案,希望对大家的学习起到帮助!单选题1、以下不是Java中有效的关键字。
A、constB、NULLC、falseD、this本题考查的是Java的关键字。
Java中常量null,false,true,new,this,const,break都是小写。
故本题答案为B。
2、关于被私有访问控制符private修饰的成员变量,以下说法正确的是。
A、可以被三种类所引用:该类自身、与它在同一个包中的其他类、在其他包中的该类的子类B、可以被两种类访问和引用:该类本身、该类的所有子类C、只能被该类自身所访问和修改D、只能被同一个包中的类访问本题考查的是成员变量的修饰符。
private修饰的变量说明变量为私有访问。
只能被该类自己访问或调用,是对成员变量的高级保护。
故本题答案为C。
3、当检索一个压缩文件时,首先要建立压缩文件输入流对象。
该对象。
A、以选中的压缩文件为参数B、以FileInputStream对象为参数C、以InputStreamReader对象为参数D、以BufferedReader对象为参数本题考查的是压缩文件。
在java.io包中提供了对压缩文件进行操作的能力。
它是通过压缩文件输入流与压缩文件输出流来实现的,其分别继承自InflaterInputStream与DeflaterOutputStream。
在创建压缩文件输入流时,其初始化参数是一个FileInputStream类的实例。
故本题答案为B。
4、计算机中的流是______ 。
A、流动的字节B、流动的对象C、流动的文件D、流动的`数据缓冲区本题考查的是流的概念。
流,最早从C语言中引入的。
其可以看成是一个流动的数据缓冲区。
数据从数据源方向经过缓冲区流向数据的目的地。
在传送的过程中,其传送方式是串行的。
在Java中的java.io包中定义了Java中常见流的接口与类。
参考答案第1章1.Java语言有哪些主要特点。
平台独立性安全性多线程网络化面向对象2.目前美国Sun公司提供的适用不同开发规模的JDK有哪些。
目前Sun共提供了三种不同的版本:微平台版J2ME(Java 2 Platform Micro Edition),标准版J2SE(Java 2 Platform Standard Edition)和企业版J2EE(Java 2 Platform Enterprise Edition),这三种版本分别适用于不同的开发规模和类型,对于普通Java开发人员和一般学习者来说,选用标准版J2SE就可以了,学会了J2SE,再学J2ME或J2EE就比较容易上手,因为它们之间虽有所侧重,但相似之处很多,尤其是语言本身是一样的,都是Java。
3.Java Application的开发步骤有哪些。
Java Application的开发步骤:(1)下载JDK软件并安装;(2)配置相应的环境变量(path和classpath);(3)编写Java源程序(文本编辑器或集成开发环境IDE);(4)编译Java源程序,得到字节码文件(javac *.java);(5)执行字节码文件(java 字节码文件名)。
4.什么是环境变量,设置环境变量的主要目的是什么。
环境变量的配置主要是为了进行“寻径”,也即让程序能找到它需要的文件,所以设置的内容就是一些路径。
5.不参考书本,试着编写一个简单的Java Application程序,实现在Dos窗口输出“Welcome to Nanjing City!”字符串。
并对该程序进行编译和运行。
public class Hello {public static void main(String args[]){System.out.println("Welcome to Nanjing City!");}}6.编写一个Java Application程序,实现分行显示字符串“Welcome to Nanjing City”中的四个单词。
Java程序设计各章习题和思考题答案第一章习题和思考题答案1、Java程序是由什么组成的?一个程序中必须有public类吗?Java 源文件的命名规则是怎样的?答:一个Java源程序是由若干个类组成。
一个Java程序不一定需要有public类:如果源文件中有多个类时,则只能有一个类是public类;如果源文件中只有一个类,则不将该类写成public也将默认它为主类。
源文件命名时要求源文件主名应与主类(即用public修饰的类)的类名相同,扩展名为.java。
如果没有定义public类,则可以任何一个类名为主文件名,当然这是不主张的,因为它将无法进行被继承使用。
另外,对Applet小应用程序来说,其主类必须为public,否则虽然在一些编译编译平台下可以通过(在BlueJ下无法通过)但运行时无法显示结果。
2、怎样区分应用程序和小应用程序?应用程序的主类和小应用程序的主类必须用public修饰吗?答:Java Application是完整的程序,需要独立的解释器来解释运行;而Java Applet则是嵌在HTML编写的Web页面中的非独立运行程序,由Web 浏览器内部包含的Java解释器来解释运行。
在源程序代码中两者的主要区别是:任何一个Java Application应用程序必须有且只有一个main方法,它是整个程序的入口方法;任何一个Applet小应用程序要求程序中有且必须有一个类是系统类Applet的子类,即该类头部分以extends Applet结尾。
应用程序的主类当源文件中只有一个类时不必用public修饰,但当有多于一个类时则主类必须用public修饰。
小应用程序的主类在任何时候都需要用public来修饰。
3、开发与运行Java应用程序需要经过哪些主要步骤和过程?答:主要有三个步骤(1)、用文字编辑器notepad(或在Jcreator,Gel,BuleJ,Eclipse,Jbuilder等)编写源文件;(2)、使用Java编译器(如Javac.exe)将.java源文件编译成字节码文件.class;(3)、运行Java程序:对应用程序应通过Java解释器(如java.exe)来运行。
java 二级试题及答案Java二级试题及答案Java是一种广泛应用于软件开发领域的编程语言,掌握Java编程对于计算机专业人士来说尤为重要。
为了帮助读者更好地了解与掌握Java,本文将介绍一些常见的Java二级试题以及相应的详细答案。
第一节:基础知识题1. 什么是Java语言?它的特点是什么?Java语言是一种面向对象的程序设计语言,由Sun Microsystems公司于1995年推出。
它具有以下特点:- 简单易学:Java语法简洁明了,规范性强,相对于其他编程语言来说更容易上手。
- 面向对象:Java支持面向对象的编程风格,可以通过类和对象的概念来组织代码和数据。
- 平台无关性:Java应用程序可以在不同的操作系统上运行,因为Java程序是在Java虚拟机(JVM)上运行的。
- 安全性:Java提供了一些安全特性,如字节码验证和安全管理器,以确保程序在运行时的安全性。
- 高性能:Java通过Just-In-Time(JIT)编译器将字节码转换为本地机器码,从而提高了执行效率。
2. Java中如何实现多线程?请简要描述一下多线程同步的方法。
在Java中,可以通过继承Thread类或实现Runnable接口来创建多线程。
下面是一个使用Runnable接口的示例代码:```javapublic class MyThread implements Runnable {public void run() {// 线程执行的代码}public static void main(String[] args) {Thread thread = new Thread(new MyThread());thread.start();}}```多线程同步可以通过以下方法实现:- 使用synchronized关键字:可以用来修饰方法或代码块,确保同一时间只有一个线程可以访问被修饰的代码,从而避免竞态条件和数据不一致的问题。
JAVA2简明教程习题答案第二章课堂习题:public class Main{public static void main(String[] args) {//initialization phase初始段float f1 = 2.5f;float f2;int a = 7;int b = 2;int c;//processing phase 处理段f2 = f1 + (a/b);c = (a/b);//termination phase终止段System.out.println("f2的值为: " + f2);System.out.println("c的值为: " + c);}}课后习题:2-4(小程序部分)import java.applet.*;import java.awt.*;public class Gess extends Applet{public void paint(Graphics g){//3~10000中的任意数int m = 20;int n = 9993;g.drawString("本程序仅对3~10000中任意取的整数: ",80,50);g.drawString("20" ,80,65);g.drawString("9993" ,80,80);g.drawString("进行测试! " ,80,95);while (m !=1) //假设最后得到的数一定是1,则如果不为1就换算{if (m %2 == 0) //如果被2整除则为偶数,除以2m = m /2;else //如果不被2整除则为奇数,乘以3再加1 {m = m *3 + 1;}}while (n !=1) //假设最后得到的数一定是1,则如果不为1就换算{if (n %2 == 0) //如果被2整除则为偶数,除以2n = n /2;else //如果不被2整除则为奇数,乘以3再加1{n = n *3 + 1;}}g.drawString("20换算后的值为: " + m,80,110);g.drawString("9993换算后的值为: " + m,80,125);}}(程序部分)import java.io.*; //引入java.io中的所有类(含输入输出类),因为程序中要用到输入类的read()方法public class Main{public static void main(String[] args){byte []buf =new byte[50]; //50个字节的数组用于存字符串String str;long m = 0;System.out.println("请输入3~10000中的任意整数(回车确认):");try //try 语气{System.in.read(buf); //从键盘读入一数字串保存于buf 中str = new String(buf); //buf转换成字符串对象str m = Long.parseLong(str.trim()); //数字转换成整数}catch (Exception e){} //catch语气,Exception为异常类while (m !=1) //假设最后得到的数一定是1,则如果不为1就换算{if (m %2 == 0) //如果被2整除则为偶数,除以2m = m /2;else //如果不被2整除则为奇数,乘以3再加1{m = m *3 + 1;}}System.out.println("换算后的值为:\t" + m);}}1、EX_2.5import java.applet.Applet;import java.awt.*;public class compareNumbers extends Applet{Label l1, l2;TextField in1, in2;int a, b;public void init() {l1 = new Label("第一个整数:");l2 = new Label("第二个整数:");in1 = new TextField(8);in2 = new TextField(8);add(l1);add(in1);add(l2);add(in2);}public boolean action(Event e, Object o) {if(e.target==in1||e.target==in2){a = Integer.parseInt(in1.getText());b = Integer.parseInt(in2.getText());if (a == b) {showStatus("the two numbers are equal!");} else if (a > b) {showStatus(a + " is larger!");} elseshowStatus(b + " is larger!");}return true;}}2-6public class Main{public static void main(String[] args){// initialization phase //初始段int j = 1;int []a; //用于存放第一个骰子的点数的整形数组int []b; //用于存放第二个骰子的点数的整形数组int two = 0; //相加和为2的计数器int sev = 0; //相加和为7的计数器int twe = 0; //相加和为12的计数器int oth = 0; //相加和为其他数的计数器a = new int [6]; //分配数组空间b = a; //骰子的点数相同,这里将数组a赋给数组b(这时b和a同用一块内存空间)//processing phase 处理段for(int i = 0; i < 6; i++) //通过循环赋值方式初始化数组{a[i] = j++;}for(int i = 0; i < 3600; i++) //测试3600次{//生成0~5随机数int m = (int)(((Math.random())*6 ));int n = (int)(((Math.random())*6 ));if ((a[m] + b[n]) == 2) //当相加和为2时对应计数器加1two++;else if ((a[m] + b[n]) == 7) //当相加和为7时对应计数器加1sev++;else if((a[m] + b[n]) == 12) //当相加和为12时对应计数器加1twe++;else //当相加和为其他数时对应计数器加1 oth++;}//termination phase 终止段//输出结果//((float)two/3600)为将two/3600的结果强制转换成浮点数输出,否则输出为0 System.out.println("相加的和为 2 的次数是:\t" + two+ ";\t可能性为:\t" + ((float)two/3600));System.out.println("相加的和为 12 的次数是:\t" + twe+ ";\t可能性为:\t" + ((float)twe/3600));System.out.println("相加的和为 7 的次数是:\t"+ sev+ ";\t可能性为:\t" + ((float)sev/3600));System.out.println("相加的和为其他数的次数是:\t"+ oth + ";\t可能性为:\t" + ((float)oth/3600) );}}第三章课堂习题随机产生26个英文字母a-z,直到大于u为止,用while或for语气实现public class Main {public static void main(String[] args){int letter = 0;System.out.println("用 while 语句实现: ");while(letter < 'u'){letter = (int)(Math.random()*26) + 'a';System.out.println((char)letter);}System.out.println("用 for 语句实现: ");for(letter = 97; letter < 'u';letter++){letter = (int)(Math.random()*26) + 'a';System.out.println((char)letter);}}}课后习题3-1import java.applet.Applet;import java.awt.*;public class Display extends Applet{Label lab;TextField input;long num;long m = 0;long n = 0;int i = 0; //数字个数的计数器public void init(){lab = new Label("请输入任意整数:"); //提示标签input = new TextField(20); //输入文本框add(lab); //在网页中显示标签labadd(input); //在网页中显示文本框}public boolean action (Event e, Object o){if (e.target == input){num = Long.parseLong( input.getText() ); //字符串转换成整形//把得到的数倒置do{m = num%10; //求余得最后一个数字num = num/10; //取整去掉最后一个数字n = n*10 + m; //把倒置后的数存到n中i++; //同时计数器自加}while(num != 0);System.out.println("下面是得到的结果:" + i);//间隔加空格后输出do{System.out.print(" " + n%10);n = n/10;}while((i--) > 1);}return true;}}3-2public class Main {public static void main(String[] args){System.out.println("整数\t" + "平方\t" + "立方");//范围0~10for(int i = 0; i <= 10; i++){//依次打印输出整数,平方,立方System.out.println(i + "\t" + i*i + "\t" + i*i*i);}}}3-3public class Main{public static void main(String[] args){// 把图分成三部分左中右三部分打印for(int i = 0; i < 5;i++ ){//循环打印出左边部分for(int j = 0; j <= i;j++){System.out.print("*");}//循环打印出中间部分for(int k = 2*i; k < 18; k++) //空格要考虑前后各少一个所以从2*i 开始{System.out.print(" ");}//循环打印出右边部分for(int m = 0; m <= i;m++){System.out.print("*");}System.out.println();}System.out.println();}}3-4import java.applet.Applet;import java.awt.*;public class Rectangle extends Applet{Label lab;TextField input;int width; //矩形的长public void init(){lab = new Label("请输入矩形的长(整数):"); //请示标签 input = new TextField(20); //输入文本框add(lab); //在网页中显示标签labadd(input); //在网页中显示文本框}public boolean action(Event e, Object o){//当用户按下Enter时把输入的字符串转换成整形if (e.target == input)width = Integer.parseInt( input.getText() );System.out.println("下面是得到的矩形:");//矩形的上底for(int i = 0; i < width; i++){System.out.print("*");}//矩形的边for (int k = 0; k < width-2; k++){System.out.println();System.out.print("*");//矩形的中间为空for (int m = 0; m < width-2; m++) {System.out.print(" ");}System.out.print("*");}System.out.println();//矩形的下底for(int j = 0; j < width; j++){System.out.print("*");}return true;}}第四章4-1import java.io.*;public class ReverOrder{static int x;int num;int m;int n;//从键盘读入字符串public static String readString(){BufferedReader br = new BufferedReader( new InputStreamReader(System.in),1 );String string = "";try{string = br.readLine();}catch( IOException ex ){System.out.println(ex);}return string;}//将读入的字符串转换为整形public static int input(){System.out.print("请输入一串数字:\t");return Integer.parseInt(readString());}//倒序输入的字符串int Rorder(int b){num = b;{m = num%10; //求余得最后一个数字num = num/10; //取整去掉最后一个数字n = n*10 + m; //把倒置后的数存到n中}while( num != 0);return n;}//输出结果void show(int a){System.out.println("倒序输出为:\t" + a);}//主方法public static void main(String[] args){int value;ReverOrder order = new ReverOrder();x = ReverOrder.input(); //将输入的数传递给x value = order.Rorder(x); //将x倒置order.show(value); //输出}}4-3package homework4_3;import java.io.*;public class Circle{static double radius;double length;double area;static boolean checkr;//构造函数初始化半径public Circle(double r){if(r < 0)checkr = false;}else{radius = r;checkr = true;}}//从键盘读入字符串public static String readString(){BufferedReader br = new BufferedReader( new InputStreamReader(System.in),1 );String string = "";try{string = br.readLine();}catch( IOException ex ){System.out.println(ex);}return string;}//将读入的字符串转换为整形public static double input(){System.out.print("请输入圆的半径:\t");return Double.parseDouble(readString());}//计算圆的周长的方法void Length(double r){System.out.println("圆的周长为:\t" + Math.PI*r*2);}//计算圆的面积void Area(double r)System.out.println("圆的面积为:\t" + Math.PI*r*r);}//主方法public static void main(String[] args){double valueinput;double valuer;Circle r = new Circle(input());//如果半径为正则求周长和面积if(checkr){r.Area(radius);r.Length(radius);}elseSystem.out.println("输入圆的半径的值不能为负数!");}}4-4public class Date{static int year;static int month;static int day;public Date(){//无参数的构造函数}//有三个参数的构造函数public Date(int x, int y, int z){day = x;month = y;year = z;//主方法public static void main(String[] args){year = 2008;month = 06;day = 21;//(1)三种格式输出今天的日期System.out.print("今天是:" );System.out.println("\t" + year + " " + month + " " + day );System.out.println("\t" + month + " " + day + " " + year );System.out.println("\t" + day + " " + month + " " + year );//(2)调用重载构造函数创建对象dateDate date = new Date(22,06,2008);System.out.print("\n明天是:" );System.out.println("\t" + year + " " + month + " " + day );System.out.println("\t" + month + " " + day + " " + year );System.out.println("\t" + day + " " + month + " " + year ); }}4-6//基类class base{//方法一void First(){System.out.println("这是基类base的第一个方法!");Second();}//方法二void Second(){System.out.println("这是基类base的第二个方法!");}}//派生类class derived extends base{void Second(){System.out.println("这是派生类derived的方法!");}}public class UpCasting{//主方法public static void main(String[] args){//派生类derived对象test,test对象里有覆盖了基类的Second()方法的Second()方法derived test = new derived();base up = test; //向上类型转换, 基类对象up里有有First()方法和被覆盖的Second()//base up = new base(); //基类对象up里仅有First()方法和未被覆盖的Second()up.First(); //调用基类的第一个方法}}第6章、Ex_6.6import java.util.*;public class Text {public void countYYZM(String text) {int i = 0;int countA = 0, countE = 0, countI = 0, countO = 0, countU = 0;while (i < text.length()) {switch (text.charAt(i)) {case 'a':case 'A':countA++;break;case 'e':case 'E':countE++;break;case 'i':case 'I':countI++;break;case 'o':case 'O':countO++;break;case 'u':case 'U':countU++;break;}i++;}System.out.println("A,a出现的次数为: " + countA + " 次");System.out.println("E,e出现的次数为: " + countE + " 次");System.out.println("I,i出现的次数为: " + countI + " 次");System.out.println("O,o出现的次数为: " + countO + " 次");System.out.println("U,u出现的次数为: " + countU + " 次");System.out.println("---------------------");}public void WordLength(String text) {int j = 0;StringBuffer str = new StringBuffer();while (j < text.length()) {if ((text.charAt(j) >= 'a' && text.charAt(j) <= 'z')|| (text.charAt(j) >= 'A' && text.charAt(j) <= 'Z')) { str.append(text.charAt(j));j++;} else {if (str.toString().length() > 0) {System.out.println(str.toString() + "的长度为: "+ str.toString().length());j++;str = new StringBuffer();} elsej++;}if (j == text.length() - 1) {str.append(text.charAt(j));System.out.println(str.toString() + "的长度为: "+ str.toString().length());}}}public static void main(String[] args) {Text tx = new Text();String text = "";Scanner sc = new Scanner(System.in);System.out.println("请输入文本:");text = sc.nextLine();tx.countYYZM(text);tx.WordLength(text);}}第7章、Ex_7.2import java.io.*;public class Circle {static double radius;double length;double area;public Circle(double r) {this.radius=r;}public static String readString() {BufferedReader br = new BufferedReader(new InputStreamReader(System.in), 1);String string = "";try {string = br.readLine();} catch (IOException ex) {System.out.println(ex);}return string;}public static double input() throws myException {double r;System.out.print("请输入圆的半径:\t");r=Integer.parseInt(readString());if (r < 0) {myException ex = new myException("请输入大于0的数!");throw ex;}return r;}void Length(double r) {System.out.println("圆的周长为:\t" + Math.PI * r * 2);}void Area(double r) {System.out.println("圆的面积为:\t" + Math.PI * r * r);}public static void main(String[] args){try {Circle r = new Circle(input());r.Area(radius);r.Length(radius);} catch (myException e) {e.printStackTrace();}}}class myException extends Exception {myException() {};myException(String a) {super(a);}}第8章、Ex_8.1import java.io.*;public class FileInput {File file = null;FileInput(File f) {this.file = f;};String readFile() throws IOException {FileReader fin = null;BufferedReader in;String string = "";try {fin = new FileReader(file);in = new BufferedReader(fin);String s = in.readLine();while (s != null) {string += s;s = in.readLine();}} catch (FileNotFoundException ex) {System.out.println("文件不存在!");} finally {fin.close();}return string;}char[] toArray(String s) {return s.toCharArray();}void printArray(char[] c) {for (int i = c.length - 1; i >= 0; i--) {System.out.print(c[i]);}}public static void main(String[] args) throws IOException { File file = new File("D:/text.txt");FileInput fi = new FileInput(file);String text = fi.readFile();char[] array = fi.toArray(text);fi.printArray(array);}}实验题目实验一(略)实验二(略)实验三import javax.swing.JOptionPane;public class GuessNumber{public static void main(String[] args){System.out.println("给你一个1到100的整数,请猜测这个数");int realNumber =(int)(Math.random()*100)+1; //随机生成1~100的整数 int yourGuess =0; //初始化输入的值String str =JOptionPane.showInputDialog("输入你的猜测: ");yourGuess = Integer.parseInt(str); //将输入的字符串轮换成整形//当输入的数字与随机生成的数不相等时while(yourGuess != realNumber){//输入的数大于随机生成的数if(yourGuess > realNumber){str = JOptionPane.showInputDialog("猜大了,再输入你的猜测: "); yourGuess = Integer.parseInt(str); //重置当前输入的值}//输入的数小于随机生成的数else if (yourGuess < realNumber){str = JOptionPane.showInputDialog("猜小了,再输入你的猜测: "); yourGuess = Integer.parseInt(str); //重置当前输入的值}}System.out.print("猜对了!");}}补充题:public class Main {public static void main(String[] args){float i = 0;float sum = 1; //总和int classno = 209; //学号for (i = 2;i <= classno;i++){sum += 1/i;}//输入每一项for (int j = 2; j <= classno; j++){//每十项换行if(j%10 == 0)System.out.println();System.out.print("1/" + j + " + "); }//输出总和System.out.println("和为: " + sum);}}实验四//三角形类class Triangle{double sideA, sideB, sideC, area, length; boolean boo; //能构成三角形的标记public Triangle(double a,double b,double c) {sideA=a;sideB=b;sideC=c;//如果任意两边之和不大于第三边if(((a+b)>c) &&((b+c)>a) && (a+c)>b) {boo = true; //标记为真}else{boo = false; //否则标记为假}}//三角形的周长double getLength(){//如果标记为真,即能构成三角形if(boo){length=sideA+sideB+sideC; //求周长的公式return length; //返回周长}//否则返回0else{System.out.println("不是三角形,不能计算周长"); return 0;}}//三角形边1double getsideA(){if(boo){return sideA;}else{System.out.println("边不符合要求,不能计算周长"); return 0;}}//三角形边2double getsideB(){if(boo){return sideB;}else{System.out.println("边不符合要求,不能计算周长");return 0;}}//三角形边3double getsideC(){if(boo){return sideC;}else{System.out.println("边不符合要求,不能计算周长");return 0;}}//三角形的面积public double getArea(){//如果标记为真,即能构成三角形if(boo){double p=(sideA+sideB+sideC)/2.0;area =Math.sqrt(p*(p-sideA)*(p-sideB)*(p-sideC)); //求面积公式 return area; //返回面积}//否则返回0else{System.out.println("不是三角形,不能计算面积");return 0;}}public void setABC(double a,double b,double c) {sideA = a;sideB = b;sideC = c;if(((a+b)>c)&&((a-b)<c)){boo=true;}else{boo=false;}}}//圆类class Circle{double r, area, length;public Circle(double a){r = a;}//圆的周长public double getLength(){length = Math.PI*r*2;return length;}//圆的面积public double getArea(){area = Math.PI*r*r;return area;}}//梯形类class Lader{double sideup, sidesb, sidel, sider,area, length; public Lader(double a,double b,double c,double e) {sideup = a;sidesb = b;sidel = c;sider = e;}double getLength(){length=sideup + sidesb + sidel + sider;return length;}public double getArea(){area = ((sideup + sidesb)*sidel)/2;return area;}}public class AreaAndLength{public static void main(String[] args){double length, area;double sideA,sideB,sideC;Circle circle = null;Triangle triangle;Lader lader;//调用Circle 方法返回周长并赋值给lengthcircle = new Circle(19); //修改圆的半径为19 length = circle.getLength();System.out.println("圆的周长:"+ length);//调用Circle 方法返回面积并赋值给areaarea = circle.getArea();System.out.println("圆的面积:"+ area);//给边值triangle = new Triangle(3,4,5);//求边sideA = triangle.getsideA();sideB = triangle.getsideB();sideC = triangle.getsideC();//输出边System.out.println("三角形的第一条边是:"+ sideA);System.out.println("三角形的第二条边是:"+ sideB);System.out.println("三角形的第三条边是:"+ sideC);//调用Triangle 方法返回周长并赋值给lengthlength = triangle.getLength();System.out.println("三角形的周长:"+ length);//调用Triangle 方法返回面积并赋值给areaarea = triangle.getArea();System.out.println("三角形的面积:"+ area);//调用Lader 方法返回周长并赋值给lengthlader = new Lader(4,5,6,7);length = lader.getLength();area = lader.getArea();System.out.println("梯形的周长:"+ length);//调用Lader 方法返回面积并赋值给areaSystem.out.println("梯形的面积:"+ area);}}实验五//圆类class Circle{static double pi = 3.14; //静态变量//double pi = 3.14; //非静态变量不能被静态方法调用 static int objectNo = 0; //静态变量,对象的计数器int radius;//带有一个整形参数的构造函数Circle(int r){radius = r;objectNo++; //对象的计数器加1}//无参构造函数Circle(){radius = 2;objectNo++; //对象的计数器加1}//求圆的面积的方法double getArea(){return pi*radius*radius;}//静态方法(类方法)static void setPI(double p){//重置pipi = p;}void setRadius(int r){radius = r;}//静态方法static void displayNO(){//输出对象个数System.out.println("当前圆的对象个数是:\t" + objectNo);}}public class StaticTest{public static void main(String[] args){Circle cir1 = new Circle(5); //圆的对象cir1用带有一个参数的构造函数初始化System.out.println("ciir1圆周率是:\t" + cir1.pi);System.out.println("ciir1半径是:\t" + cir1.radius);System.out.println("ciir1面积是:\t" + cir1.getArea());cir1.displayNO(); //通过对象调用静态方法cir1.setRadius(10); //通过对象调用非静态方法//Circle.setRadius(10); //只有静态方法才能通过类来调用Circle cir2 = new Circle(10); //圆的对象cir2用带有一个参数的构造函数初始化cir2.setPI(3.1415); //通过对象调用静态方法System.out.println("ciir2圆周率是:\t" + cir2.pi);System.out.println("ciir2半径是:\t" + cir2.radius);System.out.println("ciir2面积是:\t" + cir2.getArea());}}实验六class ScopeTest{//类的实例变量x,mint x;static int m = 0 ; //静态变量(类变量)m,为类的所有对象共享void show(){//类的局部x变量屏蔽掉类的实例xint x = 8,y;//类的局部变量xfor(y = 0; y < 2; y++) //循环两次{//z是局部变量,属方法域中的变量,因此作用范围只在此for()语句中.//int z = 5;//局部变量不能重名int z = 5;System.out.println("z = " + z);z = 10; //重置z的值为10System.out.println("z = " + z);System.out.println("方法域中的X = " + z + "在块内显示");}//去掉注释后错误是z中此方法中未声明,因为z的作用范围只在for()循环语句块中.//z = 20;System.out.println("方法域中的X = " + x + " 在块外显示");System.out.println("类域中的x = " + this.x + " 在块外显示");System.out.println("类域中的m = " + this.m + " 在块外显示");}void setx(int x){this.x = x; //赋值实例变量的值为2}//静态方法(类方法)只能访问静态变量(类变量)static void setm(int m)//void setm(int m) //此时是非静态方法,this指代的是对象.{//在静态方法中通过类名调用静态变量ScopeTest.m = m; //赋值静态变量m的值为3// this.m = m; //在静态方法中不能有this,因为静态方法属于整个类,而不是某个对象}public static void main(String[] args){ScopeTest application = new ScopeTest(); //声明ScopeTest类的对象applicationapplication.setx(2); //调用方法setx(int x)application.setm(3); //调用方法setm(int x)application.show(); //调用方法show()}}实验七(非重点略)实验八(非重点略)。