第七周总结&实验报告5

这一周的课程内容比较难,而且比较不容易理解,所有学习的很吃力,现在接触的知识越来越多,也越来越难了,还是要多对照书本来进行学习!

这周主要学的有:

一、抽象类

1.Java中可以创建一种类专门用来当作父类,这种类称为“抽象类”。

2.抽象类的作用类似“模版”,其目的是要设计者依据它的格式来修改并创建新的类。

二、抽象类的定义及使用规则

1.包含一个抽象方法的类必须是抽象类;

2.抽象类和抽象方法都要使用abstract关键字声明;

3.抽象方法只需要声明而不需要实现;

4.抽象类必须被子类继承,子类(如果不是抽象类)必须覆写抽象类中的全部抽象方法。

 

实验四 类的继承

实验内容

(一)抽象类的使用

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

2.编程技巧

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

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

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

(二)使用接口技术

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

编程技巧

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

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

实验源码:

package first;
import java.util.Scanner;

abstract class Shapes
{
  public abstract void area();}

class Triangle extends Shapes{
             private double a,b,c;
             private double p;

      Triangle(double a, double b, double c, double p){
             this.a = a;
             this.b = b;
             this.c = c;
             this.p = (a+b+c)/2;}
    public void area()
        {
            System.out.println(Math.sqrt(p*(p-a)*(p-b)*(p-c)));
        }
  }
class Rectangle extends Shapes{
             private double h,g;
             Rectangle(double h, double g){
               this.h = h;
               this.g = g;
           }
        public void area() {
             System.out.println(h*g);
        }
    }
class Cricle extends Shapes{
             private double r;
             Cricle(double r){
                this.r=r;
         }
  public void area()
         {
             System.out.println(Math.pow(r,2)*Math.PI);
        }
    }
       public class a{
public static void main(String[] args)
{
            Scanner boniu=new Scanner(System.in);
            System.out.println("triangle length a:" );
            double a=boniu.nextDouble();
            System.out.println("triangle length b:" );
            double b=boniu.nextDouble();
            System.out.println("triangle length c:" );
            double c=boniu.nextDouble();
            Triangle triangle=new Triangle(a,b,c,(a+b+c)/2);
            System.out.println("area of triangle:");
            triangle.area();

            System.out.println("length of rectangle h:");
            double h=boniu.nextDouble();
            System.out.println("width of rectangle g:");
            double g=boniu.nextDouble();
            Rectangle rectangle=new Rectangle(h,g);
            System.out.println("area of rectangle:");
            rectangle.area();

            System.out.println("radius of circle:");
            double r=boniu.nextDouble();
            Cricle cricle=new Cricle(r);
            System.out.println("area of circle:");
            cricle.area();

        }
    }

实验结果:

实验源码:

package first;

import java.util.Scanner;
interface Shape1{
public double size();
}
class Line implements Shape1{
    private double x1,x2,y1,y2;
    public Line(double x1,double x2,double y1,double y2) {
        this.x1=x1;
        this.x2=x2;
        this.y1=y1;
        this.y2=y2;
    }
    public double size() {
        return Math.sqrt((x2-x1)*(x2-x1)+(y2-y1)*(y2-y1));
    }
}
class Circle implements Shape1{
    private double reidus;
    public Circle(double reidus) {
        this.reidus=reidus;
    }
    public double size() {
        return Math.PI*this.reidus*this.reidus;
    }
}
public class Shape{
    public static void main(String args[]) {
        Scanner s=new Scanner(System.in);
        System.out.println("请输入两点的坐标");
        double x1=s.nextDouble();
        double y1=s.nextDouble();
        double x2=s.nextDouble();
        double y2=s.nextDouble();
        Line line=new Line(x1,y1,x2,y2);
        System.out.println("直线的大小为:"+line.size());
        Scanner s1=new Scanner(System.in);
        System.out.println("请输入圆的半径");
        double reidus=s1.nextDouble();
        Circle circle=new Circle(reidus);
        if(reidus>0) {
            System.out.println("圆的大小为:"+circle.size());
        }
        else {
            System.out.println("不符合圆的定义请重新运行程序");
            return;
        }
    }
}

实验结果:

总结:这周的题目比较难,写的也十分的困难,对新知识不够理解,也忘了一些以前的知识点,接下来还是要加强对知识点的巩固!!

原文地址:https://www.cnblogs.com/LUMO/p/11649921.html

时间: 2024-09-28 21:37:36

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

第五周总结&实验报告三

