实验目的

理解抽象类与接口的使用;
了解包的作用,掌握包的设计方法。

实验要求

掌握使用抽象类的方法。
掌握使用系统接口的技术和创建自定义接口的方法。
了解 Java 系统包的结构。
掌握创建自定义包的方法。

实验内容

(一)抽象类的使用

设计一个类层次,定义一个抽象类--形状,其中包括有求形状的面积的抽象方法。 继承该抽象类定义三角型、矩形、圆。 分别创建一个三角形、矩形、圆存对象,将各类图形的面积输出。

注:三角形面积s=sqrt(p*(p-a)*(p-b)*(p-c)) 其中,a,b,c为三条边,p=(a+b+c)/2

2.编程技巧

(1)    抽象类定义的方法在具体类要实现;
(2) 使用抽象类的引用变量可引用子类的对象;
(3) 通过父类引用子类对象,通过该引用访问对象方法时实际用的是子类的方法。可将所有对象存入到父类定义的数组中。

(二)使用接口技术

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

实验代码(1)

package Jeff;

import java.util.Scanner;
class Triangle extends Shape{
private double a;
private double b;
private double c;
private double p=(a+b+c)/2;
private double s=Math.sqrt(p*(p-a)*(p-b)*(p-c));
public Triangle(double a,double b,double c) {
this.a=a;
this.b=b;
this.c=c;
this.p=(a+b+c)/2;
this.s=Math.sqrt(p*(p-a)*(p-b)*(p-c));
}
public double getArea() {
return s;
}
}
class Rectangle extends Shape{
private double width;
private double height;
public Rectangle(double width,double height) {
this.width=width;
this.height=height;
}
public double getArea() {
return width*height;
}
}
class Circle extends Shape{
private double radius;
public Circle(double r) {
this.radius=r;
}
public double getArea() {
return Math.PI*radius*radius;
}
}
abstract class Shape{
public void area() {
System.out.println("面积="+this.getArea());
} public abstract double getArea();
} package Jeff; public class test {
public static void main(String[] args) {
Circle d=new Circle(5);
d.area();
Rectangle d1=new Rectangle(7,5);
d1.area();
Triangle d2=new Triangle(3,4,5);
d2.area();
}
}

运行结果截图:

实验代码(2)

package Jeff;

public class jiekou {
interface Shape{
public void size();
}
class Stright implements Shape{
private double length;
public Stright(double length) {
this.length=length;
}
public void size() {
System.out.println("直线的长度="+length);
}
}
class Circle implements Shape{
private double radius;
public Circle(double radius) {
this.radius=radius;
}
public void size() {
System.out.println("圆的面积="+Math.PI*radius*radius);
}
} public class demo {
public void main(String[] args) {
Shape a=new Stright(7);
Shape b=new Circle(5);
a.size();
b.size();
}
} }

运行结果截图:

学习总结:

学到了什么:

1.异常的相关知识:

1)概念:异常是导致程序中断运行的一种指令流。

2)异常处理格式:

try{
//有可能出现异常的语句
}catch(异常类 异常对象){
//编写异常的处理语句
}[ catch(异常类 异常对象){
//编写异常的处理语句
}catch(异常类 异常对象){
//编写异常的处理语句
}...]
[finally{
一定会运行到的程序代码 ;
}]

2.throws与throw关键字:

格式:

public 返回值类型   方法名称(参数列表...) throws 异常类{}

class Math{
public int div(int i,int j) throws Exception{ //方法可以不处理异常
int temp = i/j;
return temp;
}
}
使用 throws 关键字后,可以不使用 try...catch 语句进行异常的捕获及处理。
throw 不会单独使用

学习不足:

1、无法解决代码出现的小问题,如调试;

2、不能及时完成作业

3、上课有点走神

……

学习改进:

1、坚持每天看一期有关Java的视频;

2、逛学习论坛,学习一点课外相关知识;

3、每天完成一个小编程代码;

4、熟悉ecilps用法及其帮助文档

······

