zoukankan      html  css  js  c++  java
  • 第七周课程总结&实验报告(五)

    (一)抽象类的使用

    设计一个类层次,定义一个抽象类--形状,其中包括有求形状的面积的抽象方法。 继承该抽象类定义三角型、矩形、圆。 分别创建一个三角形、矩形、圆存对象,将各类图形的面积输出。
    注:三角形面积s=sqrt(p(p-a)(p-b)*(p-c)) 其中,a,b,c为三条边,p=(a+b+c)/2
    2.编程技巧

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

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

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

    abstract class shape {
        public abstract double print();    //定义抽象方法
    }
    class Triangle extends shape {      //子类通过继承抽象类
    private double a;
    private double b;
    private double c;         //定义三角形特有的变量
    public Triangle(double a,double b,double c){      //为属性初始化
        this.a=a;
        this.b=b;
        this.c=c;                  //为属性赋值
    }
        public double print() {     //子类调用抽象方法
            double p=(a+b+c)/2;
            return  Math.sqrt(p*(p-a)*(p-b)*(p-c));  //返回该图形面积
        }
    }
    class Rectangle1 extends shape {
    private double width;
        private double height;    //定义矩形特有的变量
        public Rectangle1(double width, double height){   //为属性初始化
            this.height=height;
            this.width=width;             //为属性赋值
        }
    
        public double print() {       //子类调用抽象方法
            return width*height;        //返回该图形面积
    
        }
    }
    class Circle1 extends shape {        //子类通过继承抽象类
       double radious;            //定义圆形特有变量
       public Circle1(double radious){            //为属性初始化
           this.radious=radious;         //为属性赋值
       }
        public double print() {          //子类调用抽象方法
            return Math.PI*radious*radious;    //返回该图形面积
        }
    }
    

    运行结果截图:

    (二)使用接口技术

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

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

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

    实验代码:

    public interface Shape {        //定义接口Shape
        public abstract void size();       //定义抽象方法
    }
    class Straight implements Shape{      //子类实现Shape接口
       private double figure;
       public Straight(double figure){     //为属性初始化
           this.figure=figure;             //为属性赋初始值
       }
        public void size() {          //覆写Shape接口的抽象方法
            System.out.println("直线的大小:"+figure);
    
        }
    }
    class Circle2 implements Shape{     //子类实现Shape接口
        private  double radious;
       public Circle2(double radious){    //为属性初始化
           this.radious=radious;          //为属性赋初始值
       }
        public void size() {         //覆写Shape接口的抽象方法
            System.out.println("圆的面积:"+Math.PI*radious*radious);
    
        }
    }
    

    运行结果截图:

    本周学习总结
    (1)详细的了解接口与抽象方法实际运用,重点强调了其灵活运用;
    (2)学习了新的关键词abstract;
    (3)强调Object类,所有的对象都可以向Object类进行向上转型;
    (4)继续撸起袖子加油干!!!

  • 相关阅读:
    Leetcode Plus One
    Leetcode Swap Nodes in Pairs
    Leetcode Remove Nth Node From End of List
    leetcode Remove Duplicates from Sorted Array
    leetcode Remove Element
    leetcode Container With Most Water
    leetcode String to Integer (atoi)
    leetcode Palindrome Number
    leetcode Roman to Integer
    leetcode ZigZag Conversion
  • 原文地址:https://www.cnblogs.com/huanglexing/p/11663405.html
Copyright © 2011-2022 走看看