第五次实验报告&学习总结
一、实验目的
(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 ...
随机推荐
- 错误:SyntaxError: identifier starts immediately after numeric literal
转载:http://blog.csdn.net/shalousun/article/details/39995443在用JavaScript时,当你使用一个字符传作为函数的参数常常会看到语法错误,在f ...
- 一般处理程序,ajax
一般处理程序调用session: 在.aspx.cs页中读写Session都是Session["***"]就可以获取或者写入.但是在一般处理程序也就是ashx页面中,再这样写的话, ...
- 14 Scrapy中selenium的应用
在通过scrapy框架进行某些网站数据爬取的时候,往往会碰到页面动态数据加载的情况发生,如果直接使用scrapy对其url发请求,是绝对获取不到那部分动态加载出来的数据值.但是通过观察我们会发现,通过 ...
- 转pip更新后ImportError: cannot import name ‘main'
更新pip后,报出:ImportError: cannot import name ‘main' 根据https://www.cnblogs.com/dylan9/p/8981155.html的教程进 ...
- Windows 10安装Python 2.7和MySQL-python
1. 安装Python Download Python 2. 安装MySQL-python pip install wheel (应该是可选) pip install mysqlclient==1.3 ...
- 第01章 重置 root 管理员密码
确定是否为 RHEL 7 系统 重启 Linux 系统主机并出现引导界面时,按下键盘上的 e 键进入内核编辑界面,如图 146 所示. 在 linux16 参数这行的最后面追加“rd.break” ...
- 多线程与UI操作(二)
为了让程序尽快响应用户操作,在开发Windows应用程序时经常会使用到线程.对于耗时的操作如果不使用线程将会是UI界面长时间处于停滞状态,这种情况是用户非常不愿意看到的,在这种情况下我们希望使用线程来 ...
- A Neural Probabilistic Language Model (2003)论文要点
论文链接:http://www.jmlr.org/papers/volume3/bengio03a/bengio03a.pdf 解决n-gram语言模型(比如tri-gram以上)的组合爆炸问题,引入 ...
- 线段树(SegmentTree)基础模板
线段树模板题来源:https://www.lintcode.com/problem/segment-tree-build/description 201. 线段树的构造 /** * Definitio ...
- 数组与pandas模块
'''数组与pandas模块''' # numpy模块:用来做数据分析,对numpy数组(既有行又有列)--矩阵进行科学运算 # tensorflow/pytorch(数学专业/物理专业/计科专业硕士 ...