zoukankan      html  css  js  c++  java
  • JAVA实验报告及第七周总结

    JAVA第六周作业

    实验报告五

    第一题

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

    实验代码

    package Output;
    
      abstract class Shuchu{
    	  public abstract double area();
      }
    
    package Output;
    import java.util.*;
    
    class triangle extends Shuchu{
    	     private double a;
    	     private double b;
    	     private double c;
    	     private double p;
    	     public triangle(double a,double b,double c) {
    	         setA(a);
    	         setB(b);
    	         setC(c);
    	         setP((a+b+c)/2);
    	     }
    	     public double area() {
    	         return Math.sqrt(getP()*(getP()-getA())*(getP()-getB())*(getP()-getC()));
    	     }
    	     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 double getP() {
    	         return p;
    	     }
    	     public void setP(double p) {
    	        this.p = p;
    	     }
    	     public void output1() {
    	    	System.out.println("三角形面积:"+area());
    	     }
    	 }
    	 class rectangle extends Shuchu{
    	     private double a;
    	     private double b;
    	     public double area() {
    	         return a*b;
    	     }
    	    public rectangle(double a,double b) {
    	         setA(a);
    	         setB(b);
    	     }
    	     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 void output2() {
    	         System.out.println("矩形面积:"+area());
    	     }
    	 }
    	 class circle extends Shuchu{
    	     private double radius;
    	     public double area() {
    	         return (Math.PI*Math.pow(radius, 2));
    	     }
    	     public double getRadius() {
    	        return radius;
    	    }
    	    public void setRadius(double radius) {
    	        this.radius = radius;
    	    }
    	     public circle(double radius) {
    	        setRadius(radius);
    	     }
    	     public void output3() {
    		System.out.println("圆面积:"+area());
    	     }
    	 }
    
    package Output;
    
    public class Test{
    	public static void main(String[] args){
    	        triangle tr=new triangle(2,2,2);
    	         rectangle re=new rectangle(1,2);
    	         circle cr=new circle(1);
    	         tr.output1();
    	         re.output2();
    	         cr.output3();
    	         }
    }
    
    

    运行结果

    第二题

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

    实验代码

    package Diqizhou;
    import Diqizhou.Shape;
    
    interface Shape{
    	 public void size(); 
    }
    class Xingzhuang{
    	public static void size(Shape shape) {
    		shape.size();
    	}
    }
    
    package Diqizhou;
    import java.util.*;
    
    class Straight implements Shape{
        private double length;
        public Straight(double length) {
           setLength(length);
        }
        public void size() {
            System.out.println("直线长度:"+getLength());
        }
        public double getLength() {
            return length;
        }
        public void setLength(double length) {
           this.length = length;
        }
    }
    class Circle implements Shape{
        private double radius;
        public void size() {
            System.out.println("圆面积:"+Math.PI*Math.pow(radius, 2));
        }
        public Circle(double radius) {
            setRidus(radius);
        }
        public double getRadius() {
           return radius;
        }
        public void setRidus(double radius) {
            this.radius = radius;
        }
        
    }
    
    package Diqizhou;
    public class Consequence {
    	public static void main(String[] args){
    		Straight st=new Straight(1);
    		Circle cr=new Circle(1);
    		st.size();
    	    cr.size();
    	    }
    	}
    

    运行结果

    学习总结

    1、一个栈内存只能够保存一个堆内存空间的地址。,若想再指向其他的堆内存空间,则必须先断开已有的指向才能分配新的指向。
    2、只要是被封装的属性,则必须通过setter()和getter()方法设置和取得。
    3、setter()方法进行内容得赋值。
    4、类中全部属性都必须封装。
    5、用private声明得属性和方法只能在其类的内部被调用,而不能在类的外部被调用。
    6、若要强调是本类中的方法,也可以在调用时按“this.方法名称()”的形式编写。
    7、main方法不写在抽象类(规范性)。
    8、如果抽象类和接口都可以使用时,优先室使用接口,因为可以避免单继承的局限。
    9、Object类中toString()方法可直接输出。
    10、Object类中的equals()方法默认是比较地址。

    学习心得

    好好学习,天天向上。

  • 相关阅读:
    第五章 Python——字符编码与文件处理
    第六章 Python——函数与面向过程编程
    第七章 Python——模块与包
    第一章 计算机硬件基础与操作系统介绍
    luogu P1706 全排列问题
    luogu 2142 高精度减法
    luogu P1601 高精度加法
    luogu P1803 线段覆盖 贪心
    luogu P1031 均分纸牌 贪心
    luogu P2678 跳石头 二分答案
  • 原文地址:https://www.cnblogs.com/yuhaner/p/11657596.html
Copyright © 2011-2022 走看看