当前位置:文档之家› java程序设计类的多态、抽象类、接口和包的使用

java程序设计类的多态、抽象类、接口和包的使用

java程序设计类的多态、抽象类、接口和包的使用
java程序设计类的多态、抽象类、接口和包的使用

实验六:类的多态、抽象类、接口和包的使用

一、实验目的

熟练地掌握Java语言的掌握类的多态、抽象类、接口和包的使用的编程。通过实验掌握编写程序的思想方法,体会编程的技巧,加深Java语言的应用能力。

二、实验环境

硬件环境:微型计算机。

软件环境:Windows 2000或以上版本,JKD, Jcreator

三、实验内容与要求

用Java语言编程实现以下问题:

1、利用多态编写程序,定义一个JuLi类,只包含两个方法distance(double x,double y)求出点(x,y)到原点之间的距离和distance(double x,double y,double z)求出点(x,y,z)到原点之间的距离。再定义一个public类,用类名去创建两个对象,输出其两值。提示:开平方根用Math.sqrt(9.0),注意所有的数据一定要用double类型

程序:

class JuLi

{

double distance(double x,double y)

{

return Math.sqrt(x*x+y*y);

}

double distance(double x,double y,double z)

{

return Math.sqrt(x*x+y*y+z*z);

}

}

public class Distance_DuoTai

{

public static void main(String args[])

{

JuLi s=new JuLi();

System.out.println("点(x,y)到原点之间的距离"+s.distance(3.0,4.0));

System.out.println("点(x,y,z)到原点之间的距离"+s.distance(3.0,4.0,12.0));

}

}

运行结果:

2、声明一个抽象类Shape,有抽象成员方法circle_area和circle_girth。再声明类Circle为Shape的子类,其中成员变量r以及一个构造方法

还有成员方法circle_area和circle_girth,并具体实现了相应的抽象方法用来求圆的面积和圆的周长,再定义一个public类,写一个main()方法在这个方法中用类创建对象,并求出面积和周长并输出

程序:

abstract class Shape

{

abstract double circle_area();

abstract double circle_girth();

}

class Circle extends Shape

{

final double PI=3.14;

double r;

Circle(double r1)

{

r=r1;

}

double circle_area()

{

return PI*r*r;

}

double circle_girth()

{

return 2*PI*r;

}

}

public class abstract_test

{

public static void main(String args[])

{

Circle a=new Circle(3.2);

System.out.println("圆面积为:"+a.circle_area());

System.out.println("圆面积为:"+a.circle_girth());

}

}

运行结果:

3、利用接口编写程序:定义一个重力ZhongLi这样一个接口,包含一个常量g为9.8和一个公有的抽象方法Li,再定义一个密度MiDu这样一个接口,包含一个公有的抽象方法Du。再定义一个JiSuan类去继承上面两个接口,同时在这个类中,定义一个变量m(物体的重量)和体积v(物体的体积),和一个构造方法使m和v赋值,同时实现Li这个方法,求出物体的重力(=重量*g),和Du这个方法,求出物体的密度(重量/体积).再定义一个public类

在main()中用类名去创建对象,输出对象的重力和密度。

程序:

interface ZhongLi

{

final double g=9.8;

public abstract double Li();

}

interface MiDu

{

public abstract double Du();

}

class JiSuan implements ZhongLi,MiDu

{

double m,v;

JiSuan(double m1,double v1)

{

m=m1;

v=v1;

}

public double Li()

{

return m*g;

}

public double Du()

{

return m/v;

}

}

public class WuLi_Interface

{

public static void main(String args[])

{

JiSuan a=new JiSuan(9.8,9.8);

System.out.println("物体的重力为:"+a.Li());

System.out.println("物体的密度为:"+a.Du());

}

}

运行结果:

4、定义一个person类,包含姓名和一个构造方法方法,使其成员变量初始化再定义一个zhigong类,去继承person类,在这个类中再包含部门名称department

基本工资salary、奖金awards和一个构造方法方法,使其成员变量初始化,以及一个

float nai_shui()方法,在这个方法中求出纳税的金额,并返回其值

全月应纳税所得额税率(%)

总工资超过22000,纳税=(总工资-2000)*0.25-1375

总工资超过7000,纳税=(总工资-2000)*0.25-375

总工资超过4000,纳税=(总工资-2000)*0.15-125

总工资超过2500,纳税=(总工资-2000)*0.1-25

总工资超过2000,纳税=(总工资-2000)*0.05

其它纳税为0

在定义一个public类,含有main()方法,在这个方法中,用zhigong类创建三个不同对象,

最后分别输出他们的纳税额

程序:

class person

{

String name;

person(String n)

{

name=n;

}

}

class zhigong extends person

{

String department;

double salary,awards;

zhigong(String n,String d,double s,double a)

{

super(n);

department=d;

salary=s;

awards=a;

}

double nai_shui()

{

double g;

g=salary+awards;

if(g<=2000)

return 0;

else

if(g<=2500)

return (g-2000)*0.05;

else

if(g<=4000)

return (g-2000)*0.1-25;

else

if(g<=7000)

return (g-2000)*0.15-125;

else

if(g<=22000)

return (g-2000)*0.25-375;

else

return (g-2000)*0.25-1375;

}

}

public class zhigong_shui

{

public static void main(String args[])

{

zhigong a1=new zhigong("u","dd",1500.0,200.0);

zhigong a2=new zhigong("h","dx",4500.0,600.0);

zhigong a3=new zhigong("c","dj",500000.0,200000.0);

System.out.println("姓名:"+https://www.doczj.com/doc/a917245530.html,+" 公司名称:"+a1.department+" 基本工资:"+a1.salary+" 奖金:"+a1.awards+"职工纳税额为"+a1.nai_shui());

System.out.println("姓名:"+https://www.doczj.com/doc/a917245530.html,+" 公司名称:"+a2.department+" 基本工资:"+a2.salary+" 奖金:"+a2.awards+"职工纳税额为"+a2.nai_shui());

System.out.println("姓名:"+https://www.doczj.com/doc/a917245530.html,+" 公司名称:"+a3.department+" 基本工资:"+a3.salary+" 奖金:"+a3.awards+"职工纳税额为"+a3.nai_shui());

}

}

运行结果:

相关主题
文本预览
相关文档 最新文档