一、实验目的

  (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. JS基础_其他进制的数字(了解)

    <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...

  2. loj 2336「JOI 2017 Final」绳

    loj 首先,所有位置最多被染色一次,因为要染多次的话,还不如一开始就染成最终的颜色.并且你可以一开始就染好色 因为最终长度为2,那么如果染完后这个序列可以被折完,那么首先最多只有两种颜色,还有就是要 ...

  3. springboot的一些注解

    springboot注解以及一些晦涩难理解的点介绍 @Validated 用于注入数值校验的注解(JSR303数据校验) @PropertySource 用于加载指定的配置文件,例如@Property ...

  4. 淘宝flexible.js的使用

    首先大家最关注的怎么使用,原理不原理是后面的事 比如设计稿量来的宽度是100px 那么我们布局的时候,就这么写{width:1.3333rem},1.3333rem是由100/75算出来的,以此类推2 ...

  5. 进程管理工具之supervisor[详解]

    原文链接:https://blog.csdn.net/weixin_42390791/article/details/88866237 一.问题背景1.背景​   如何才能让一个进程摆脱终端,获得相对 ...

  6. Linux上安装postgres 10.5

    由于接触了华为的elk大数据平台,里面封装的是postgres ,就想着安装一下,熟悉一下postgres数据. 安装包下载:https://www.postgresql.org/ftp/source ...

  7. C语言的unsigned做双目运算符的奇怪问题

    首先看代码: #include <stdio.h> void main() { ; unsigned ; ) { printf("%d-%d=%d,大于0", num1 ...

  8. Shell编程备份数据库

    案例: 在/usr/sbin/建立Shell文件 备份后查看目录: 然后进行crontab任务调度: #每天凌晨两点十分调度一次 * * * /usr/sbin/mysql_db.sh

  9. centos7 部署haproxy

    第一章 :haproxy介绍 1.1 简介 HAProxy 是一款提供高可用性.负载均衡以及基于TCP(第四层)和HTTP(第七层)应用的代理软件,支持虚拟主机,它是免费.快速并且可靠的一种解决方案. ...

  10. DockerScan:Docker安全分析&测试工具

    DockerScan:Docker安全分析&测试工具 今天给大家介绍的是一款名叫DockerScan的工具,我们可以用它来对Docker进行安全分析或者安全测试. 项目主页 http://gi ...