淮阴工学院
课程实验报告
课程名称
JAVA程序设计教程
班级
实验日期
姓名
学号
实验成绩
实验名称
类的继承性和多态性
实
验
目
的
及
要
求
实验目的:
1.掌握OOP方式进行程序设计的方法,
2.了解类的继承性和多态性的作用。
实验要求:
1.编写体现类的继承性(成员变量,成员方法,成员变量隐藏)的程序。
2.编写体现类多态性(成员方法重载,构造方法重载)的程序。
实
验
环
境
Windows2000 或XP,JDK1.6与Jcreator4.0
实
验
内
容
1. 假如我们在开发一个系统时需要对员工进行建模,员工包含3个属性:姓名、工号以及工资。经理也是员工,除了含有员工的属性外,另外还有一个奖金属性。请使用继承的思想设计出员工类和经理类。要求类中提供必要的方法进行属性访问。
2. 定义一个自己的数学类MyMath。类中提供静态方法max,该方法接收3个同类型的参数(例如整形),返回其中的最大值。
3. 以点类作为基类,从点派生出圆,从圆派生圆柱,设计成员函数输出它们的面积和体积。
算
法
描
述
及
实
验
步
骤
调
试
过
程
及
实
验
结
果
实验1
测试结果:
姓名:张三
工号:1201
工资:3500
姓名:李四
工号:1200
工资:5000
奖金:2000
实验2
测试结果:
请输入三个进行比较的值
23 46 13
这三个数中最大的数是:46
实验3
测试结果:
圆的面积为:12.56
圆柱的体积为:923.1600000000001
总
结
附
录
实验1
代码如下:
public class Employee {
/**
* @param args
*/
protected String xm; //具有保护修饰符的成员变量
protected int gh;
protected int gz;
void setdata(String m,int h,int z){ //设置数据的方法
xm = m;
gh = h;
gz = z;
}
public void print(){ //输出数据的方法
System.out.println("姓名:"+xm);
System.out.println("工号:"+gh);
System.out.println("工资:"+gz);
}
}
public class Manager extends Employee {
/**
* @param args
*/
protected int jj;
public static void main(String[] args) {
// TODO Auto-generated method stub
Employee a = new Employee();
a.setdata("张三", 1201, 3500);
a.print();
Manager b = new Manager();
b.setdata("李四", 1200, 5000); //调用父类的成员方法
b.jj = 2000; //访问本类的成员变量
b.print();
System.out.println("奖金:"+b.jj);
}
}
实验2
代码如下:
import java.util.Scanner;
public class MyMath {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner keyboard = new Scanner(System.in);
System.out.println("请输入三个进行比较的值");
int a = keyboard.nextInt();
int b = keyboard.nextInt();
int c = keyboard.nextInt();
int d =Math.max(a,b); //首先比较前两个数
int max = java.lang.Math.max(d, c); //最大值再与第三个数进行比较
System.out.println("这三个数中最大的数是:"+max);
}
}
实验3
代码如下:
public class Point {
protected int x;
protected int y;
Point(){
this.x=0;
this.y=0;
}
Point(int x,int y){
this.x = x;
this.y = y;
}
}
public class Circle extends Point {
protected int r;
Circle(int r,int x,int y){
super(x,y);
this.r = r;
}
public double area(){
return 3.14 * r * r;
}
}
public class Cylinder extends Circle {
/**
* @param args
*/
protected int h;
Cylinder(int h,int r,int x,int y){
super(r,x,y);
this.h = h;
}
public double volume(){
return area()*h;
}
public static void main(String[] args) {
// TODO Auto-generated method stub
Circle k = new Circle(2,5,5);
Cylinder l = new Cylinder(6,7,8,9);
System.out.print("圆的面积为:");
System.out.println(k.area());
System.out.print("圆柱的体积为:");
System.out.print(l.volume());
}
}
继续阅读
本文档为【类的继承性和多态性】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑,
图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。