武汉科技大学 Java实验报告 实验三

  • 格式:doc
  • 大小:181.00 KB
  • 文档页数:8
Manager(String name,int num,double income) {
super(name,num,income);
}
double getPay() {
income=8000;
return income;
}
void print() {
System.out.println("Manager→姓名:"+name+"编号:"+num+"薪水:"+getPay());
=name;
this.sex=sex;
主要实验记录及个人小结(包括部分实验源程序、调试结果及实验结果分析等)
this.age=age;
}
}
class Student extends Person{
publicString sno;
publicString classno;
Student(String name,String sex,int age,String sno,String classno){
}
}
class Engineer extends Staff {
Engineer(String name,int num,double income) {
super(name,num,income);
}
double getPay()Fra bibliotek{income=income*100;
主要实验记录及个人小结(包括部分实验源程序、调试结果及实验结果分析等)
步骤(1):定义类Person,并添加以下公共域变量
public String name; publicStringsex; public int age;
添加构造方法Person(String name,char sex,int age){……}
步骤(2):基于类Person派生类Student,并添加如下公共域变量和方法
Circle c = new Circle();
Triangle t = new Triangle();
Line l = new Line();
doStuff(c);
doStuff(t);
doStuff(l);
}
}
abstract class Shape{void draw(){System.out.println("Shape Drawing");}}
程序代码:
(1)课本例题源代码
public class TestVirtualInvoke
{
static void doStuff(Shape s){s.draw();}
public static void main(String[] args){
Circle c = new Circle();
Triangle t = new Triangle();
return income;
}
void print() {
System.out.println("Salesman→姓名:"+name+"编号:"+num+"薪水:"+getPay());
}
}
public class List {
public static void main(String[] args){
Circle c = new Circle();
Triangle t = new Triangle();
Line l = new Line();
doStuff(c);
doStuff(t);
doStuff(l);
}
}
interface Shape{public void draw();}
class Circle implements Shape
{public void draw(){System.out.println("Draw Circle");}}
class Triangle implements Shape
{public void draw(){System.out.println("Draw Three Lines");}}
添加抽象方法abstract double getPay();abstract void print();
步骤(2):分别定义Staff的子类Manager,Engineer,Salesman,让它们继承父类的属性并分别将抽象的构造方法根据各自特点将抽象方法具体化。
主要实验记录及个人小结(包括部分实验源程序、调试结果及实验结果分析等)
class Circle extends Shape
{void draw(){System.out.println("Draw Circle");}}
class Triangle extends Shape
{void draw(){System.out.println("Draw Three Lines");}}
步骤(3):定义一个包含main方法的Application程序类TestStudentPerson,初
始化一个学生类对象数组,并利用循环语句显示所有学生基本信息。
程序代码:
class Person{
publicString name;
publicString sex;
publicint age;
Person(String name,String sex,int age){
}
}
public class TestStudentPerson {
public static void main(String[] args) {
int i;
Student card[]=new Student[3];
card[0]=new Student("刘棋","男",21,"201112135056","电信(DB)1102");
class Line extends Shape
{void draw(){System.out.println("Draw Line");}}
(3)使用接口实现:
public class TestInterfaceInvoke {
static void doStuff(Shape s){s.draw();}
主要实验记录及个人小结(包括部分实验源程序、调试结果及实验结果分析等)
class Line implements Shape
{public void draw(){System.out.println("Draw Line");}}
程序截图:
思考题:
某小型公司,主要有三类人员:经理、兼职技术人员和兼职推销员。这三类人员共痛拥有的相关属性:姓名、编号;相关方法:获取当月薪水的getPay()方法、显示个人信息的toString()方法。人员编号基数为1000,每创建一个人员实例对象,其编号属性的值顺序加1。月薪计算方法:经理拿固定月薪8000元;兼职技术人员按每小时100元领取月薪;兼职推销人员的月薪按当月的销售额的4%提成。
(2)抽象类编程代码:
主要实验记录及个人小结(包括部分实验源程序、调试结果及实验结果分析等)
public class TestAbstractInvoke {
static void doStuff(Shape s){s.draw();}
public static void main(String[] args){
publicString classno; public String sno;
publicvoid updateAge(int age){……}
voidprint(){… …}
Student(String name,char sex,int age,String sno,String name)
{ super(name,sex,age);… ….}
信息科学与工程学院《Java程序设计》上机实验报告
专业班级姓名学号
实验时间指导教师成绩
实验名称
实验三面向对象程序设计的继承、多态等特性的练习
实验目的
1)掌握类的继承机制。
2)熟悉类中成员变量和方法的访问控制。
3)熟悉方法或构造方法多态性。
4)熟悉接口的定义方法。
主要实验记录及个人小结(包括部分实验源程序、调试结果及实验结果分析等)
class Triangle extends Shape
{void draw(){System.out.println("Draw Three Lines");}}
class Line extends Shape
{void draw(){System.out.println("Draw Line");}}
要求:根据题意,自己确定需要定义的类及各类的属性、构造方法和其他方法,并编写Java Applcation程序实现功能:存储若干个职工信息,然后分行显示所有职工的姓名、编号、月工资等相关信息,另外计算所有职工的月薪总和并显示出来。
实验步骤:
步骤(1):定义抽象类Staff作为父类,并定义通用的域变量name,num,income,添加构造方法Staff(String name,int num,double income){……}
super(name,sex,age);
this.sno=sno;
this.classno=classno;
}
public void updateAge(int age){this.age=age;}