点石科技整理(Http://www.loosr.cn) sanjtu@163.com
第六次实验:包与接口以及常用工具类的使用
一、实验目的
了解 Java 中包(package)和接口(interface)的作用,掌握包和接口的设计方法。掌握Math类,String类和StringBuffer类的使用。
二、实验要求
1. 了解 Java 系统包的结构,创建并使用自定义包。 2. 掌握接口的定义与使用。 3. 掌握Math类的使用。
4. 掌握String类和StringBuffer类的使用
三、实验内容
(一)创建并使用自定义包
1.自定义包的声明方式
声明包语句必须添加在源程序的第一行,表示该程序文件声明的全部类都属于这个包。
2.创建自定义包 Mypackage 在存放源程序的文件夹中建立一个子文件夹 Mypackage。例如,在“D:\\java\\javacode”文件夹之中创建一个与包同名的子文件夹 Mypackage(D:\\java\\javacode\\Mypackage),并将编译过的 class 文件放入到该文件夹中。 注意:包名与文件夹名大小写要一致。
3.在包中创建类
1) 编写程序KY6_1.java,在源程序中,首先声明使用的包名 Mypackage,然后创建KY6_1类,该类具有计算今年的年份,可以输出一个带有年月日的字符串的功能。 2) 源代码如下。
package Mypackage; //声明存放类的包 import java.util.*; //引用 java.util 包 public class KY6_1 {
private int year,month,day;
public static void main(String[] args){}
成功不是偶然 失败不是命运 sanjtu
点石科技整理(Http://www.loosr.cn) sanjtu@163.com
public KY6_1 (int y,int m,int d) {
year = y;
month = (((m>=1) & (m<=12)) ? m : 1); day = (((d>=1) & (d<=31)) ? d : 1); }
public static int thisyear() {
return Calendar.getInstance().get(Calendar.YEAR);//返回当年的年份 }
public int year() {
return year;//返回年份
}
public String toString(){
return year+\返回转化为字符串的年-月-日 }
}
3) 编译KY6_1.java 文件,然后将KY6_1.class 文件存放到 Mypackage 文件夹中
(D:\\java\\javacode\\Mypackage)。 注意:先不运行程序KY6_1.class!
4.编写一个需要使用到包 Mypackage 中的KY6_1 类的程序KY6_2.java。
1) 编写 KY6_2.java 程序:给定某人姓名与出生日期,计算该人年龄,并输出该人姓
名,年龄,出生日期。程序使用了KY6_1 的方法来计算年龄。 2) 源代码如下。
import Mypackage.KY6_1; //引用 Mypackage 包中的KY6_1 类 public class KY6_2 {
private String name; private KY6_1 birth;
public static void main(String args[]) {
KY6_2 a = new KY6_2(\张驰\ a.output(); }
public KY6_2 (String n1, int y, int m, int d) { //初始化变量与对象 name = n1;
birth = new KY6_1(y, m, d);
}
public int age() //计算年龄 {
return birth.year() - KY6_1.thisyear(); //返回当前年与出生年的差即年龄 }
public void output() {
System.out.println(\姓名 : \
成功不是偶然 失败不是命运 sanjtu
点石科技整理(Http://www.loosr.cn) sanjtu@163.com
System.out.println(\出生日期: \ System.out.println(\今年年龄 : \ } }
3) 编译KY6_2.java 程序并运行程序KY6_2.java
4) 在实验报告中写出该程序的运行结果。
5) 程序运行的结果有没有问题?问题出在哪里?请在实验报告中指出。
(二)使用接口技术
定义两个接口,其中各包括一个抽象方法分别用来完成两个数的加法和减法操作,然后创建一个类KY6_3来实现这两个接口中的抽象方法。编写程序KY6_3.java,将源程序写在实验报告中。
(三)Math类的使用
1.利用下面的关键代码编写一个完整的程序KY6_4.java,理解Math类的使用。 System.out.println (Math.abs (-5.8)); System.out.println (Math.ceil (3.2)); System.out.println (Math.floor (3.8)) System.out.println (Math.round (3.8)); System.out.println (Math.round (3.2)); System.out.println (Math.min (3, 2)); System.out.println (Math.max (Math.PI, 4)); System.out.println (Math.log (7.0));
System.out.println (Math.pow (7,2)); System.out.println (Math.exp (0.4)); System.out.println (\ System.out.println (\ is:\ System.out.println(Math.random());
2.将程序的运行结果写在实验报告中。
(四)String类与StringBuffer类的使用
1.利用下面的关键代码编写一个完整的程序KY6_5.java,理解String类与StringBuffer类的使用。
String s=new String(\ System.out.println(\
System.out.println(\ StringBuffer sf=new StringBuffer(\
成功不是偶然 失败不是命运 sanjtu
点石科技整理(Http://www.loosr.cn) sanjtu@163.com
sf.append(\ sf.insert(12,\ System.out.println(sf);
System.out.println(sf.charAt(0)); sf.setCharAt(0,''h'');
System.out.println(sf.charAt(0)); System.out.println(sf);
2.将程序的运行结果写在实验报告中。
四、思考题
3. 算术运算应该使用什么类? 4. Java语言中如何表示字符串?
成功不是偶然 失败不是命运 sanjtu
点石科技整理(Http://www.loosr.cn) sanjtu@163.com
实验七 流与文件
一、实验目的
1. 理解数据流的概念 2. 理解Java流的层次结构 3. 理解文件的概念
二、实验要求
1. 掌握字节流的基本使用方法 2. 掌握字符流的基本使用方法
3. 能够创建、读写、更新文件
三、实验内容
(一)使用标准数据流的应用程序
标准数据流指在字符方式下(如DOS 提示符)程序与系统进行输入输出的方式,键盘和显示器屏幕是标准输入输出设备,数据输入的起点为键盘,数据输出的终点是屏幕,输出的数据可以在屏幕上显示出来。
1. 程序功能:将键盘上输入的字符在屏幕上显示出来
2. 编写KY10_1.java 程序文件,源代码如下。
class KY10_1{
public static void main(String[] args) throws java.io.IOException { byte buffer[]=new byte[10];
System.out.println(\从键盘输入不超过10 个字符,按回车键结束输入:\int count =System.in.read(buffer);//读取输入的字符并存放在缓冲区buffer
中
System.out.println(\保存在缓冲区buffer 中元素的个数为:\System.out.println(\中各元素的值为:\
for (int i=0;i System.out.print(\在屏幕上显示buffer 元素的值 } System.out.println(); System.out.println(\输出buffer 字符元素:\System.out.write(buffer, 0, buffer.length); } } 3. 编译、运行KY10_1.java 文件。 成功不是偶然 失败不是命运 sanjtu