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

学习心得

好好学习,天天向上。

原文地址:https://www.cnblogs.com/yuhaner/p/11657596.html