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

    1. 编程技巧

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

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

     

    (一)实验源码:

     1 import java.util.*;
     2 
     3 abstract class Shape{
     4     public abstract double area();
     5 }
     6 class triangle extends Shape {
     7     private double a,b,c,p;
     8     public triangle(double a,double b,double c) {
     9         setA(a);
    10         setB(b);
    11         setC(c);
    12         setP((a+b+c)/2);
    13     }
    14     public double area() {
    15         return Math.sqrt(getP()*(getP()-getA())*(getP()-getB())*(getP()-getC()));
    16     }
    17     public double getA() {
    18         return a;
    19     }
    20     public void setA(double a) {
    21         this.a = a;
    22     }
    23     public double getB() {
    24         return b;
    25     }
    26     public void setB(double b) {
    27         this.b = b;
    28     }
    29     public double getC() {
    30         return c;
    31     }
    32     public void setC(double c) {
    33         this.c = c;
    34     }
    35     
    36     public double getP() {
    37         return p;
    38     }
    39     public void setP(double p) {
    40         this.p = p;
    41     }
    42     public void output1() {
    43         System.out.println("三角形面积:"+area());
    44     }
    45 }
    46 class rectangle extends Shape{
    47     private double a,b;
    48     public double area() {
    49         return a*b;
    50     }
    51     public rectangle(double a,double b) {
    52         setA(a);
    53         setB(b);
    54     }
    55     public double getA() {
    56         return a;
    57     }
    58     public void setA(double a) {
    59         this.a = a;
    60     }
    61     public double getB() {
    62         return b;
    63     }
    64     public void setB(double b) {
    65         this.b = b;
    66     }
    67     
    68     public void output2() {
    69         System.out.println("矩形的面积:"+area());
    70     }
    71 }
    72 class circle extends Shape{
    73     private double radius;
    74     public double area() {
    75         return 2*(Math.PI*Math.pow(radius, 2));
    76     }
    77     public double getRadius() {
    78         return radius;
    79     }
    80     public void setRadius(double radius) {
    81         this.radius = radius;
    82     }
    83     public circle(double radius) {
    84         setRadius(radius);
    85     }
    86     public void output3() {
    87         System.out.println("圆的面积:"+area());
    88     }
    89 }
    90 public class Text1{
    91     public static void main(String[] args){
    92         triangle tr=new triangle(4,5,6);
    93         rectangle re=new rectangle(4,6);
    94         circle cr=new circle(4);
    95         tr.output1();
    96         re.output2();
    97         cr.output3();
    98     }
    99 }

    实验结果:

    (二)实验源码:

     1 import java.util.*;
     2 
     3 interface Shape{
     4     public void size(); 
     5 }
     6 class Line implements Shape{
     7     private double length;
     8     public Line(double length) {
     9         setLength(length);
    10     }
    11     public void size() {
    12         System.out.println("直线长度:"+getLength());
    13     }
    14     public double getLength() {
    15         return length;
    16     }
    17     public void setLength(double length) {
    18         this.length = length;
    19     }
    20 }
    21 class Circle implements Shape{
    22     private double ridus;
    23     public void size() {
    24         System.out.println("圆的面积:"+(2*(Math.PI*Math.pow(ridus, 2))));
    25     }
    26     public Circle(double ridus) {
    27         setRidus(ridus);
    28     }
    29     public double getRidus() {
    30         return ridus;
    31     }
    32     public void setRidus(double ridus) {
    33         this.ridus = ridus;
    34     }
    35     
    36 }
    37 public class Text1{
    38     public static void main(String[] args){
    39         Line ln=new Line(3);
    40         Circle cr=new Circle(3);
    41         ln.size();
    42         cr.size();
    43     }
    44 }

    实验结果:

    这次实验很简单,实验过程没有问题和困惑,所以没有错误截图。

    第七周学习总结

    本周主要学习了抽象类和接口的应用,object类的基本作用。

    一,接口与抽象类的实际应用

    (1)抽象类实际应用——模板设计

    (2)接口的实际应用——制定标准

    二,object类的基本作用

    Object是java中最为常见的一个系统程序类,object类可以实现参数统一。

    (1)在java中所有的类都有一个公共的父类object类,一个类只要没有明显的继承一个类,则肯定是object类的子类。以下两代码的含义是一样的:

    class  Person extends Object{}

    class  Person{}

    (2)Object类的主要方法

    序号

    方法名称

    类型

    描述

    1

    public Object()

    构造

    构造方法

    2

    public boolean equals(Object obj)

    普通

    对象比较

    3

    public int hashCode()

    普通

    取得Hash码

    4

    public String toSting()

    普通

    对象打印时调用

  • 相关阅读:
    mysql性能优化之索引优化
    提高mysql千万级大数据SQL查询优化30条经验(Mysql索引优化注意)
    MySQL高级-索引优化
    MySQL性能调优——索引详解与索引的优化
    通过force index了解的MySQL查询的性能优化
    Mysql 日期型,索引查询的问题
    mysql按日期分组(group by)查询统计的时候,没有数据补0的解决办法。
    SQL中Group By的使用
    GROUP BY 与聚合函数 使用注意点
    MYSQL GROUP BY Optimization
  • 原文地址:https://www.cnblogs.com/noacgnnolife/p/11655043.html
Copyright © 2011-2022 走看看