java程序设计类的多态、抽象类、接口和包的使用
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 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());
}
}
运行结果: