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

一、实验目的:

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

    

二、实验环境:

eclipsec

 

三、实验内容:

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

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;//返回转化为字符串的年--

        }

   }

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 (String n1, int y, int m, int d)

        {    //初始化变量与对象

name = n1;

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

答:实验结果如下:

 

 

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

答:有错。把计算年龄的那一句换成 return KY6_1.thisyear() - birth.year();就可以了。

 

 

(二)使用接口技术

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

答:程序如下:

package Mypackage;

 

import org.omg.CORBA.PUBLIC_MEMBER;

 

interface ch1{

double add(double a,double b);

}

interface ch2{

double minus(double a,double b);

}

class KY6_3 implements ch1,ch2{

public double add(double a1,double a2)

{

return a1+a2;

}

public double minus(double b1,double b2)

{

return b1-b2;

}

public static void main(String args[]){

KY6_3 s=new KY6_3();

System.out.println("此两数的和为:"+s.add(32.2,48));

System.out.println("此两数的差为:"+s.minus(100,36.4));

}

}

 

(三)Math类的使用 

 1.利用下面的关键代码编写一个完整的程序KY6_4.java,理解Math类的使用。http://www.docin.com/p-653938628.html
 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将程序的运行结果写在实验报告中。

答:代码如下:

package Mypackage;

import java.math.*;

import java.lang.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());

}

}

结果如下:

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.6630895744603476

 

 

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


 2将程序的运行结果写在实验报告中。

package Mypackage;

 

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)); //返回以上字符串中第12-15个字符

StringBuffer sf=new StringBuffer("Hello World!");

sf.append(" Hello Java!");//追加字符串“Hello Java”到当前对象的末尾

sf.insert(12," And");//在第12个字符后插入“And”

System.out.println(sf);

System.out.println(sf.charAt(0));//获得指定位置的字符,即索引号为0的字符

sf.setCharAt(0,'h');//重置索引号为0处的字符

System.out.println(sf.charAt(0));

System.out.println(sf);

}

}

结果如下:

Length: 37

SubString: demo

Hello World! And Hello Java!

H

h

hello World! And Hello Java!

 

(五)思考题

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

答:Java.math.*类中:

Math.sqrt() : 计算平方根

Math.cbrt() : 计算立方根

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

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语言中如何表示字符串?

答:Java中定义字符串其实也就是“String类的用法”。

赋值:

String s1 = "fdsfd";

String s2 = new String("fdsdfds");

String s3 = new String(s2);

 

获取长度

int size = s1.size();

 

 

 

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

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

String s=new String()

然后用String本身的方法来确定该字符串的长度:

s.length();

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
包与接口实验报告 实验 包与接口实验目的】 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、付费专栏及课程。

余额充值