个人实验 github地址:https://github.com/quchengyu/cher

一、实践目的

1.掌握类的定义,对象的创建。

2.掌握实现封装、继承、多态的方法,掌握各种修饰符的使用。

3.掌握将对象数组作为方法的参数和返回值。

4.掌握抽象类与接口的概念及实现,理解动态绑定机制。

5.掌握通过组合与继承,实现代码可复用。

 

二、实践要求

综合使用封装、继承、多态、抽象类与接口、组合及继承等面向对象知识,给出所选项目的面向对象设计与实现。

 

三、项目需求

所选项目名称:矩形类

设计一个名为Rectangle的类表示矩形。这个类包括:

  • 两个名为width和height的double型数据域,分别表示矩形的宽和高。默认值为1.
  • 创建默认矩形的无参构造方法。
  • 一个创建width和height为指定值的矩形的构造方法。
  • 一个名为getArea()的方法,返回这个矩形的面积。
  • 一个名为getPerimeter()的方法,返回这个矩形的周长。

画出该类的UML图。实现这个类。编写一个测试程序,创建两个Rectangle对象---一个矩形的宽为4而高为40,另一个矩形的宽为3.5而高为35.9。显示每个矩形的宽、高、面积和周长。

四、项目设计方案

       首先,定义一个矩形类,并定义width和height。并在矩形类中定义getArea()和getPerimeter()方法。再定义一个display()返回方法。主类TestRectangle测试矩形类。

五、核心算法详细设计     

1、创建Rectangle

根据试验内容可知,此次做的是矩形类,包括名为width和height的double型数据域,一个名为getArea()的方法,返回这个矩形的面积。一个名为getPerimeter()的方法,返回这个矩形的周长。

class Rectangle//定义一个矩形类

{

    double width, length;//定义两个整形变量width,length;

    Rectangle(){width=1;length=1;}//无参的构造函数

    Rectangle(double z,double w)//z、w表示矩形的长和宽

    {

    width=z;

    length=w;//将z,w分别赋值给width,length

    }

       

    public double getArea()//创建getArea()方法

    {

   

     return width*length;

   

    }

    public double getPerimeter()//创建getPerimeter()方法

    {

        double p;

    p=width*2+length*2;

    return p;

    }

 

2、矩形类的输出

       另外需要一个方法,输出这些值。注意getArea()和getPerimeter()是方法,不能直接调用,方法中必须有返回值。

如,

void display()//矩形类的display()方法

    {      

        System.out.println("矩形长="+width+"宽="+length+"面积="+this.getArea()+"周长="+p);//输出矩形上一个点的坐标,矩形的长和宽

    }就错了。P是局部变量。

应该改为:

void display()//矩形类的display()方法

    {      

        System.out.println("矩形长="+width+"宽="+length+"面积="+this.getArea()+"周长="+this.getPerimeter());//输出矩形上一个点的坐标,矩形的长和宽   

    }

 

3、功能测试

剩下的就开始对主函数main()的编写了。

       public class TestRectangle {

   

    public static void main(String args[])

    {

        Rectangle r1= new Rectangle(4,40);//为参数创建了一个矩形的对象,并赋值给引用

        r1.display();//对象r1调用display()方法

        Rectangle r2= new Rectangle(3.5,35.9);

        r2.display();//对象r2调用display()方法

    }

}//201303014044计科高职13-2曲承玉

 

 

六、完整源码

       完整源码:给出完整的源代码。如:

class Rectangle//定义一个矩形类

{

    double width, length;//定义两个整形变量width,length;

    Rectangle(){width=1;length=1;}//无参的构造函数

    Rectangle(double z,double w)//z、w表示矩形的长和宽

    {

    width=z;

    length=w;//将z,w分别赋值给width,length

    }

       

    public double getArea()//创建getArea()方法

    {

   

     return width*length;

   

    }

    public double getPerimeter()//创建getPerimeter()方法

    {

        double p;

    p=width*2+length*2;

    return p;

    }

    void display()//矩形类的display()方法

    {      

        System.out.println("矩形长="+width+"宽="+length+"面积="+this.getArea()+"周长="+this.getPerimeter());//输出矩形上一个点的坐标,矩形的长和宽   

    }

}

 

   

public class TestRectangle {

   

    public static void main(String args[])

    {

        Rectangle r1= new Rectangle(4,40);//为参数创建了一个矩形的对象,并赋值给引用

        r1.display();//对象r1调用display()方法

        Rectangle r2= new Rectangle(3.5,35.9);

        r2.display();//对象r2调用display()方法

    }

}//201303014044计科高职13-2曲承玉

                        

      

七、实践总结

       本次试验,主演了解了方法的创建和调用。并明白局部变量不能直接调用。

 

posted @ 2015-05-01 09:15  曲承玉的软件工程  阅读(1344)  评论(5编辑  收藏  举报