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

实验目的

了解 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 void main(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()                                   //计算年龄

        {

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

        }

应该改为:return KY6_1.thisyear() -birth.year()  ;

(二)使用接口技术

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

package Mypackage;

 

interface Add{     

       public abstract int_add(int x,int y);

}

 

interface Sub{     

       public abstract int_sub(int x,int y);

}

 

public class KY6_3 implements Add,Sub {

      

       public int _add(intx,int y) {

              return x+y;

       }

      

       public int _sub(intx,int y) {

              return x-y;

       }

      

       public static voidmain(String args[]) {

              KY6_3 object=newKY6_3();

              System.out.println(object._add(10,3));

              System.out.println(object._sub(10,3));

             

       }

}

 

 

 

 

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

(四)String类与StringBuffer类的使用

 1.利用下面的关键代码编写一个完整的程序KY6_5.java,理解String类与StringBuffer类的使用。
        String s=new String("This is andemo 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.将程序的运行结果写在实验报告中。

运行结果:

    Length: 37

    SubString: demo

    Hello World! And Hello Java!

    H

    h

    hello World! And Hello Java!

四、思考题

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

ava.math.*类中:

Math.sqrt() : 计算平方根

Math.cbrt() : 计算立方根

Math.pow(a, b) :计算a的b次方

Math.max( , ) : 计算最大值

Math.min( , ) : 计算最小值

Math.abs() : 取绝对值

Math.ceil(): 天花板的意思,就是逢余进一

Math.floor() : 地板的意思,就是逢余舍一

Math.rint(): 四舍五入,返回double值。注意.5的时候会取偶数

Math.round(): 四舍五入,float时返回int值,double时返回long值

Math.random(): 取得一个[0, 1)范围内的随机数

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

赋值:

String s1 ="fdsfd";

String s2 = newString("fdsdfds");

String s3 = newString(s2);

获取长度

int size =s1.size();

比如说定义字符变量是用CHRA类型或是已经给一个字符串变量赋值,那么要怎么才能计算出这个字符串的长度呢。

首先要定义一个字符串。如下:

String s=newString()

然后用String本身的方法来确定该字符串的长度:s.length();

猜你喜欢

转载自blog.csdn.net/sinat_40959511/article/details/80947060
今日推荐