JAVA 2上机实验2
实验名称:
类与对象
实验目的:使用类来封装对象的属性和功能;掌握类变量和实例变量,以及类方法和实例方法的区别;掌握使用package和import语句。
实验内容:
1、编写一个Java应用程序,该程序中有3个类:Trangle
、Lader和Circle,分别用来刻画“三角形”“梯形”和“圆形”。具体要求如下:
Trangle类具有类型为double的三个边,以及周长、面积属性,Trangle
类具有返回周长、面积以及修改三个边的功能。另外该类还具有一个boolean型的属性,该属性用来判断三个数能否构成一个三角形。
Lader类具有类型为double的上底、下底、高、面积属性,具有返回面积的功能。
Circle类具有类型为double的半径、周长和面积属性,具有返回周长、面积功能。
注:后附有参考程序。
2.、编写一个矩阵类,其中封装有一个代表矩阵的二维数组。并提供一个实现两相同行列的矩阵的相加方法。利用随机函数产生两个3行4列的矩阵,验证类设计。
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()。
} }
5、package语句、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);
}
}
加载中,请稍候......