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

合集下载
相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

实验六:类的多态、抽象类、接口和包的使用
一、实验目的
熟练地掌握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("姓名:"++" 公司名称:"+a1.department+" 基本工资:"+a1.salary+" 奖金:"+a1.awards+"职工纳税额为"+a1.nai_shui());
System.out.println("姓名:"++" 公司名称:"+a2.department+" 基本工资:"+a2.salary+" 奖金:"+a2.awards+"职工纳税额为"+a2.nai_shui());
System.out.println("姓名:"++" 公司名称:"+a3.department+" 基本工资:"+a3.salary+" 奖金:"+a3.awards+"职工纳税额为"+a3.nai_shui());
}
}
运行结果:。

相关文档
最新文档