Java实验---包与接口以及常用工具类的使用

一、实验目的

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

二、实验环境

     Eclipse

三、实验内容:

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

1.自定义包的声明方式

       <package>  <自定义包名>

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

2.创建自定义包 Mypackage

在存放源程序的文件夹中建立一个子文件夹 Mypackage。例如,在“D:\java\javacode”文件夹之中创建一个与包同名的子文件夹 MypackageD:\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;//返回转化为字符串的年-月-日 
        } 
	}

1)      编译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 KY6_1.thisyear()-birth.year(); //返回当前年与出生年的差即年龄 
      } 
      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)       程序运行的结果有没有问题?问题出在哪里?请在实验报告中指出。

答:程序结果有问题。问题出在:birth.year() -KY6_1.thisyear(),应该为:KY6_1.thisyear()-birth.year(),年龄是没有附负数的。

(二)使用接口技术

定义两个接口,其中各包括一个抽象方法分别用来完成两个数的加法和减法操作,然后创建一个类KY6_3来实现这两个接口中的抽象方法。编写程序KY6_3.java,将源程序写在实验报告中。
interface Computable1{
	 int sum(int x,int y);
}
interface Computable2{
    int subtract(int a,int b);
}
public class KY6_3 {

	public static void main(String[] args) {
		number n;
		n=new number();
		count c;
		c=new count();
		System.out.println("两个数相加的结果为:"+n.sum(4,5));
        System.out.println("两个数相减的结果为:"+c.subtract(6,3));
	 }
}
public class count implements Computable2{
    public int subtract(int a,int b){
 	   return a-b;
     }
}
public class number implements Computable1 {
    public int sum(int x,int y){
  	return x+y;  
     }
}
运行结果:

(三)Math类的使用

1.利用下面的关键代码编写一个完整的程序KY6_4.java,理解Math类的使用。

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

运行结果如下:

四)String类与StringBuffer类的使用

1. 利用下面的关键代码编写一个完整的程序KY6_5.java,理解String类与StringBuffer类的使用。
public class KY6_5 {
	public static void main(String[] args) {
		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);
	}
}

运行结果:


包与接口实验报告 实验 包与接口实验目的】 1. 了解Java(package)、接口(interface)的作用。 2. 掌握接口设计方法。 【实验要求】 1. 了解Java 系统的结构。 2. 掌握创建自定义的方法。 3. 掌握使用系统接口的技术和创建自定义接口的方法。 【实验步骤】 一.了解并使用Java 的系统 1. API 接口、异常处理的作用 接口的集合。利用可以把常用或功能相似的放在一个中。Java 语言提供系统,其中含了大量的,可以在编写Java 程序时直接引用它们。为便于管理和使用它们,将这些分为了不同的又称库或API ,所谓API(Application Program Interface)即应用程序接口。API —方面提供丰富的与方法供大家使用,如画图形、播放声音等,另一方面又负责和系统软硬件打交道,圆满实现用户程序的功能。所有Java API 都以“java.”开头,以区别用户创建的。 常见Java系统及其作用: 1)语言(java.lang):提供的支持括字符串处理、多线程处理、异常处理、数学函数处理等,可以用它简单地实现Java程序的运行平台。 2)实用程序(java.util):提供的支持括哈希表、堆栈、可变数组、时间和日期等。 输入输出(java.io):用统一的流模型来实现所有格式的I/O,括文件系统、网络、输入。 3)网络(java.net):支持Internet的TCP/IP协议,用于实现Socket编程;提供了与Internet的接口,支持URL连接,WWW的即时访问,并且简化了用户/服务器模型的程序设计。 4)抽象图形用户接口(javax.swing):实现了不同平台的计算机的图形用户接口部件,括窗口、菜单、滚动条、对话框等,使得 Java可以移植到不同的平台。 接口解决了Java 不支持多重继承的问题,可以通过实现多个接口达到与多重继承相同的功能。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值