加载中…
个人资料
活到老学到老
活到老学到老
  • 博客等级:
  • 博客积分:0
  • 博客访问:1,588
  • 关注人气:21
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

【实验课件】实验2 类与对象

(2011-09-13 20:37:12)
标签:

杂谈

分类: 第四章类、对象和接口

JAVA 2上机实验2

实验名称:  类与对象

实验目的:使用类来封装对象的属性和功能;掌握类变量和实例变量,以及类方法和实例方法的区别;掌握使用packageimport语句。

实验内容:

1、编写一个Java应用程序,该程序中有3个类:Trangle LaderCircle,分别用来刻画“三角形”“梯形”和“圆形”。具体要求如下:

Trangle类具有类型为double的三个边,以及周长、面积属性,Trangle 类具有返回周长、面积以及修改三个边的功能。另外该类还具有一个boolean型的属性,该属性用来判断三个数能否构成一个三角形。

Lader类具有类型为double的上底、下底、高、面积属性,具有返回面积的功能。

Circle类具有类型为double的半径、周长和面积属性,具有返回周长、面积功能。

注:后附有参考程序。

2.、编写一个矩阵类,其中封装有一个代表矩阵的二维数组。并提供一个实现两相同行列的矩阵的相加方法。利用随机函数产生两个34列的矩阵,验证类设计。

3、创建简单的银行帐户类,包括开户人、帐号和存款余额三个属性,以及查询余额,存款,取款等方法。创建两个帐户验证类的设计。

4、类变量和实例变量、类方法和实例方法的使用:按程序模版的要求编写源文件,要特别注意程序的输出结果,并能正确解释输出的结果。

程序模版:请按照模版要求,将【代码】替换为程序代码。

Example.java

class A

{  【代码1             //声明一个float型实例变量a

   【代码2             //声明一个float型类变量b,static变量b

    void setA(float a)

    {   【代码3        //将参数a的值赋值给成员变量a

    }

    void setB(float b)

    {   【代码4       //将参数b的值赋值给成员变量b

    }

    float getA()

    {    return a;    }

    float getB()

    {   return b;    }

    void inputA()

    {   System.out.println(a);    }

    static void inputB()

    {  System.out.println(b);    }

}

public class Example

{     public static void main(String args[])

    {  【代码5            //通过类名操作类变量b,并赋值100

      【代码6            //通过类名调用方法inputB()

       A cat=new A();

       A dog=new A();

       【代码7    //cat象调用方法setA(int a)cat的成员a的值设置为200

       【代码8    //cat调用方法setB(int b)cat的成员b的值设置为400

       【代码9    //dog象调用方法setA(int a)dog的成员a的值设置为150

       【代码10   //dog调用方法setB(int b)dog的成员b的值设置为300

       【代码11   //cat调用inputA() 

       【代码12   //cat调用inputB() 

       【代码13   //dog调用inputA() 

       【代码14   //dog调用inputB()  

    } }

5package语句、import语句使用:

1)将模版1 给出的Java源文件命名为SquareEquation.java,将编译后得到的字节码文件复制到c:/1000/tom/jiafei目录中;

2将模版2给出的Java源程序SunRise.java保存到D:\2000中。在编译模版2给出的源文件之前要重新设置classpath

模版1

SquareEquation.java

package tom.jiafei;

public class SquareEquation

{   double a,b,c;

    double root1,root2;

    boolean boo;

    public  SquareEquation(double a,double b,double c)

    {   this.a=a;    this.b=b;    this.c=c;

       if(a!=0)   { boo=true;  }   

       else  {    boo=false;  }

    }

    public void  getRoots()

    {  if(boo)

        {  System.out.println("是一元2次方程");

           double disk=b*b-4*a*c;

           if(disk>=0)

             { root1=(-b+Math.sqrt(disk))/(2*a);

               root2=(-b-Math.sqrt(disk))/(2*a);

               System.out.printf("方程的根:%f,%f\n",root1,root2);  }

           else {  System.out.printf("方程没有实根\n");    }

        }

        else   { System.out.println("不是一元2次方程");   }

    }

   public void setCoefficient(double a,double b,double c)

    {   this.a=a;   this.b=b;     this.c=c;

       if(a!=0)

        {  boo=true;        }   

       else {  boo=false;   }

    }}

模版2

SunRise.java

import tom.jiafei.*;

class SunRise

{  public static void main(String args[ ])

    {   SquareEquation equation=new SquareEquation(4,5,1);

        equation.getRoots();

        equation.setCoefficient(-3,4,5);

        equation.getRoots();    }}

参考程序1

请按照模版要求,将【代码】替换为程序代码。

AreaAndLength.java

class Trangle 

{   double sideA,sideB,sideC,area,length;

   boolean boo;

   public  Trangle(double a,double b,double c)

   {  【代码1 //参数a,b,c分别赋值给sideA,sideB,sideC

     if(【代码2) //a,b,c构成三角形的条件表达式

     { 【代码3 //boo赋值。   }   

    else   { 【代码4 //boo赋值。    }   }

   double getLength()

   {   【代码5 //方法体,要求计算出length的值并返回   }

   public double  getArea()

   { if(boo)

        {  double p=(sideA+sideB+sideC)/2.0;

          area=Math.sqrt(p*(p-sideA)*(p-sideB)*(p-sideC)) ;

          return area;      }

      else  { System.out.println("不是一个三角形,不能计算面积");

          return 0;  } }

   public void setABC(double a,double b,double c)

   { 【代码6 //参数a,b,c分别赋值给sideA,sideB,sideC

     if(【代码7) //a,b,c构成三角形的条件表达式

     {   【代码8 //boo赋值。     }   

    else

     {  【代码9 //boo赋值。     }   }}

class Lader

{   double above,bottom,height,area;

    Lader(double a,double b,double h)

    {【代码10 //方法体,将参数a,b,c分别赋值给above,bottom,height    }

    double getArea()    {      【代码11 //方法体,,要求计算出area返回    }}

class Circle

{  double radius,area;

    Circle(double r)   {    【代码12 //方法体  }

    double getArea()  {    【代码13 //方法体,要求计算出area返回    }

    double getLength()  {  【代码14 //getArea方法体的代码,要求计算出length返回  }

    void setRadius(double newRadius) {   radius=newRadius;  }

    double getRadius()   {    return radius;  }}

public class AreaAndLength

{ public static void main(String args[])

    {  double length,area;

       Circle circle=null;

       Trangle trangle;

       Lader lader;

       【代码15 //创建对象circle

       【代码16 //创建对象trangle

       【代码17 //创建对象lader

       【代码18 // circle调用方法返回周长并赋值给length

        System.out.println("圆的周长:"+length);

       【代码19 // circle调用方法返回面积并赋值给area

        System.out.println("圆的面积:"+area);

       【代码20 // trangle调用方法返回周长并赋值给length

        System.out.println("三角形的周长:"+length);

       【代码21 // trangle调用方法返回面积并赋值给area

        System.out.println("三角形的面积:"+area);

       【代码22 // lader调用方法返回面积并赋值给area

        System.out.println("梯形的面积:"+area);

       【代码23 // trangle调用方法设置三个边,要求将三个边修改为12,34,1

       【代码24 // trangle调用方法返回面积并赋值给area

        System.out.println("三角形的面积:"+area);

       【代码25 // trangle调用方法返回周长并赋值给length

        System.out.println("三角形的周长:"+length);

    }

}

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有