一、实验目的

  (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)利用接口类型的变量可引用实现该接口的类创建的对象

实验代码:

第五次实验报告&学习总结的更多相关文章

  1. 第五周实验报告&学习总结

    实验三 String类的应用 实验目的 掌握类String类的使用: 学会使用JDK帮助文档: 实验内容 1.已知字符串:"this is a test of java".按要求执 ...

  2. 20145330《Java程序设计》第五次实验报告

    20145330<Java程序设计>第五次实验报告 实验五 Java网络编程及安全 实验内容 1.掌握Socket程序的编写: 2.掌握密码技术的使用: 3.设计安全传输系统 4.结队伙伴 ...

  3. 20145240 《Java程序设计》第五次实验报告

    20145240 <Java程序设计>第五次实验报告 北京电子科技学院(BESTI)实验报告 课程:Java程序设计 班级:1452 指导教师:娄嘉鹏 实验日期:2016.05.06 实验 ...

  4. 20145320《Java程序设计》第五次实验报告

    20145320<Java程序设计>第五次实验报告 北京电子科技学院(BESTI)实验报告 课程:Java程序设计 班级:1453 指导教师:娄嘉鹏 实验日期:2016.05.06 18: ...

  5. Java第五次实验报告

    Java第五次实验报告 实验一 实验内容 两人一组结对编程: 参考 结对实现中缀表达式转后缀表达式的功能 MyBC.java 结对实现从上面功能中获取的表达式中实现后缀表达式求值的功能,调用MyDC. ...

  6. 实验楼课程管理程序-深入学习《C++ Primer第五版》实验报告&学习笔记1

    本片博客为实验楼的训练营课程深入学习<C++ Primer第五版>的实验报告和学习笔记. 原课程地址为:https://www.shiyanlou.com/courses/405# 原文出 ...

  7. 第五次实验报告 java 网络编程

    20145306 第五次 java 实验报告 实验内容 客户端与服务器连接,客户端中输入明文,利用DES算法加密,DES的秘钥用RSA公钥密码中服务器的公钥加密,计算明文的Hash函数值,一起传送给客 ...

  8. 20145317彭垚 《Java程序设计》第五次实验报告

    20145317彭垚实验五 Java网络编程及安全 北京电子科技学院(BESTI)实验报告 课程:Java程序设计 班级:1453 指导教师:娄嘉鹏 实验日期:2016.05.06 18:30-21: ...

  9. 《JAVA程序设计》第五次实验报告

    20145333 实验五 Java网络编程及安全 北京电子科技学院(BESTI)实验报告 课程:Java程序设计 班级:1453 指导教师:娄嘉鹏 实验日期:2016.05.06 18:30-21:3 ...

随机推荐

  1. django-Auth模块(详细介绍)

    转载自https://www.cnblogs.com/liuqingzheng/articles/9628105.html 1 Auth模块是什么 Auth模块是Django自带的用户认证模块: 我们 ...

  2. 如何在Python中快速画图——使用Jupyter notebook的魔法函数(magic function)matplotlib inline

    如何在Python中快速画图--使用Jupyter notebook的魔法函数(magic function)matplotlib inline 先展示一段相关的代码: #we test the ac ...

  3. 埋在 MYSQL 数据库应用中的17个关键问题!

    Mysql的使用非常普遍,跟mysql有关的话题也非常多,如性能优化.高可用性.强一致性.安全.备份.集群.横向扩展.纵向扩展.负载均衡.读写分离等.要想掌握其中的精髓,可得花费不少功力,虽然目前流行 ...

  4. ubuntu 创建定时备份pg数据库定时任务

    ubuntu创建定时备份数据库定时任务 一.命令文件 创建db_back.sh #!/bin/bash echo "start backup" /usr/lib/postgresq ...

  5. MySQL 下载与安装

    从MySQL官网下载安装文件,我的电脑是window10 64位的,下载社区版本,选择mysql community server,再下载64位的. 官网链接:https://www.mysql.co ...

  6. 超详细思路讲解SQL语句的查询实现,及数据的创建。

    最近一直在看数据库方面的问题,总结了一下SQL语句,这是部分详细的SQL问题,思路讲解: 第一步:创建数据库表,及插入数据信息 --Student(S#,Sname,Sage,Ssex) 学生表 CR ...

  7. Spark查询yarn任务日志

    查看日志:yarn logs -applicationId application_xxx 导入到外部文件 yarn logs -applicationId application_xxx >& ...

  8. 11条sql技巧

    1. 负向条件查询不能使用索引 select * from order where status!=0 and stauts!=1 not in/not exists都不是好习惯 可以优化为in查询: ...

  9. 会了docker你又多了一个谈资(下)

    上篇文章介绍了docker 基本使用及安装([跳转☞会了docker你又多了一个谈资(上)],这篇重点说明下docker使用技巧. 问题1怎么用docker搭建多台服务器? 只需要 docker ru ...

  10. 17AJAX&JSON

    1. 概念 ASynchronous JavaScript And XML    异步的JavaScript 和 XML1. 异步和同步:客户端和服务器端相互通信的基础上 客户端必须等待服务器端的响应 ...