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()方法默认是比较地址。

    学习心得

    好好学习,天天向上。

  • 相关阅读:
    How to install VXDIAG Honda, Toyota and JLR SDD software
    16% off MPPS V16 ECU tuning tool for EDC15 EDC16 EDC17
    Cummins INSITE locked and ask for verification code
    How to use BMW Multi Tool 7.3 to replace lost key for BMW X1
    Bleed Brake Master Cylinder with Intelligent Tester IT2
    Porsche Piwis Tester II “No VCI has been detected”,how to do?
    Creader VIII VS. Creader VII+
    How to solve GM MDI cannot complete the installation
    汽车OBD2诊断程序开发 (原文转载,思路很清晰!)
    汽车节温器单片机开发思路
  • 原文地址:https://www.cnblogs.com/yuhaner/p/11657596.html
Copyright © 2011-2022 走看看