第五周总结&实验报告三 实验报告 1.已知字符串:"this is a test of java".按要求执行以下操作:(要求源代码.结果截图.) ① 统计该字符串中字母s出现的次数. ② 统计该字符串中子串"is"出现的次数. ③ 统计该字符串中单词"is"出现的次数. ④ 实现该字符串的倒序输出. ① 统计该字符串中字母s出现的次数. package test3; public class Zifu { public static v

第六周总结 & 实验报告(四)

第六周小结 一.instanceof关键字         在Java中使用instanceof关键字判断一个对象到底是哪个类的实例,返回boolean类型 1.instanceof关键字的作用 例class A{ public void fun1(){ System.out.println("A-->public void fun1(){}"); } public void fun2(){ this.fun1(); } } classB extends A{ public vo

广外第二周的实验报告来这里分享一下

虽然有很多还不知道怎么改,可能也有很多测试不到的地方,但是通过这个星期我好歹了解了好多东西啊 实验报告 通过本次学习,能了解到VC6.0.是用于将已生成的C++语言源程序代码转换为计算机能读懂的目标代码,计算机用的均是二进制代码.编辑完成后它首先生成扩展名为obj的文件(程序编译后的二进制文件),若想进行之后的链接.运行过程,必须不断修改源程序文件至完全正确. 在文件→新建→源代码这里可以新建源代码:新建→打开项目或文件中可以打开以前写过的源代码或者程序:运行→编译中即把所打源文件转换为二进制代

20145307第一周JAVA实验报告

20145307 <Java程序设计>第一次实验实验报告 北京电子科技学院(BESTI)实验报告 课程:Java程序设计 班级:1453 指导教师:娄嘉鹏 实验日期:2016.04.08 实验名称:Java开发环境的熟悉(Linux + Eclipse) 实验内容: 1.使用JDK编译.运行简单的Java程序: 2.使用Eclipse 编辑.编译.运行.调试Java程序. 实验目的与要求: 使用JDK和IDE编译.运行简单的Java程序: 练习题目: 实现斐波那契数列的运算以及实现 程序设计思

第七章数组实验报告

C程序设计实验报告 实验项目: 数组实验 姓名: 廖云福 实验地点: 514物联网实验室 实验时间:2019年5月29日 一实验项目 7.3.1一维数组的应用 7.3.2二维数组的应用 7.3.3字符数组的应用 一.实验目的和要求 a.掌握一维和多维数组的定义和数组元素的引用方法. b.了解一维数组和多维数组初始化方法. c.学习一维和多维数组的基本算法. d.掌握字符数组的定义.初始化方法和元素的引用方法. e.掌握C语言提供的对字符串进行处理的基本库函数. 二.实验内容 实验练习一.冒泡排序

第九周总结&amp;实验报告七

小结:这周请了一天的假,所以回来的时候有些知识点跟不上,不过在第二节课学到了关于IO的知识很重要,对于这次的实验也有些吃力,这周的知识点主要集中在书上,在各种不同条件下学习运用什么样的代码.   一.File类 1.在整个io包中,唯一表示与文件本身有关的类就是File类. 2.使用File类可以进行创建或删除文件等常用操作. 3.要想使用File类,则首先要观察File类的构造方法. 二.File类中的主要方法和常量  实验任务详情: 完成火车站售票程序的模拟.要求:(1)总票数1000张:(

第六周总结&amp;实验报告四

这周是放国庆节的假,所有没有进行深入的学习,只是写了个实验的题目,也发现了自己在基础上还是要加强学习. 实验四 类的继承 一. 实验目的 (1) 掌握类的继承方法: (2) 变量的继承和覆盖,方法的继承.重载和覆盖实现: 二. 实验内容 1.实验源码 package first; import java.util.Scanner; class Circle{ private double radius; public Circle(){ this.setRadius(0); } public C

第八周总结&amp;实验报告六

实验六 Java异常 实验目的 理解异常的基本概念: 掌握异常处理方法及熟悉常见异常的捕获方法. 实验要求 练习捕获异常.声明异常.抛出异常的方法.熟悉try和catch子句的使用. 掌握自定义异常类的方法. 实验内容 编写一个类,在其main()方法中创建一个一维数组,在try字句中访问数组元素,使其产生ArrayIndexOutOfBoundsException异常.在catch子句里捕获此异常对象,并且打印"数组越界"信息,加一个finally子句,打印一条信息以证明这里确实得到

第六周&amp;java实验报告四

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