java实验6

实验名称       第六次实验:包与接口以及常用工具类的使用       

一、实验目的:

了解 Java 中包(package)和接口(interface)的作用,掌握包和接口的设计方法。掌握Math类,String类和StringBuffer类的使用。

二、实验要求:

1. 了解 Java 系统包的结构,创建并使用自定义包。

2. 掌握接口的定义与使用。

3. 掌握Math类的使用。

4. 掌握String类和StringBuffer类的使用

 

三、实验内容:

  (一)创建并使用自定义包

1.自定义包的声明方式

        <package>  <自定义包名>

    声明包语句必须添加在源程序的第一行,表示该程序文件声明的全部类都属于这个包。

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){}

        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+"-"+month+"-"+day;//返回转化为字符串的年-月-日

        }

   }

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("张驰",1990,1,11);

            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("姓名 : "+name);

            System.out.println("出生日期: "+birth.toString());

            System.out.println("今年年龄 : "+age());

        }

    }

3) 编译KY6_2.java 程序并运行程序KY6_2.java

 

4) 在实验报告中写出该程序的运行结果。

姓名:张弛

出生日期1990-1-11

今年年龄28

5) 程序运行的结果有没有问题?问题出在哪里?请在实验报告中指出。

     有问题,那个今年的年龄出现了问题,age()方法应该这样写

    public int age(){

return  KY6_1.thisyear()-birth.year();

    }

 

(二)使用接口技术

定义两个接口,其中各包括一个抽象方法分别用来完成两个数的加法和减法操作,然后创建一个类KY6_3来实现这两个接口中的抽象方法。编写程序KY6_3.java,将源程序写在实验报告中。

 

package Mypackage;

import java.io.*;

public class KY6_3 implements cn,cm{

public int f(int a,int b){

int sum;

sum=a+b;

return sum; }

public int g(int c,int d){

int sum1;

sum1=c-d;

return sum1;}

public static void main(String[] args)

{KY6_3 ky3=new KY6_3();

int sum2=ky3.f(3,4);

int sum3=ky3.g(5,6);

System.out.println(sum2);

System.out.println(sum3);}

}

 

 

Cm.java

package Mypackage;

public interface cm{

public abstract int g(int c,int d);

}

Cn.java

package Mypackage;

public interface cn{

public abstract int f(int a,int b);

}


(三)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 ("e is:"+ Math.e);         
 System.out.println ("π is:"+Math.PI);        
 System.out.println(Math.random());        


 

2.将程序的运行结果写在实验报告中。

结果:

5.8

4.0

3.0

4

3

2

4.0

1.9459101490553132

49.0

1.4918246976412703

e is:2.718281828459045

π is:3.141592653589793

0.5385832904314317

 

(四)String类与StringBuffer类的使用

 1.利用下面的关键代码编写一个完整的程序KY6_5.java,理解String类与StringBuffer类的使用。
        String s=new String("This is an demo of the String method.");
        System.out.println("Length: "+s.length());
        System.out.println("SubString: "+s.substring(11,15));
      StringBuffer sf=new StringBuffer("Hello World!");
        sf.append(" Hello Java!");
        sf.insert(12," And");
        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.将程序的运行结果写在实验报告中。

 Length: 37

SubString: demo

Hello World! And Hello Java!

H

h

hello World! And Hello Java!

四、思考题

1. 算术运算应该使用什么类?

math类

2. Java语言中如何表示字符串?

        运用string类和stringbuffer类

 

四、心得体会:

 

    了解使用自定义包名以及类的使用和调用的注意事项,接口技术的灵活运用,关于运算的

math类的使用,以及字符串运算的string类和stringbuffer类.

 

实验5 常用类(2学时) 一、实验目的 1. 熟悉Java中的StringStringBuffer、Math、包装器类的使用方法。 2. 使用常用类解决一般性的应用问题。 3. 掌握JavaSE API文档的使用方法。 二、实验内容 1. 编写一个程序,输出一个字符串中的大写英文字母数,小写英文字母数以及非英文字母数。(字符串可以在main方法中指定) 2. 调用java.lang.Math的成员函数“public static double random()”运算下面表达式1000次,(int) (Math.random()*20+0.5),统计其中生成的整数0、1、2、……、20的个数分别是多少,并输出统计结果。 3. 编写一个方法,返回一个double型的二维数组,数组中的元素通过解析字符串参数获得。例如,字符串参数:“1,2;3,4,5;6,7,8”,对应的数组为: d[0,0] = 1.0 d[0,1] = 2.0 d[1,0] = 3.0 d[1,1] = 4.0 d[1,2] = 5.0 d[2,0] = 6.0 d[2,1] = 7.0 d[2,2] = 8.0 三、实验要求 完成程序设计并提交实验报告。 实验6 容器(2学时) 一、实验目的 1. 熟悉容器类库中常用类的使用方法。 2. 使用常用容器类解决一般性的应用问题。 二、实验内容 1. 用HashMap模拟一个网上购物车。要求:从键盘输入5本书的名称、单价、购买数量,将这些信息存入一个HashMap,然后将该HashMap作为参数调用方法getSum(HashMap books),该方法用于计算书的总价并返回。【说明:键盘输入可以使用Scanner类】 2. 使用两个Stack类(JDK容器类库中的Stack类)实现一个队列类MyQueue,提供队列的入队列和出队列操作:enQueue和deQueue。 3. 写一个彩票程序:30选7。随机(1~30之间)生成7个随机数,注意不能重复。然后从键盘输入7个数,对比7个数是否与随机数有相同的。最后显示“中了几个号”。同时,如果中了7个号,显示一等奖;如果中了6个号,显示二等奖;如果中了5个号,显示三等奖。要求:首先写出程序的实现思想,特别是程序所使用的数据结构,然后写出Java实现代码。【说明:键盘输入可以使用Scanner类】 三、实验要求 完成程序设计并提交实验报告。 实验7 流(2学时) 一、实验目的 1. 熟悉流类库中各种常用流的使用方法。 2. 能够使用流类实现基本的文件读写。 二、实验内容 1. 编写程序,在控制台窗口提示输入两个整数,然后接收这两个整数,并输出它们的和。(要求:键盘输入通过流封装System.in获取,不要使用Scanner类) 2. 设计学生类Student,属性:编号(整型);姓名(字符串),成绩(整型)。编写一个程序:要求:(1)输入5个学生的姓名和成绩,将其姓名和成绩保存到data.txt中;(2)然后从该文件中读取数据,求得这五个学生的平均成绩。 三、实验要求 完成程序设计并提交实验报告。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ifHappyEveryDay@

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值