第五次实验报告&学习总结

一、实验目的

  (1) 理解抽象类与接口的使用;

  (2)了 解包的作用,掌握包的设计方法。

  二、实验要求

  (1)掌 握使用抽象类的方法。

  (2)掌 握使用系统接口的技术和创建自定义接口的方法。

  (3) 了解Java 系统包的结构。

  (4)掌握创建自定 义包的方法。

  三、实验内容

  ( )抽象类的使用

  1. 设计一个类层次,定义一个抽象类--形状,中包括有求形状的面积的抽象方法。继承该抽象类定义三角型、矩形、圆。分别创建 一个三角形、矩形、圆存对象,将各类图形的面积输出。
   2.编程技巧
  (1)抽象类定 义的方法在具体类要实现;
  (2)使用抽 象类的引用变量可引用子类的对象;
 (3) 通过父类引用子类对象,通过该引用访问对象方法时实际用的是子类的方法。可将所有对象存入到父类定义的数组中

实验代码:

package shiyan5;
import java.util.Scanner;

abstract class Shape
{
  public abstract void area();
  }
class Triangle extends Shape{
             private double a,b,c;
             private double p;
             private double area1=0;
     
      Triangle(double a, double b, double c, double p){
    	  this.a = a;
          this.b = b;
          this.c = c;
          this.p = (a+b+c)/2;
          area1=Math.sqrt(p*(p-a)*(p-b)*(p-c));
      }
      public void area(){
    	  System.out.println("三角形面积="+area1);	
    	  
      }
}
class Rectangle extends Shape{
	private double h,w;
    private double area2=0;
    		
    Rectangle(double h,double w){
    	this.h=h;
    	this.w=w;
    	area2=h*w;
    }
    public void area(){
    	System.out.println("矩形面积="+area2);
    }
      }
class Circle extends Shape{
	private double r;
	private double area3;
	Circle(double r){
		this.r=r;
		area3=Math.pow(r,2)*Math.PI;
	}
		public void area(){
			System.out.print("圆面积="+area3);
		}
}
public class A{
	public void main(String[] args){
		Scanner d=new Scanner(System.in);
        System.out.print("a:" );
        double a=d.nextDouble();
        System.out.print("b:" );
        double b=d.nextDouble();
        System.out.print("c:" );
        double c=d.nextDouble();
        Triangle triangle=new Triangle(a,b,c,(a+b+c)/2);
        System.out.println("三角形面积=");
        triangle.area();
        
        System.out.print("h:" );
        double h=d.nextDouble();
        System.out.print("w:" );
        double w=d.nextDouble();
        Rectangle rectangle=new Rectangle(h,w);
        System.out.print("矩形面积=");
        rectangle.area();
        
        System.out.print("r:" );
        double r=d.nextDouble();
        Circle circle=new Circle(r);
        System.out.print("圆面积=");
        circle.area();
	}
}

运行截图:

(二)使用接口技术
1定义接口Shape, 其中包括一个方法size () ,设计“直线”、“圆”、类实现Shape接口。分别创建一个“直线”、“圆”对象,将各类图形的大小输出。
2.编程技巧
(1) 接口中定义的方法在实现接口的具体类中要重写实现;
(2)利用接口类型的变量可引用实现该接口的类创建的对象

实验代码:

posted @ 2019-10-12 19:21  嘎嘣1  阅读(255)  评论(1编辑  收藏  举报