类和对象、继承和多态性实验
【代码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调用方法设置三个边,要求将三个边修改为
(2) 三角形、梯形和圆形的类封装
【实验目的】 使用类来封装对象的属性和功能。 【实验任务】
编写一个Java程序,该程序中有3个类:Trangle、Lader和 Circle,分别用来刻画“三角形”、“梯形”和“圆形”。具体要求如 下: Trangle类具有类型为double的三个边,以及周长、面积属性, Trangle类具有返回周长、面积以及修改属性用来判断三个数是否构成一个三角形。 Lader类具有类型为double的上底、下底、高、面积属性,具有返 回面积的功能。 Circle类具有类型为double的半径、周长和面积属性,具有返回周 长、面积的功能。
【实验内容】
仔细阅读下面程序,将程序中的代码补充完整,编辑并运行程序查看结 果。 //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;
【代码1】 //初始化外半径
color = c; } public double getInnerRadius( ) {
【代码2】 //返回内半径
} public double getOuterRadius( ) { return outerRadius; } public void setInnerRadius(double iRadius) {
【实验内容】
仔细阅读下面程序,将程序中的代码补充完整,编辑并运行程序查看结 果。 public class Ring { private double innerRadius; private double outerRadius; public String color; public Ring(double iRadius, double oRadius, String c) { innerRadius = iRadius;
12,34,1。 【代码24】 // trangle调用方法返回面积并赋值给area System.out.println("三角形的面积:"+area); 【代码25】 // trangle调用方法返回周长并赋值给length System.out.println("三角形的周长:"+length); } }
【代码4】 //设置圆环ring的外半径为6
ring.setColor("blue"); System.out.println("圆环的内半径: " + ring.getInnerRadius( )); System.out.println("圆环的外半径: " + ring.getOuterRadius( )); System.out.println("圆环的颜色: " + ring.color); System.out.println("圆环的面积: " + ring.getArea()); } }
(4) 子类的派生与方法覆盖
innerRadius = iRadius; } public void setOuterRadius(double oRadius) { outerRadius = oRadius; } public void setColor(String c) {
【代码3】 //设置颜色
} public double getArea() { return (outerRadius * outerRadius innerRadius * innerRadius) * 3.1415; } public static void main(String[] args) { Ring ring = new Ring(5,8,"red"); System.out.println("圆环的内半径: " + ring.getInnerRadius( )); System.out.println("圆环的外半径: " + ring.getOuterRadius( )); System.out.println("圆环的颜色: " + ring.color); System.out.println("圆环的面积: " + ring.getArea() + "\n"); ring.setInnerRadius(4);
(3) 方法重载
【实验目的】
(1) 理解方法重载的含义; (2) 学会使用方法重载。
【实验任务】
编写一个Java程序,反映出方法重载的使用特点,该程序包含多个 重载的加法运算,如整形加法、实形加法以及混合加法运算等。从中体 会方法重载的用法和优点。
【实验内容】
仔细阅读下面程序,将程序中的代码补充完整,编辑并运行程序查看结 果。 // Overload.java class Overload { int m,n; Overload( ) { m = 0; n = 0; } Overload(int a, int b) { 【代码1】 //初始化变量m 【代码2】 //初始化变量n } int add( ) { System.out.println("无参加法 "+m+"+"+n+"="+(m+n)); return m+n; }
} } 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() {
int add(int a, int b) { System.out.println("整型加法 "+a+"+"+b+"="+(a+b)); return a+b; } double add(double a, double b) { System.out.println("实型加法 "+a+"+"+b+"="+(a+b)); return a+b; } double add(int a, int b, double c) { System.out.println("混合加法 "+a+"+"+b+"+"+c+"="+(a+b+c)); 【代码3】 //返回加法运算的结果 } public static void main(String[] args) { int ix,iy; double dx,dy; 【代码4】 //声明一个Overload对象并初始化 ix = ov.add(); iy = ov.add(3,6); dx = ov.add(2.1,5.3); dy = ov.add(3, 6, 2.2); } }