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

    实验四 类的继承

    • 实验目的
    • 理解抽象类与接口的使用;
    • 了解包的作用,掌握包的设计方法。
    • 实验要求
    • 掌握使用抽象类的方法。
    • 掌握使用系统接口的技术和创建自定义接口的方法。
    • 了解 Java 系统包的结构。
    • 掌握创建自定义包的方法。
    • 实验内容

    (一)抽象类的使用

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

    2.编程技巧

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

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

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

    实验代码

    1.抽象类

    package chongya;

    public abstract class XINGZHUANAA {

    public abstract double getArea();
    }

    2.三角形类

    package chongya;

    public class Sjx extends XINGZHUANAA {
    private double x;
    private double y;
    private double z;
    public Sjx(double x,double y,double z) {
    this.x=x;
    this.y=y;
    this.z=z;
    }

    public double getX() {
    return x;
    }
    public void setx(double x) {
    this.x=x;
    }
    public double getY() {
    return y;
    }
    public void setY(double y) {
    this.y=y;
    }
    public double getZ() {
    return z;
    }
    public void setC(double z) {
    this.z = z;
    }
    public double getP(){
    double p=((x+y+z)/2);
    return p;
    }


    public double getArea() {
    double area=Math.sqrt(getP()*(getP()-x)*(getP()-y)*(getP()-z));
    return area;
    }
    }

    3.矩形类

    package chongya;

    public class Rectangle extends XINGZHUANAA {

    private double length;
    private double width;

    public Rectangle(double length,double width) {
    this.length=length;
    this.width=width;
    }

    public double getLength() {
    return length;
    }

    public void setLength(double length) {
    this.length = length;
    }

    public double getWidth() {
    return width;
    }

    public void setWidth(double width) {
    this.width = width;
    }
    @Override
    public double getArea() {
    double area1=getLength()*getWidth();
    return area1;
    }

    }

    4.圆类

    package chongya;

    public class Yuan extends XINGZHUANAA {
    private double radius;

    public Yuan(double radius) {
    this.radius = radius;
    }

    public double getRadius() {
    return radius;
    }

    public void setRadius(double radius) {
    this.radius = radius;
    }
    @Override
    public double getArea() {
    // TODO Auto-generated method stub
    double area=Math.pow(radius,2)*3.14;
    return area;
    }

    }

    实验截图

    (二)使用接口技术

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

    1. 编程技巧

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

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

     

     一 实验代码

    接口

    package jieko;

    public interface Shape {
    public void size();
    }

    package jieko;

    public class Cricle implements Shape {
    private double radius;

    public Cricle(double radius) {
    this.radius=radius;
    }
    public double getRadius() {
    return radius;
    }
    public void setRadius(double radius) {
    this.radius = radius;
    }

    public double getArea() {
    double area=Math.pow(radius,2)*3.14;
    return area;
    }
    public void size() {
    System.out.println("圆的大小:"+getArea());
    }
    }

    直线

    package jieko;

    public class Zhixian implements Shape {
    private double length;

    public Zhixian(double length) {
    this.length=length;
    }

    public double getLength() {
    return length;
    }

    public void setLength(double length) {
    this.length = length;
    }
    public double getHigh() {
    double high=length;
    return high;
    }
    public void size() {
    System.out.println("直线长度:"+getHigh());
    }
    }

    二 实验截图

    课程总结

    抽象类与接口

    1、抽象类和接口都不能直接实例化,如果要实例化,抽象类变量必须指向实现所有抽象方法的子类对象,接口变量必须指向实现所有接口方法的类对象。

    2、抽象类要被子类继承,接口要被类实现。

    3、接口只能做方法申明,抽象类中可以做方法申明,也可以做方法实现

    4、接口里定义的变量只能是公共的静态的常量,抽象类中的变量是普通变量。

    5、抽象类里的抽象方法必须全部被子类所实现,如果子类不能全部实现父类抽象方法,那么该子类只能是抽象类。同样,一个实现接口的时候,如不能全部实现接口方法,那么该类也只能为抽象类。

    6、抽象方法只能申明,不能实现,接口是设计的结果 ,抽象类是重构的结果

    7、抽象类里可以没有抽象方法

    8、如果一个类里有抽象方法,那么这个类只能是抽象类

    9、抽象方法要被实现,所以不能是静态的,也不能是私有的。

    10、接口可继承接口,并可多继承接口,但类只能单根继承。

  • 相关阅读:
    Kattis之旅——Factovisors
    Kattis之旅——Rational Arithmetic
    Kattis之旅——Number Sets
    Kattis之旅——Divisible Subsequences
    Kattis之旅——Prime Path
    Kattis之旅——Inverse Factorial
    Kattis之旅——Perfect Pth Powers
    Kattis之旅——Eight Queens
    hiho一下 第145周
    hiho一下 第144周
  • 原文地址:https://www.cnblogs.com/lx1943661721/p/11663235.html
Copyright © 2011-2022 走看看