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

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

2.编程技巧

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

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

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

1)实验代码

package text6;

public abstract class Shape {

    public void Area() {
        System.out.println(this.getArea());
    }
    public abstract String getArea();

}
package text6;

public class Triangle extends Shape {
    private double a,b,c;

    public Triangle(double a, double b, double c) {
        super();
        this.a = a;
        this.b = b;
        this.c = c;
    }

    public String getArea() {
        double p=(a+b+c)/2;
        return "三角形面积   "+Math.sqrt(p*(p-a)*(p-b)*(p-c));
    }

    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;
    }

}
package text6;

public class Rectangle extends Shape {

    private double length;
    private double width;

    public double getLength() {
        return length;
    }
    public void setLength(double length) {
        this.length = length;
    }
    public double getWidth() {
        return width;
    }
    public void setWide(double width) {
        this.width = width;
    }

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

    public String getArea() {
        return "矩形面积   "+this.width*this.length;
    }

}
package text6;

public class Circle extends Shape{

    private double r;

    public Circle(double r) {
        super();
        this.r = r;
    }

    public String getArea() {
        return "圆面积   "+r*r*3.1415926;
    }

}
package text6;

public class Text6 {

    public static void main(String[] args) {
        Shape s1=new Triangle(3,4,5);
        Shape s2=new Rectangle(5,7);
        Shape s3=new Circle(7);
        s1.Area();
        s2.Area();
        s3.Area();

    }

}

2)运行截图

二)使用接口技术

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

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

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

1)实验代码

package text6;

public interface Shape {

    public void size();

}
package text6;

public class Circle implements Shape {

    private double r;

    public double getR() {
        return r;
    }

    public void setR(double r) {
        this.r = r;
    }

    public Circle(double r) {
        super();
        this.r = r;
    }

    public void size() {

        System.out.println("圆大小: "+r*r*3.14);

    }

}
package text6;

public class Line implements Shape {
    private double l;

    public double getL() {
        return l;
    }

    public Line(double l) {
        super();
        this.l = l;
    }

    public void setL(double l) {
        this.l = l;
    }

    public void size() {

        System.out.println("直线大小:"+l);
    }

}
package text6;

public class Text6 {

    public static void main(String args[]) {
        Shape s1=new Circle(3);
        Shape s2=new Line(7);
        s1.size();
        s2.size();
    }

}

课程总结
这周主要是学了抽象类和接口
对象 都通过对象的多态性产生实例化对象 都通过对象的多态性产生实例化对象
局限 抽象类有单继承的局限 接口没有单继承的局限
实际 作为一个模板 是作为一个标准或是表示一种能力
选择 如果抽象类和接口都可以使用的话,优先使用接口,因为避免单继承的局限 如果抽象类和接口都可以使用的话,优先使用接口,因为避免单继承的局限
特殊 一个抽象类中可以包含多个接口,一个接口中可以包含多个抽象类 一个抽象类中可以包含多个接口,一个接口中可以包含多个抽象类

原文地址:https://www.cnblogs.com/zuoshuai/p/11663180.html

时间: 2024-08-29 22:30:53

第七周课程总结及实验报告的相关文章

第三周课程总结及实验报告(一)

撰写第三周课程总结及实验报告(一) 1.打印输出所有的“水仙花数”,所谓“水仙花数”是指一个3位数,其中各位数字立方和等于该数本身.例如,153是一个“水仙花数”. 2. 编写Java程序,求13-23+33-43+…+973-983+993-1003的值. 3. 编程求1!+2!+3!+…+20!. 4. 编写Java程序,计算8+88+888+…前10项之和. 5. 一个数如果恰好等于它的因子之和,这个数就称为完数.编写程序输出1000以内的所有完数. 6. 编写应用程序,输出满足1+2+3

第三周课程总结及实验报告

撰写第三周课程总结及实验报告(一) 1.打印输出所有的“水仙花数”,所谓“水仙花数”是指一个3位数,其中各位数字立方和等于该数本身.例如,153是一个“水仙花数”. 2. 编写Java程序,求13-23+33-43+…+973-983+993-1003的值. 3. 编程求1!+2!+3!+…+20!. 4. 编写Java程序,计算8+88+888+…前10项之和. 5. 一个数如果恰好等于它的因子之和,这个数就称为完数.编写程序输出1000以内的所有完数. 6. 编写应用程序,输出满足1+2+3

第八周课程总结及实验报告

实验报告 一.编写一个类,在其main()方法中创建一个一维数组,在try字句中访问数组元素,使其产生ArrayIndexOutOfBoundsException异常.在catch子句里捕获此异常对象,并且打印"数组越界"信息,加一个finally子句,打印一条信息以证明这里确实得到了执行. 1)实验代码 package text7; public class Text7 { public static void main(String[] args) { try { int s[]=

第六周课程总结及实验报告

一.实验目的 (1)掌握类的继承 (2)变量的继承和覆盖,方法的继承,重载和覆盖的实现: 二.实验的内容 (1)根据下面的要求实现圆类Circle. 1.圆类Circle的成员变量:radius表示圆的半径. 2.圆类Circle的方法成员: Circle():构造方法,将半径置0 Circle(double r):构造方法,创建Circle对象时将半径初始化为r double getRadius():获得圆的半径值 double getPerimeter():获得圆的周长 void disp(

2019秋JAVA第三周课程总结及实验报告(二)

个人博客 一.基础字符串操作 题目:已知字符串:"this is a test of java".按要求执行以下操作:(要求源代码.结果截图.) 统计该字符串中字母s出现的次数. 统计该字符串中子串"is"出现的次数. 统计该字符串中单词"is"出现的次数. 实现该字符串的倒序输出. package com.company; public class Main { static String str = "this is a test

2019秋JAVA第六周课程总结及实验报告(四)

题目: 源代码: package com.company; import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); double r = sc.nextDouble(); double h = sc.nextDouble(); Cylinder a = new Cylinder(r, h); a.diapV

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

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

第六周学习总结与实验报告

第六周&java实验报告四 一.实验目的 (1)掌握类的继承 (2)变量的继承和覆盖,方法的继承,重载和覆盖的实现: 二.实验的内容 (1)根据下面的要求实现圆类Circle. 1.圆类Circle的成员变量:radius表示圆的半径. 2.圆类Circle的方法成员: Circle():构造方法,将半径置0 Circle(double r):构造方法,创建Circle对象时将半径初始化为r double getRadius():获得圆的半径值 double getPerimeter():获得圆

第四周课程总结及实验报告

Java实验报告 计科一班 学号:20188414 陈贵平 完成时间 2019.9.20 Java简单类与对象 一.实验目的 掌握类的定义,熟悉属性.构造函数.方法的作用,掌握用类作为类型声明变量和方法返回值: 理解类和对象的区别,掌握构造函数的使用,熟悉通过对象名引用实例的方法和属性: 理解static修饰付对类.类成员变量及类方法的影响. 二.实验内容 写一个名为Rectangle的类表示矩形.其属性包括宽width.高height和颜色color,width和height都是double型