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

    实验五 类的继承

    一、 实验目的

    • (1) 理解抽象类与接口的使用;
    • (2) 了解包的作用,掌握包的设计方法。

    二、 实验要求

    • (1) 掌握使用抽象类的方法。
    • (2) 掌握使用系统接口的技术和创建自定义接口的方法。
    • (3) 了解 Java 系统包的结构。
    • (4) 掌握创建自定义包的方法。

    三、 实验内容

    (一)抽象类的使用

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

    实验过程

    package demo1;
    
    public abstract class Xingzhuang {
    	public abstract double area();
    
    }
    
    package demo1;
    
    public class Delta extends Xingzhuang {
    	private double a, b, 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;
    	}
    	public Delta(double a,double b,double c) {
    		this.a = a;
    		this.b = b;
    		this.c = c;
    	}
    
    
    	public double area() {
    		double p;
    		p = (this.a + this.b + this.c)/2;
    		
    		return Math.sqrt(p * (p - a) * (p - b) * (p - c));
    	}
    
    }
    
    package demo1;
    
    public class Rectangle extends Xingzhuang {
    
    	private double length, high;
    	public double getLength() {
    		return length;
    	}
    	public void setLength(double length) {
    		this.length = length;
    	}
    	public double getHeight() {
    		return high;
    	}
    	public void setHeight(double height) {
    		this.high = height;
    	}
    	public Rectangle(double length, double high) {
    		this.high = high;
    		this.length = length;
    	}
    	public double area() {
    		return this.high * this.length;
    	}
    
    }
    
    package demo1;
    
    public class Circle extends Xingzhuang {
    
    	private double r;
    	public double getR() {
    		return r;
    	}
    	public void setR(double r) {
    		this.r = r;
    	}
    	public Circle(double r) {
    		this.r = r;
    	}
    	public double area() {
    		
    		return Math.PI * Math.pow(this.r, 2);
    	}
    
    }
    
    package demo1;
    
    public class Test {
    
    	public static void main(String[] args) {
    		Xingzhuang san = new Delta(3,4,5);
    		System.out.println("三角形面积为:"san.area());
    		Xingzhuang ju = new Rectangle(4,5);
    		System.out.println("矩形面积:"ju.area());
    		Xingzhuang circle = new Circle(6);
    		System.out.println("圆的面积为:"circle.area());
    
    	}
    
    }
    
    

    实验结果

    2.编程技巧

    • (1) 抽象类定义的方法在具体类要实现;
    • (2) 使用抽象类的引用变量可引用子类的对象;
    • (3) 通过父类引用子类对象,通过该引用访问对象方法时实际用的是子类的方法。可将所有对象存入到父类定义的数组中。

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

    实验过程

    package demo2;
    
    public interface Shape {
    	public double size();
    	
    
    }
    
    
    package demo2;
    
    public class Steep implements Shape {
    
    	private double length;
    	public double getLength() {
    		return length;
    	}
    	public void setLength(double length) {
    		this.length = length;
    	}
    	public Steep(double length) {
    		this.length = length;
    	}
    	public Steep() {
    		
    	}
    	public double size() {
    		
    		return this.length;
    	}
    
    }
    
    package demo2;
    
    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) {
    		this.r = r;
    	}
    	public Circle() {
    		
    	}
    	public double size() {
    		
    		return Math.PI * Math.pow(this.r, 2);
    	}
    
    }
    
    
    package demo2;
    
    public class Test {
    
    	public static void main(String[] args) {
    		Shape steep = new Steep(8);
    		Shape circle = new Circle(3);
    		System.out.println("直线的长度为:"steep.size());
    		System.out.println("圆的面积为:"circle.size());
    	}
    
    }
    
    

    实验结果

    1. 编程技巧
      (1) 接口中定义的方法在实现接口的具体类中要重写实现;
      (2) 利用接口类型的变量可引用实现该接口的类创建的对象。

    总结

    本次实验让我理解了抽象类,还有对象的多态,以及接口,熟练的使用了包

    第七周总结

    本周主要讲了抽象类与接口的应用,object类。讲了异常的处理,捕获异常,throws关键字,Exception和RuntimeException

    抽象类与接口的应用

    抽象类主要是提供模板作用,接口主要是制定标准。
    抽象类中可以定义多个内部抽象类,接口中可以定义多个内部接口。

    抽象类与接口之间的关系


    一个类不要去继承一个已经实现的类,要么继承抽象类,要么实现接口,如果接口和抽象类都可以使用,那么优先使用接口,避免单继承局限。

    Object类

    object类是Java中最为常用的一个系统类,利用object类可以实现参数的统一。java中object是所有类的父类, 没有明显的继承,那就是object的子类。

    tostring打印对象时使用,可以覆写tostring,这样调用tostring就是子类覆写过的。
    object类中提供的equals方法默认比较的是地址

    捕获异常

    如果不处理异常,那么程序可能会中断执行,造成不必要的损失

    finall块可以省略,那么程序会执行try-catch之后的语句

    throws关键字

    throws关键字主要就是抛出异常,把异常的处理抛给,函数调用出,进行异常的捕获和处理

    Exception和RuntimeException

    Exception在程序中必须要进行异常捕获,RuntimeException可以不进行异常捕获,那么异常直接给JVm进行处理。

  • 相关阅读:
    Storm概念学习系列之storm出现的背景
    Storm概念学习系列之什么是实时流计算?
    Storm概念学习系列之storm-starter项目(完整版)(博主推荐)
    JAVA 毕业设计 辅导
    可视化的Redis数据库管理工具redis-desktop-manager的初步使用(图文详解)
    CentOS 7的安装详解
    GT-----如何做Android应用流量测试?
    性能测试开始前必知知识点
    【UI】自动化用例设计技巧
    国外免费接收短信验证码平台网站
  • 原文地址:https://www.cnblogs.com/xiao--liang/p/11651423.html
Copyright © 2011-2022 走看看