JAVA实验8.docx
- 文档编号:28626609
- 上传时间:2023-07-19
- 格式:DOCX
- 页数:16
- 大小:19.34KB
JAVA实验8.docx
《JAVA实验8.docx》由会员分享,可在线阅读,更多相关《JAVA实验8.docx(16页珍藏版)》请在冰豆网上搜索。
JAVA实验8
实验八JAVA面向对象编程(3)
【实验目的】
1.掌握JAVA语言类的定义和使用。
2.掌握JAVA语言对象的声明和使用。
3.掌握JAVA语言构造方法的概念和使用。
4.掌握类及其成员的访问控制符的区别和使用。
【预习内容】
1.JAVA类的定义格式;
2.JAVA对象的使用三步骤:
声明、创建以及初始化;
3.访问控制修饰符:
public、private和protected的功能和区别;
4.JAVA构造方法的概念和特点;
5.JAVA多态的概念,及重载和覆盖的区别;
【实验内容及步骤】
上机编程题
1、三角形、梯形和圆形的类封装:
分别定义三角形、梯形和圆形类,要求每个类中包含构造方法、求周长及面积的方法。
最后在主方法中为三角形、梯形和圆形类创建对象并打印输出各种图形的周长及面积。
该程序的模板代码如下:
请将其补充完整并调试运行。
classTrangle
{
doublesideA,sideB,sideC,area,length;
booleanboo;
publicTrangle(doublea,doubleb,doublec)
{
【代码1】//参数a,b,c分别赋值给sideA,sideB,sideC
if(【代码2】)//a,b,c构成三角形的条件表达式
{
【代码3】//给boo赋值。
}
else
{
【代码4】//给boo赋值。
}
}
doublegetLength()
{
【代码5】//方法体,要求计算出length的值并返回
}
publicdoublegetArea()
{
if(boo)
{
doublep=(sideA+sideB+sideC)/2.0;
area=Math.sqrt(p*(p-sideA)*(p-sideB)*(p-sideC));
returnarea;
}
else
{
System.out.println("不是一个三角形,不能计算面积");
return0;
}
}
publicvoidsetABC(doublea,doubleb,doublec)
{
【代码6】//参数a,b,c分别赋值给sideA,sideB,sideC
if(【代码7】)//a,b,c构成三角形的条件表达式
{
【代码8】//给boo赋值。
}
else
{
【代码9】//给boo赋值。
}
}
}
classLader
{
doubleabove,bottom,height,area;
Lader(doublea,doubleb,doubleh)
{
【代码10】//方法体,将参数a,b,c分别赋值给above,bottom,height
}
doublegetArea()
{
【代码11】//方法体,,要求计算出area返回
}
}
classCircle
{
doubleradius,area;
Circle(doubler)
{
【代码12】//方法体
}
doublegetArea()
{
【代码13】//方法体,要求计算出area返回
}
doublegetLength()
{
【代码14】//getArea方法体的代码,要求计算出length返回
}
voidsetRadius(doublenewRadius)
{
radius=newRadius;
}
doublegetRadius()
{
returnradius;
}
}
publicclassLX7_1
{
publicstaticvoidmain(Stringargs[])
{
doublelength,area;
Circlecircle=null;
Trangletrangle;
Laderlader;
【代码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);
}
}
[实验参考代码]
1、【代码1】:
sideA=a;
sideB=b;
sideC=c;
【代码2】:
a+b>c&&a+c>b&&c+b>a
【代码3】:
boo=true;
【代码4】:
boo=false;
【代码5】:
if(boo)
{
length=sideA+sideB+sideC;
returnlength;
}
else
{
System.out.println("不是一个三角形,不能计算周长");
return0;
}
【代码6】:
sideA=a;sideB=b;sideC=c;
【代码7】:
a+b>c&&a+c>b&&c+b>a
【代码8】:
boo=true;
【代码9】:
boo=false;
【代码10】:
above=a;
bottom=b;
height=h;
【代码11】:
area=(above+bottom)/2*height;
returnarea;
【代码12】:
radius=r;
【代码13】:
return3.14*radius*radius;
【代码14】:
return3.14*2*radius;
【代码15】:
circle=newCircle(10);
【代码16】:
trangle=newTrangle(3,4,5);
【代码17】:
lader=newLader(3,4,10);
【代码18】:
length=circle.getLength();
【代码19】:
area=circle.getArea();
【代码20】:
length=trangle.getLength();
【代码21】:
area=trangle.getArea();
【代码22】:
area=lader.getArea();
【代码23】:
trangle.setABC(12,34,1);
【代码24】:
area=trangle.getArea();
【代码25】:
length=trangle.getLength();
/*
*三角形类
*/
publicclassTrangle{
doublesideA,sideB,sideC,area,length;
booleanboo;
publicTrangle(doublea,doubleb,doublec){
sideA=a;
sideB=b;
sideC=c;
if(a+b>c&&a+c>b&&c+b>a)
{
boo=true;
}
else
{
boo=false;
}
}
publicdoublegetLength(){
if(boo){
length=sideA+sideB+sideC;
returnlength;
}
else{
System.out.println("不是一个三角形,不能计算周长");
return0;
}
}
publicdoublegetArea(){
if(boo){
doublep=(sideA+sideB+sideC)/2.0;
area=Math.sqrt(p*(p-sideA)*(p-sideB)*(p-sideC));
returnarea;
}
/*
*梯形类
*/
publicclassLader{
doubleabove,bottom,heigth,area;
Lader(doublea,doubleb,doubleh){
above=a;
bottom=b;
heigth=h;
}
doublegetArea(){
area=(above+bottom)/2*heigth;
returnarea;
}
}
/*
*圆类
*/
publicclassCircle{
doubleradius,area;
Circle(doubler){
radius=r;
}
publicdoublegetArea(){
return3.14*radius*radius;
}
publicdoublegetLength(){
return3.14*2*radius;
}
voidsetRadius(doublenewRadius){
radius=newRadius;
}
doublegetRadius(){
returnradius;
}
}
/*
*主类
*/
publicclassLX7_2{
publicstaticvoidmain(String[]args){
doublelength,area;
Circlecircle=null;
Trangletrangle;
Laderlader;
circle=newCircle(10);
trangle=newTrangle(3,4,5);
lader=newLader(3,4,10);
length=circle.getLength();
System.out.println("圆的周长:
"+length);
area=circle.getArea();
System.out.println("圆的面积:
"+area);
length=trangle.getLength();
System.out.println("三角形周长:
"+length);
area=trangle.getArea();
System.out.println("三角形的面积:
"+area);
area=lader.getArea();
System.out.println("梯形面积:
"+area);
trangle.setABC(12,34,1);
length=trangle.getLength();
}
}
1、定义父类People,分别定义People类的子类ChinaPeople,AmericanPeople和BeijingPeople并分别重写父类中的各个方法。
最后在主方法中分别创建各子类的对象并调用各自的方法打印输出信息。
该程序的模板代码如下:
请将其补充完整并调试运行。
classPeople
{
protecteddoubleweight,height;
publicvoidspeakHello()
{
System.out.println("yayawawa");
}
publicvoidaverageHeight()
{
height=173;
System.out.println("averageheight:
"+height);
}
publicvoidaverageWeight()
{
weight=70;
System.out.println("averageweight:
"+weight);
}
}
classChinaPeopleextendsPeople
{
【代码1】//重写publicvoidspeakHello()方法,要求输出类似“你好,吃了吗”这样的
//汉语信息
【代码2】//重写publicvoidaverageHeight()方法,要求输出类似
//“中国人的平均身高:
168.78厘米”这样的汉语信息
【代码3】//重写publicvoidaverageWeight()方法,
//要求输出类似“中国人的平均体重:
65公斤”这样的汉语信息
publicvoidchinaGongfu()
{
【代码4】//输出中国武术的信息,例如:
"坐如钟,站如松,睡如弓"等
}
}
classAmericanPeopleextendsPeople
{
【代码5】//重写publicvoidspeakHello()方法,要求输出类似
//“Howdoyoudo”这样的英语信息。
【代码6】//重写publicvoidaverageHeight()方法
【代码7】//重写publicvoidaverageWeight()方法
publicvoidamericanBoxing()
{
【代码8】//输出拳击的信息,例如,“直拳”、“钩拳”等
}
}
classBeijingPeopleextendsChinaPeople
{
【代码9】//重写publicvoidspeakHello()方法,要求输出类似“您好”这样的汉语信息
【代码10】//重写publicvoidaverageHeight()方法
【代码11】//重写publicvoidaverageWeight()方法
publicvoidbeijingOpera()
{
【代码12】//输出京剧的信息
}
}
publicclassExample
{
publicstaticvoidmain(Stringargs[])
{
ChinaPeoplechinaPeople=newChinaPeople();
AmericanPeopleamericanPeople=newAmericanPeople();
BeijingPeoplebeijingPeople=newBeijingPeople();
chinaPeople.speakHello();
americanPeople.speakHello();
beijingPeople.speakHello();
chinaPeople.averageHeight();
americanPeople.averageHeight();
beijingPeople.averageHeight();
chinaPeople.averageWeight();
americanPeople.averageWeight();
beijingPeople.averageWeight();
chinaPeople.chinaGongfu();
americanPeople.americanBoxing();
beijingPeople.beijingOpera();
beijingPeople.chinaGongfu();
}
1.答案:
【代码1】:
publicvoidspeakHello()
{
System.out.println("你好,吃饭了吗?
");
}
【代码2】:
publicvoidaverageHeight()
{
height=173;
System.out.println("中国人的平均身高:
"+height+"厘米");
}
【代码3】:
publicvoidaverageWeight()
{
weight=67.34;
System.out.println("中国人的平均体重:
"+weight+"公斤");
}
【代码4】:
System.out.println("坐如钟,站如松,睡如弓");
【代码5】:
publicvoidspeakHello()
{
System.out.println("HowdoYoudo");
}
【代码6】:
publicvoidaverageHeight()
{
height=188;
System.out.println("AmerianAverageheight:
"+height+"cm");
}
【代码7】:
publicvoidaverageWeight()
{
weight=80.23;
System.out.println("AmerianAverageweight:
"+weight+"kg");
}
【代码8】:
System.out.println("直拳、钩拳");
【代码9】:
publicvoidspeakHello()
{
System.out.println("您好");
}
【代码10】:
publicvoidaverageHeight()
{
height=16;
System.out.println("北京人的平均身高:
"+height+"厘米");
}
【代码11】:
publicvoidaverageWeight()
{
weight=6;
System.out.println("北京人的平均体重:
"+weight+"公斤");
}
【代码12】:
System.out.println("京剧术语");
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- JAVA 实验