西 安 邮 电 大 学
(计算机学院)
课内实验报告
实验名称: 类与对象
专业名称: 计算机科学与技术
班 级: 计科1405班
学生姓名: 高宏伟
学 号: 指导教师: 刘霞林
实验日期: 2016.9.29
一、实验目的
通过编程和上机实验理解 Java 语言是如何体现面向对象编程基本思想,了解类的封装方法,以及如何创建类和对象,了解成员变量和成员方法的特性,掌握 OOP 方式进行程序设计的方法。
二、实验要求
编写一个创建对象和使用对象的方法的程序。
编写一个包含类成员和示例成员的程序。
编写一个使用Java包的程序。
三、实验内容
(一)三角形、梯形和圆形的类封装
实验要求:
编写一个Java应用程序,该程序中有3个类:Trangle、Leder和Circle,分别用来刻画“三角形”、“梯形”和“圆形”。具体要求如下:
a)Trangle类具有类型为double的三个边,以及周长、面积属性,Trangle类具有返回周长、面积以及修改三个边的功能。另外,Trangle类还具有一个boolean型的属性,该属性用来判断三个属能否构成一个三角形。
b)Lader类具有类型double的上底、下底、高、面积属性,具有返回面积的功能。
c)Circle类具有类型为double的半径、周长和面积属性,具有返回周长、面积的功能。
程序模板:
AreaAndLength.java
class Trangle
{
double sideA,sideB,sideC,area,length;
boolean boo;
public Trangle(double a,double b,double c)
{
this.sideA=a; //【代码1】参数a,b,c分别赋值给sideA,sideB,sideC
this.sideB=b;
this.sideC=c;
if((sideA+sideB)>sideC&&(sideC+sideB)>sideA&&(sideC+sideA)>sideB)
//【代码2】a,b,c构成三角形的条件表达式
{
boo=true;//【代码3】给boo赋值。
}
else
{
boo=false;【代码4】 //给boo赋值。
}
}
double getLength()
{
return sideA+sideB+sideC;【代码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)
{
this.sideA=a;
this.sideB=b;
this.sideC=c; //【代码6】参数a,b,c分别赋值给sideA,sideB,sideC
if((sideA+sideB)>sideC&&(sideC+sideB)>sideA&&(sideC+sideA)>sideB【代码7】) //a,b,c构成三角形的条件表达式
{
boo=true;【代码8】 //给boo赋值。
}
else
{
boo=false;【代码9】 //给boo赋值。
}
}
}
class Lader
{
double above,bottom,height,area;
Lader(double a,double b,double h)
{
this.above=a