java实验四 对象和类抽象类、接口与包.doc
文本预览下载声明
实验四 对象和类(抽象类、接口与包)
一、实验目的
1、熟练掌握抽象类abstract的概念。
2、熟练掌握接口interface的概念。
3、熟练包package的概念以及编译运行的方法。
4、熟练掌握内部类inner class的概念。
5、熟练掌握递归的概念。
6、理解面向对象的程序设计方法。
二、实验内容与要求
1.编写求解几何图形(如三角形,矩型,圆,多边型)的周长、面积的应用程序,要求用到继承、多态、抽象类、接口、内部类等面向对象程序设计技术的特点。
程序如下:
abstract class Geometric{ //定义抽象类
abstract double getPerimter();
abstract double getArea();
}
interface MY{ //定义接口
float getarea();
float getperimter();
}
class sanjiaoxing extends Geometric{ //三角形类继承抽象类
private float a;
private float b;
private float c;
sanjiaoxing(float x1,float x2,float x3){
a=x1;b=x2;c=x3;
}
double getPerimter(){
return a+b+c;
}
double getArea(){
float p=(a+b+c)/2;
return Math.sqrt(p*(p-a)*(p-b)*(p-c));
}
}
class yuanxing extends Geometric{ //圆类继承抽象类
private float radius;
yuanxing(float a){
radius=a;
}
double getPerimter(){
double p;
p=2*3.14f*radius;
return p;
}
double getArea(){
return 3.14f*radius*radius;
}
}
class juxing implements MY{ //矩形类实现接口
private float height;
private float width;
juxing(float a,float b){
height=a;width=b;
}
public float getperimter(){
return 2*(width+height);
}
public float getarea(){
return width*height;
}
}
class abc{
public static void main(String args[]){
sanjiaoxing obj1=new sanjiaoxing(3,4,5);
System.out.println(当三角形三边是3,4,5时:);
System.out.println(边长是:+obj1.getPerimter());
System.out.println(面积是:+obj1.getArea());
yuanxing obj2=new yuanxing(4);
System.out.println(当圆的半径是4时:);
System.out.println(周长是:+obj2.getPerimter());
System.out.println(面积是:+obj2.getArea());
juxing obj3=new juxing(3,4);
System.out.println(当矩形长和宽是3,4时:);
System.out.println(周长是:+obj3.getperimter());
System.out.println(面积是:+obj3.getarea());
}
}
结果如下:
出现的问题1:需要定义抽象类和接口,并用三角形、矩形和圆形来实现里边定义的方法。
2、重写上面的程序,要求三角形,矩型,圆,多边型的类放到不同的包中,用包的技术组织程序的设计。同时要求程序能从键盘上接受数据以便求解不同的几何图形的周长面积。
程序如下:
这是在a包中的三角形类:
package a;
import java.util.Scanner;
public class sanjiaoxing {
float a;
float b;
float c;
public void shuru()
{
显示全部