第五次实验报告&学习总结
一、实验目的
(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)利用接口类型的变量可引用实现该接口的类创建的对象
实验代码:
第五次实验报告&学习总结的更多相关文章
- 第五周实验报告&学习总结
实验三 String类的应用 实验目的 掌握类String类的使用: 学会使用JDK帮助文档: 实验内容 1.已知字符串:"this is a test of java".按要求执 ...
- 20145330《Java程序设计》第五次实验报告
20145330<Java程序设计>第五次实验报告 实验五 Java网络编程及安全 实验内容 1.掌握Socket程序的编写: 2.掌握密码技术的使用: 3.设计安全传输系统 4.结队伙伴 ...
- 20145240 《Java程序设计》第五次实验报告
20145240 <Java程序设计>第五次实验报告 北京电子科技学院(BESTI)实验报告 课程:Java程序设计 班级:1452 指导教师:娄嘉鹏 实验日期:2016.05.06 实验 ...
- 20145320《Java程序设计》第五次实验报告
20145320<Java程序设计>第五次实验报告 北京电子科技学院(BESTI)实验报告 课程:Java程序设计 班级:1453 指导教师:娄嘉鹏 实验日期:2016.05.06 18: ...
- Java第五次实验报告
Java第五次实验报告 实验一 实验内容 两人一组结对编程: 参考 结对实现中缀表达式转后缀表达式的功能 MyBC.java 结对实现从上面功能中获取的表达式中实现后缀表达式求值的功能,调用MyDC. ...
- 实验楼课程管理程序-深入学习《C++ Primer第五版》实验报告&学习笔记1
本片博客为实验楼的训练营课程深入学习<C++ Primer第五版>的实验报告和学习笔记. 原课程地址为:https://www.shiyanlou.com/courses/405# 原文出 ...
- 第五次实验报告 java 网络编程
20145306 第五次 java 实验报告 实验内容 客户端与服务器连接,客户端中输入明文,利用DES算法加密,DES的秘钥用RSA公钥密码中服务器的公钥加密,计算明文的Hash函数值,一起传送给客 ...
- 20145317彭垚 《Java程序设计》第五次实验报告
20145317彭垚实验五 Java网络编程及安全 北京电子科技学院(BESTI)实验报告 课程:Java程序设计 班级:1453 指导教师:娄嘉鹏 实验日期:2016.05.06 18:30-21: ...
- 《JAVA程序设计》第五次实验报告
20145333 实验五 Java网络编程及安全 北京电子科技学院(BESTI)实验报告 课程:Java程序设计 班级:1453 指导教师:娄嘉鹏 实验日期:2016.05.06 18:30-21:3 ...
随机推荐
- JavaSE--异常机制
异常就是程序在运行时出现的不正常情况.发生在运行时期,java程序在运行时期发生的不正常情况,此时java就按照面向对象的思想对不正常现象进行描述和对象的封装.异常的由来:问题也是现实生活中一个具体的 ...
- 转换byte(十进制)为图形(大小写字母,符号)
/** * 转换byte(十进制)为字母 */ public static String ByteToLetter (byte[] chars) { String Letter = "&qu ...
- openlayers之地图截图
方法1 //this.map._this为初始化地图对象 this.map._this.once('postcompose', function (event) { var canvas = even ...
- 转载Google TPU论文
选自 Google Drive 作者:Norman P. Jouppi 等 痴笑@矽说 编译 该论文将正式发表于 ISCA 2017 从去年七月起,Google就号称了其面向深度学习的专用集成电路(A ...
- kafka核心原理总结
新霸哥发现在新的技术发展时代,消息中间件也越来越受重视,很多的企业在招聘的过程中着重强调能够熟练使用消息中间件,所有做为一个软件开发爱好者,新霸哥在此提醒广大的软件开发朋友有时间多学习. 消息中间件利 ...
- 数据库学习笔记3 基本的查询流 2 select lastname+','+firstname as fullname order by lastname+','+firstname len() left() stuff() percent , select top(3) with ties
数据库学习笔记3 基本的查询流 2 order by子句对查询结果集进行排序 多列和拼接 多列的方式就很简单了 select firstname,lastname from person.pers ...
- CDN和浏览器缓存
1,CDN 旨在解决的最重要的问题是什么,我们称之为网络延迟,通过网络获取资源总是比从本地获取慢,无论服务器是在同一个局域网中还是位于世界的另一个角落,都是如此.这里的速度差异是 IT 行业的一个核心 ...
- Windows 10安装Python 2.7和MySQL-python
1. 安装Python Download Python 2. 安装MySQL-python pip install wheel (应该是可选) pip install mysqlclient==1.3 ...
- ubuntu搭建gerrit+gitweb代码审核系统
一.Gerrit的简介 Gerrit是Google开源的一套基于web的代码review工具,它是基于git的版本管理系统.Google开源Gerrit旨在提供一个轻量级框架,用于在代码入库之前对每个 ...
- 使用C#表达式树为两个对象的相同属性赋值
//缓存表达式树 private static Dictionary<string, object> objCache = new Dictionary<string, object ...