zoukankan      html  css  js  c++  java
  • Java语言程序设计 上机实验4 掌握声明接口、一个类实现接口的声明和使用方法

    Java语言程序设计 上机实验4

    实验目的

    理解接口的作用,理解接口和实现接口的类的关系,掌握声明接口、一个类实现接口的声明和使用方法;熟悉Java语言包和实用包中的常用类。

    实验内容:(*)为选做

    1. 声明圆柱体类Cylinder,继承椭圆类Ellipse(实现周长Perimeter接口和面积Area接口),为圆柱体类设计较为全面的构造方法,并实现体积Volume接口,计算表面积和体积。
    2. Java的若干关键字(15个以上)保存在一个字符串数组中,对其按升序排列,再采用顺序查找二分法查找,判断一个字符串是否是Java关键字。
    3. (*) 调试和修改” 实验4-src.zip”中的源代码,使GroupSort程序能正确执行。再在GroupSort.java中增加按姓名查找的模糊查询和按出生日期排序的功能。比如,在Person对象数组中模糊查找名字包含”小”字的对象。

    实验要求:

    1. 在实验报告中给出程序运行结果截图。

    2. 源程序代码附到实验报告的最后。

    3. 认真填写实验报告并妥善存档,在上机实验课之前发送电子版实验报告至 wsycup@foxmail.com

    注意邮件标题附件实验报告文件名均为:

    Java2实验报告N_学号_姓名

    其中N为阿拉伯数字,指第几次实验,例如

    Java2实验报告3_ 2012010400_李雷

    请严格按照规定的格式发送邮件(注意标题中Java”后的数字“2”)邮件标题不符合格式要求等同于未交作业,并在规定的时间发送实验报告邮件,过期无效。

    4. 实验报告雷同者将不能得到相应的平时分。

    附录:实验报告

    实验题目__实验四___

    学号_2014011329_    姓名_许恺__     班级__计算机14-1____     时间__2016.4.26____

    实验题目解答

    一.

     

    二.

     

    :源程序

    一.

    Cylinder.Java
    package one;
    
    public class Cylinder extends Ellipse implements IVolume{
    
        /**
         * @param args
         */
        int high;
        Cylinder(){
            this.high=6;
        }
        public double Volume(){
            return radius_a*radius_b*3.14*high;
        }
        public double Area(){
            return radius_a*radius_b*3.14*2+high*Perimeter();
        }
        public static void main(String[] args) {
            // TODO Auto-generated method stub
            IVolume A=new Cylinder();
            IVolume V=new Cylinder();
            System.out.println("表面积是"+A.Area());
            System.out.println("体积是"+V.Volume());
        }
    
    }
    Ellipse.java
    package one;
    
    public class Ellipse implements IPerimeter,IArea{ //椭圆类
        protected double radius_a; //a轴半径
        protected double radius_b; //b轴半径
        public Ellipse(double radius_a) { //构造方法
            this.radius_a = radius_a;
        }
        public Ellipse(double radius_a, double radius_b) { //构造方法
            this.radius_a = radius_a; this.radius_b = radius_b;
        }
        public Ellipse() { this(4,4); }
        public String toString() {
            return "a轴半径"+this.radius_a+",b轴半径"+this.radius_b;
        }
        public double Area() { //计算椭圆面积,覆盖父类的抽象方法
            return Math.PI*this.radius_a*this.radius_b;
        }
        public double Perimeter(){ //计算椭圆周长,覆盖父类的抽象方法
            return Math.PI*(this.radius_a+this.radius_b);
        }
    }
    
    IArea.java
    package one;
    
    public interface IArea {
        public double Area();
    }
    
    IPerimeter.java
    package one;
    
    
    public interface IPerimeter {
        public double Perimeter();
    }
    
    IVolume.java
    package one;
    
    public interface IVolume {
        public double Volume();
        public double Area();
    }
    
    
    二.
    package two;
    import java.util.Arrays;
    public class Q2 {
        
        public static void main(String[] args) {
            // TODO Auto-generated method stub
            String[] a=new String[20];
            String b=new String();
            String c=new String();
            b="g";
            a[0]="a";a[1]="b";a[2]="c";a[3]="d";a[4]="e";a[5]="f";a[6]="g";a[7]="h";
            a[8]="i";a[9]="j";a[10]="k";a[11]="l";a[12]="m";a[13]="n";a[14]="o";
            for(int i=0;i<15;i++){
                for(int j=i+1;j<15;j++){
                    if(a[i].compareTo(a[j])>0){
                        c=a[i];
                        a[i]=a[j];
                        a[j]=c;
                    }
                }
            }
            if(sxcz(b,a)){
                System.out.println("顺序查找法已查找到");
            }
            else{
                System.out.println("顺序查找未找到");
            }
            if(efcz(b,a)){
                System.out.println("二分法查找法已查找到");
            }
            else{
                System.out.println("二分法查找未找到");
            }
        }
        public static boolean sxcz(String b,String[] a){
            for(int i=0;i<20;i++){
                if(b==a[i]){
                    return true;
                }
            }
            return false;
        }
        public static boolean efcz(String b,String[] a){
            int front=0;
            int end=14;
            int mid=7;
            for(;end>=front;){
                if(a[mid]==b)
                    return true;
                else if(a[mid].compareTo(b)>0){
                    end=mid-1;
                    mid=(mid+front)/2;
                }
                else{ 
                    front=mid+1;
                    mid=(front+end)/2;
                }
            }
            return false;
        }
    }

     

    反思与总结

    这次实验锻炼了对于接口的使用,也让我更加理解接口的功能和在整个java体系中的位置和作用,我觉的对于接口的使用和理解还可以更加的深入一些,让大家我们更加体会到java语言的强大。

  • 相关阅读:
    slice()、substring()、substr()的区别用法
    程序员如何快速上手一个自己不太熟悉的新项目?有什么技巧?
    计算重复字符串长度
    计算机视觉算法研发岗招聘要求
    C++进阶STL-2
    C++进阶STL-1
    拼硬币
    序列找数
    寻找合法字符串
    字符串是否由子串拼接
  • 原文地址:https://www.cnblogs.com/xukaiae86/p/6443107.html
Copyright © 2011-2022 走看看