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 (inty,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(){

                returnyear+"-"+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 voidmain(String args[])

        {

            KY6_2 a = newKY6_2("张驰",1990,1,11);

            a.output();

        }

        public KY6_2 (Stringn1, int y, int m, int d)

        {                          //初始化变量与对象

                     name = n1;

            birth = newKY6_1(y, m, d);

        }

        public int age()                                   //计算年龄

        {

            returnbirth.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)       在实验报告中写出该程序的运行结果。

 

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

今年年龄有错

public int age()                                   //计算年龄

       {

           return birth.year()-KY6_1.thisyear(); //返回当前年与出生年的差即年龄

       }

Return 内容有错改成  KY6_1.thisyear()-birth.year()  即可

(二)使用接口技术

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

定义两个接口

public interface jiekou1 {

      abstract int Add(intx,int y);

}

 

public interface jiekou2 {

    abstract int Sub(int x,inty);

}

编写add sub方法

public class jiafa implements jiekou1 {

          public int Add(intx,int y){

                 return x+y;

          }

 

public class jianfa implements jiekou2 {

    public int Sub(int x,inty){

       return x-y;

    }

} 

主方法

public class KY6_3 {

       public static voidmain(String[] args) {

              jianfa      a=newjianfa();

              jiafa b=new jiafa();

           System.out.println("接口1运行的结果为"+b.Add(30, 70));

           System.out.println("接口2运行的结果为"+a.Sub(50, 30));

       }

}

运行结果

(三)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.2));

       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.将程序的运行结果写在实验报告中。

(四)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=newStringBuffer("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.将程序的运行结果写在实验报告中。

 

四、思考题

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

Math类提供相关的运算方法

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

以下3个类型表示字符串

String s1 = "fdsfd";
String s2 = new String("fdsdfds");
String s3 = new String(s2);

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值