• 第七周课程总结及实验报告


    实验报告
    学习总结:
    equals方法:
    (1)equals()是Object中的方法,作用在于检测一个对象是否等于另一个对象。
    (2)在Object类中equals()方法是判断两个对象是否有相同的引用 ,即是否是相同的对象。
    (3)String重写equals()方法,String的equals()方法用途比较两个字符对象的字符序列是否相同

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

    2.编程技巧

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

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

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

    实验代码

    package Output;
    
      abstract class Shuchu{
          public abstract double area();
      }
    
    package Output;
    import java.util.*;
    
    class triangle extends Shuchu{
             private double a;
             private double b;
             private double c;
             private double p;
             public triangle(double a,double b,double c) {
                 setA(a);
                 setB(b);
                 setC(c);
                 setP((a+b+c)/2);
             }
             public double area() {
                 return Math.sqrt(getP()*(getP()-getA())*(getP()-getB())*(getP()-getC()));
             }
             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 void output1() {
                System.out.println("三角形面积:"+area());
             }
         }
         class rectangle extends Shuchu{
             private double a;
             private double b;
             public double area() {
                 return a*b;
             }
            public rectangle(double a,double b) {
                 setA(a);
                 setB(b);
             }
             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 void output2() {
                 System.out.println("矩形面积:"+area());
             }
         }
         class circle extends Shuchu{
             private double radius;
             public double area() {
                 return (Math.PI*Math.pow(radius, 2));
             }
             public double getRadius() {
                return radius;
            }
            public void setRadius(double radius) {
                this.radius = radius;
            }
             public circle(double radius) {
                setRadius(radius);
             }
             public void output3() {
            System.out.println("圆面积:"+area());
             }
         }
    package Output;
    
    public class Test{
        public static void main(String[] args){
                triangle tr=new triangle(2,2,2);
                 rectangle re=new rectangle(1,2);
                 circle cr=new circle(1);
                 tr.output1();
                 re.output2();
                 cr.output3();
                 }
    }
    

    结果图
    (二)使用接口技术

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

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

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

    实验代码

    package Diqizhou;
    import Diqizhou.Shape;
    
    interface Shape{
         public void size(); 
    }
    class Xingzhuang{
        public static void size(Shape shape) {
            shape.size();
        }
    }
    package Diqizhou;
    import java.util.*;
    
    class Straight implements Shape{
        private double length;
        public Straight(double length) {
           setLength(length);
        }
        public void size() {
            System.out.println("直线长度:"+getLength());
        }
        public double getLength() {
            return length;
        }
        public void setLength(double length) {
           this.length = length;
        }
    }
    class Circle implements Shape{
        private double radius;
        public void size() {
            System.out.println("圆面积:"+Math.PI*Math.pow(radius, 2));
        }
        public Circle(double radius) {
            setRidus(radius);
        }
        public double getRadius() {
           return radius;
        }
        public void setRidus(double radius) {
            this.radius = radius;
        }
        
    }
    package Diqizhou;
    public class Consequence {
        public static void main(String[] args){
            Straight st=new Straight(1);
            Circle cr=new Circle(1);
            st.size();
            cr.size();
            }
        }
    

    结果图

  • 相关阅读:
    windows中dos命令指南
    HDU 2084 数塔 (dp)
    HDU 1176 免费馅饼 (dp)
    HDU 1004 Let the Balloon Rise (map)
    变态杀人狂 (数学)
    HDU 2717 Catch That Cow (深搜)
    HDU 1234 开门人和关门人 (模拟)
    HDU 1070 Milk (模拟)
    HDU 1175 连连看 (深搜+剪枝)
    HDU 1159 Common Subsequence (dp)
  • 原文地址:https://www.cnblogs.com/sqhe2000/p/11663653.html
Copyright © 2020-2023  润新知