实验四 类的继承

  • 实验目的
  • 理解抽象类与接口的使用;
  • 了解包的作用,掌握包的设计方法。
  • 实验要求
  • 掌握使用抽象类的方法。
  • 掌握使用系统接口的技术和创建自定义接口的方法。
  • 了解 Java 系统包的结构。
  • 掌握创建自定义包的方法。
  • 实验内容
  • (一)抽象类的使用
    1. 设计一个类层次,定义一个抽象类--形状,其中包括有求形状的面积的抽象方法。 继承该抽象类定义三角型、矩形、圆。 分别创建一个三角形、矩形、圆存对象,将各类图形的面积输出。
      注:三角形面积s=sqrt(p*(p-a)*(p-b)*(p-c)) 其中,a,b,c为三条边,p=(a+b+c)/2

    2.编程技巧

    (1)    抽象类定义的方法在具体类要实现;

    (2)    使用抽象类的引用变量可引用子类的对象;

    (3) 通过父类引用子类对象,通过该引用访问对象方法时实际用的是子类的方法。可将所有对象存入到父类定义的数组中。

  • package java实验报告五;
    
    public class Test1 {
    
        public static void main(String[] args) {
    Circle cir=new Circle(1);
    Triangle tr=new Triangle(1,1,1);
    Rectangle re=new Rectangle(1,1);
    cir.getArea();
    tr.getArea();
    re.getArea();
    } }
  • package java实验报告五;
    
    public class Circle extends Shape {
    private double radius; public double getRadius() {
    return radius;
    } public void setRadius(double radius) {
    this.radius = radius;
    } public Circle(double radius){
    } public double getArea(){
    double Area=Math.PI*getRadius()*getRadius();
    System.out.println("圆的面积:"+Area);
    return Area;
    } }
    package java实验报告五;
    
    public class Rectangle extends Shape {
    
        private double height;
    private double width;
    public double getHeight() {
    return height;
    }
    public void setHeight(double height) {
    this.height = height;
    }
    public double getWidth() {
    return width;
    }
    public void setWidth(double width) {
    this.width = width;
    }
    public Rectangle(double height,double width){
    this.height=height;
    this.width=width;
    }
    public double getArea() {
    double Area=getHeight()*getWidth();
    System.out.println("矩形的面积:"+Area);
    return Area;
    } }
  • package java实验报告五;
    
    public class Triangle extends Shape {
    private double a,b,c,p;
    public double getA() {
    return a;
    } public void setA(double a) {
    this.a = a;
    } public double getB() {
    return b;
    } public void setB(double b) {
    this.b = b;
    } public double getC() {
    return c;
    } public void setC(double c) {
    this.c = c;
    } public double getP() {
    return p;
    } public void setP(double p) {
    this.p = p;
    } public Triangle(double a,double b,double c){
    this.a=a;
    this.b=b;
    this.c=c;
    }
    public double getArea() {
    p=(getA()+getB()+getC())/2;
    double Area=Math.sqrt((p*(p-getA())*(p-getB())*(p-getC())));
    System.out.println("三角形的面积:"+Area);
    return Area;
    } }
    package java实验报告五;
    
    public class Test1 {
    
        public static void main(String[] args) {
    Circle cir=new Circle(1);
    Triangle tr=new Triangle(1,1,1);
    Rectangle re=new Rectangle(1,1);
    cir.getArea();
    tr.getArea();
    re.getArea();
    }
  • (二)使用接口技术

    1定义接口Shape,其中包括一个方法size(),设计“直线”、“圆”、类实现Shape接口。分别创建一个“直线”、“圆”对象,将各类图形的大小输出。

    1. 编程技巧

    (1) 接口中定义的方法在实现接口的具体类中要重写实现;

    (2) 利用接口类型的变量可引用实现该接口的类创建的对象。

  • package java实验报告五demo2;
    
    public interface Shape {
    public void size(); }
  • package java实验报告五demo2;
    
    class Line implements Shape {
    public void size(){
    System.out.println("生成一个直线");
    } }
  • package java实验报告五demo2;
    
    public class Circle implements Shape {
    public void size(){
    System.out.println("生成一个圆");
    } }
  • package java实验报告五demo2;
    
    public class Test1 {
    
        public static void main(String[] args) {
    Line l=new Line( );
    l.size();
    Circle c=new Circle();
    c.size(); }

  • 总结:本周学习了抽象类,接口,为抽象类,接口实例化,抽象类的模板设计,接口的制定标准。学起来有点吃力,我就有点烦

     
     

实验报告5&第七周课程总结的更多相关文章

  1. 实验报告一 &第三周课程总结

    实验报告 1.打印输出所有的“水仙花数”,所谓“水仙花数”是指一个3位数,其中各位数字立方和等于该数本身.例如,153是一个“水仙花数”. 实验代码: public class wdnmd{ publ ...

  2. 第七周课程总结 & 实验报告(五)

    第七周课程总结 一.抽象类与接口的应用 1.实例化 2.实际应用 ---模板设计(抽象类) ---制定标准(接口) 3.设计模式 ---工厂设计 ---代理设计 ---适配器设计 二.抽象类与接口之间 ...

  3. 第七周课程总结&实验报考(五)

    第七周课程总结&实验报考(五) 实验四 类的继承 实验目的: 1.理解抽象类与接口的使用: 2.了解包的作用,掌握包的设计方法. 实验要求: 1.掌握使用抽象类的方法. 2.掌握使用系统接口的 ...

  4. JAVA实验报告四及第六周总结

    JAVA第六周作业 实验报告四 第一题 (1)根据下面的要求实现圆类Circle. 1.圆类Circle的成员变量:radius表示圆的半径. 2.圆类Circle的方法成员: Circle():构造 ...

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

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

  6. 第七周课程总结&实验报告(五)

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

  7. 第七周课程总结&实验报告五

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

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

    课程总结 主要学习了抽象类与接口的应用 1.抽象类的成员可以具有访问级别 接口的成员全部public级别 2.抽象类可以包含字段 接口不可以 3.抽象类可以继承接口 接口不能继承抽象类 4.抽象类的成 ...

  9. 实验报告三&&第五周总结

    1.已知字符串:"this is a test of java".按要求执行以下操作:(要求源代码.结果截图.) ① 统计该字符串中字母s出现的次数. ② 统计该字符串中子串“is ...

随机推荐

  1. 如何使用hook(非注入dll)

    #include <Windows.h> #include <iostream> using namespace std; HHOOK mouseHook; LRESULT _ ...

  2. 【POJ3162】Walking Race 树形dp+单调队列+双指针

    题目大意:给定一棵 N 个节点的无根树,边有边权,现生成一个序列 d,d[i] 表示 i 号节点到树上其他节点距离的最大值.给定一个 m,求 d 序列中最大值和最小值之差不超过 m 的最长连续段的长度 ...

  3. thinkphp5杂谈--项目架构和模板搭建(view视角)

    nginx网站配置 项目架构 项目文件夹 视图模板 一种出幺蛾子的访问办法 访问相关特色模块并渲染视图

  4. 2019杭电多校&CCPC网络赛&大一总结

    多校结束了, 网络赛结束了.发现自己还是太菜了,多校基本就是爆零和签到徘徊,第一次打这种高强度的比赛, 全英文,知识点又很广,充分暴露了自己菜的事实,发现数学还是很重要的.还是要多刷题,少玩游戏. 网 ...

  5. 原生ajax 请求

    什么是ajax AJAX 是一种用于创建快速动态网页的技术. 通过在后台与服务器进行少量数据交换,AJAX 可以使网页实现异步更新. 这意味着可以在不重新加载整个网页的情况下,对网页的某部分进行更新, ...

  6. Redis(一)

    1 单机MySQL的美好时代2 Memcached(缓存)+MySQL+垂直拆分3 MySQL主从读写分离4 分库分表+水平拆分+mysql拆分5 MySQL的扩展瓶颈6 为什么使用NoSQLNoSQ ...

  7. [SpringBoot] 通过spring.factory文件来加载第三方的bean

        在springboot的开发过程中,我们经常需要加载一些bean,如果bean使我们自己写的类,那很好办,加个@Component注解就搞定了,然后过程启动会扫描启动类所在的包及其子包,如果我 ...

  8. Leaflet调用geoserver发布的矢量切片

    geoserver如何发布切片就不写了,大家都可以查到. index.html <!DOCTYPE html> <html> <head> <meta cha ...

  9. 序列式容器————array

    目录 介绍 1 构造函数 2 fill() 3 元素的获取 4 size() 5 empty() 6 front() 7 back() 8 get<n> 9 迭代器(待补充) 10 元素的 ...

  10. 2019.9.23JAVA课堂测试

    1.题目 使用递归方式判断某个字串是否是回文( palindrome ) “回文”是指正着读.反着读都一样的句子.比如“我是谁是我”使用递归算法检测回文的算法描述如下:A single or zero ...