实验报告(五)&第七周学习总结的更多相关文章

  1. 实验报告5&第七周课程总结

    实验四 类的继承 实验目的 理解抽象类与接口的使用: 了解包的作用,掌握包的设计方法. 实验要求 掌握使用抽象类的方法. 掌握使用系统接口的技术和创建自定义接口的方法. 了解 Java 系统包的结构. ...

  2. 实验报告一&第三周学习总结

    一.实验报告 1.打印输出所有的"水仙花数",所谓"水仙花数"是指一个3位数,其中各位数字立方和等于该数本身.例如,153是一个"水仙花数" ...

  3. 第七周学习总结&JAVA实验五报告。

    JAVA实验报告五: 实验四 类的继承 实验目的 理解抽象类与接口的使用: 了解包的作用,掌握包的设计方法. 实验要求 掌握使用抽象类的方法. 掌握使用系统接口的技术和创建自定义接口的方法. 了解 J ...

  4. 第七周&实验报告五

    实验四 类的继承 •实验目的 •理解抽象类与接口的使用: •了解包的作用,掌握包的设计方法. •实验要求 •掌握使用抽象类的方法. •掌握使用系统接口的技术和创建自定义接口的方法. •了解 Java ...

  5. 20145304 Java第七周学习报告

    20145304<Java程序设计>第七周学习总结 教材学习内容总结 1.时间的度量: 格林威治标准时间(GMT)通过观察太阳而得,其正午是太阳抵达天空最高点之时,因地球的公转与自传,会造 ...

  6. 20155303 2016-2017-2 《Java程序设计》第七周学习总结

    20155303 2016-2017-2 <Java程序设计>第七周学习总结 教材学习中的问题和解决过程 『问题一』:SimpleDateFormat中每个字符的含义都是什么? 『问题一解 ...

  7. 201871010132-张潇潇-《面向对象程序设计(java)》第六-七周学习总结

    201871010132-张潇潇-<面向对象程序设计(java)>第六-七周学习总结 项目 内容 这个作业属于哪个课程 https://www.cnblogs.com/nwnu-daizh ...

  8. 201871010134-周英杰《面向对象程序设计(java)》第六到七周学习总结

    201871010134-周英杰<面向对象程序设计(java)>第六到七周学习总结 项目 内容 这个作业属于哪个课程 https://www.cnblogs.com/nwnu-daizh/ ...

  9. 201871010136-赵艳强《面向对象程序设计(java)》第六,七周学习总结

            201871010136-赵艳强<面向对象程序设计(java)>第六七周学习总结 项目 内容 这个作业属于哪个课程 <任课教师博客主页链接> https://w ...

  10. 20145320 《Java程序设计》第七周学习总结

    20145320 <Java程序设计>第七周学习总结 教材学习内容总结 13章 时间与日期 时间的度量: 格林威治标准时间(GMT时间),现已不作为标准时间使用. 世界时(UT),秒的单位 ...

随机推荐

  1. 【Vue 2.X】基于input[type='number']封装parseFloat、parseInt-自定义指令系列(一)

    一.parseFloat 效果:限制负值输入,且输入值不为空时自动保留两位小数,等同于js的parseFloat(value).toFixed(2) 使用:与v-model配合使用,v-parseFl ...

  2. JVM(14)之 类加载机制

    开发十年,就只剩下这套架构体系了! >>>   从本篇博文开始,我们就进入虚拟机类加载机制的学习了.那么什么是类加载呢?当我们写完一个Java类的时候,并不是直接就可以运行的,它还要 ...

  3. JVM(13)之 阶段回顾

    开发十年,就只剩下这套架构体系了! >>>   各位小伙伴,到上一篇博文为止,我们的内存模型相关知识就已经讲完了!讲!完!了!不知道大家吸收了多少,这里我们简单的来回顾一下吧!    ...

  4. js中的对象类型的基本操作

    示例 /** * 对象属于一种复合数据类型,在对象中可以保存多个不同数据类型的属性 * 对象的分类: * 1.内建对象 * - 由ES标准定义的对象,在任何ES的实现中都可以使用,比如:Math, * ...

  5. swiper插件在ie浏览器无反应,解决办法

    在写pc端页面时,用swiper插件发现在ie中用不了,百度下说是swiper从3以后向手机端发展,所以在pc端无响应.后来了解到,swiper3是专门针对移动端写的.如果想兼容IE8的话,应该引入s ...

  6. vue 踩坑之组件传值

    Vue 报错[Vue warn]: Avoid mutating a prop directly since the value will be overwritten whenever the pa ...

  7. resolver - 解析器(resolver) 配置文件

    总览 (SYNOPSIS) /etc/resolv.conf 描述 (DESCRIPTION) 解析器(resolver) 是 C 函数库 中 的 一组 例程, 用于 访问 Internet 域名系统 ...

  8. excel条件格式 满足包含xx的整行高亮

    条件格式-->新建规则-->使用公式确定要设置格式的单元格   =COUNTIF($D4,"*_S_*")   =COUNTIF($D4,"*_M_*&quo ...

  9. python-zmail发送邮件

    import zmail #发送测试报告到邮件 with open(r'F:\asus\auto_file\unittest_html\2019-06-30 10-31-03report.html', ...

  10. 十分钟理解Redux核心思想,过目不忘。

    白话Redux工作原理.浅显易懂. 如有纰漏或疑问,欢迎交流. Redux 约法三章 唯一数据源(state) 虽然redux中的state与react没有联系,但可以简单理解为react组件中的th ...