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

 

二、实验环境:

 

Windows7平台下的eclipse。

 

三、实验内容:

 

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

源代码如下:

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

            returnCalendar.getInstance().get(Calendar.YEAR);//返回当年的年份

       }

       public int year() {

           return year;//返回年份

       }

       public String toString(){

                returnyear+"-"+month+"-"+day;//返回转化为字符串的年-月-日

       }

       }

编写 KY6_2.java 程序:

import Mypackage.KY6_1; //引用 Mypackage 包中的KY6_1 类

  public classKY6_2  

  {

        privateString name;

        privateKY6_1 birth;

             public static void main(Stringargs[])

        {

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

           a.output();

        }

        publicKY6_2 (String n1, int y, int m, int d)

        {                        //初始化变量与对象

               name= n1;

           birth = new KY6_1(y, m, d);

        }

        publicint age()                                  //计算年龄

        {

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

        }

        publicvoid output()

        {

           System.out.println("姓名 :"+name);

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

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

        }

    }

(3)运行上面的代码结果是:

(5)

有问题。returnbirth.year() - KY6_1.thisyear(); 这条语句中的减数和被减数相反了。

 

(二)  使用接口技术

 

接口:

public interfacejiafa {

      double add(double a,double b);

}

 

public interfacejianfa {

      double jianfa(double a,double b);

     

}

 

主函数:

public classKY6_3  implements jiafa,jianfa{

 

public double jianfa(doublea, double b) {

       

        return a-b;

}

 

public double add(doublea, double b) {

       

        return a+b;

}

public staticvoid main(String args[]) {

KY6_3 a =new KY6_3();

System.out.println("加法的结果是:"+a.add(50, 60));

System.out.println("减法的结果是:"+a.jianfa(80, 20));

}

}

代码运行的结果是:

(三)  Math类的使用

 

源代码如下:

 

public class KY6_4 {

public static void main(String args[]) {

        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());       

 

}

}

程序执行的结果: