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

一、实验目的:

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

二、实验环境:

Eclipse

三、实验内容:

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

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 = new KY6_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()                                   //计算年龄
        {
            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)       程序运行的结果有没有问题?问题出在哪里?请在实验报告中指出。

答:输出结果今年年龄不能为负数,返回值应该是return KY6_1.thisyear() - birth.year();


(二)使用接口技术

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

package Myjava;

public class KY6_3 implements Addition,Subtraction {
	public static void main(String args[]) {
		float x,y;
		x = 1.256f;
		y = 54.1354f;
		KY6_3 p = new KY6_3();
		System.out.println("两个数相加为:"+p.add(x,y));
		System.out.println("两个数相加为:"+p.sub(x,y));
	}
	public float add (float a,float b) {
			 float sum;
			 sum = a + b;
			 return sum;
	}
	public float sub(float a,float b) {
			 float sub;
			 sub = a - b;
			 return sub;
	}
}

interface Subtraction{
	float sub(float a,float b);
}

interface Addition{
	float add(float a,float 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

eis:2.718281828459045

πis:3.141592653589793

0.5699641253238485

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

HelloWorld! And Hello Java!

H

h

helloWorld! And Hello Java!


四、思考题

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

        java.lang.Math类提供的相关的运算方法

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

        用String类和StringBuffer类,且用String定义的字符串不可更改,StringBuffer定义的字符串可以更改。

猜你喜欢

转载自blog.csdn.net/qq_40956679/article/details/80865563