第七周课程总结&实验报告(五)
2019-10-11 16:59 小小乌龟君 阅读(253) 评论(2) 收藏 举报学习总结:
本周学习了interface关键词,即接口。
1.一个类通过继承接口的方式,从而来继承接口的抽象方法。
2.一个接口可以有多个方法。
3.接口没有构造方法。
4.接口不能包含成员变量,除了 static 和 final 变量。
(一)抽象类的使用
设计一个类层次,定义一个抽象类--形状,其中包括有求形状的面积的抽象方法。 继承该抽象类定义三角型、矩形、圆。 分别创建一个三角形、矩形、圆存对象,将各类图形的面积输出。
注:三角形面积s=sqrt(p(p-a)(p-b)*(p-c)) 其中,a,b,c为三条边,p=(a+b+c)/2
父类
abstract class Person {
	private double a1;
	public Person(double a1) {
		this.a1 = a1;
	}
	
	public double getA1() {
		return a1;
	}
	public void Area() {
		System.out.println(this.getJisuan());
	}
	
	public abstract String getJisuan();
}
子类
class yuan extends Person {
	public yuan(double a1) {
		super(a1);
	}
	public String getJisuan() {
		return "圆形的面积=" +super.getA1()*super.getA1()*Math.PI;
	}
}
class Juxing extends Person {
	private double a2;
	public Juxing(double a1,double a2) {
		super(a1);
		this.a2 = a2;
	}
	public String getJisuan() {
		return "矩形的面积 = " +super.getA1()*this.a2;
	}
}
class Sanjiaoxing extends Person {
	private double a2;
	private double a3;
	public double p;
	public Sanjiaoxing(double a1, double a2, double a3) {
		super(a1);
		this.a2 = a2;
		this.a3 = a3;
	}
	
	public double P() {
		return p = (super.getA1()+this.a2+this.a3)/2;
	}
	
	public String getJisuan() {
		return "三角形的面积="+Math.sqrt(P()*(P()-super.getA1())*(P()-this.a2)*(P()-this.a3));
	}
}
测试类
public class wuguijun {
	public static void main(String[] args) {
		
		Person per1 = new Juxing(6,6);
		Person per2 = new Sanjiaoxing(3,4,5);
		Person per3 = new yuan(1);
		per1.Area();
		per2.Area();
		per3.Area();
	}
}

(二)使用接口技术
1定义接口Shape,其中包括一个方法size(),设计“直线”、“圆”、类实现Shape接口。分别创建一个“直线”、“圆”对象,将各类图形的大小输出。
接口
interface Shape{
	public void size();
}
class w1{
	public static void daxiao(Shape shape) {
		shape.size();
	}
};
class Yuan implements Shape{
	public void size() {
		System.out.println("圆的大小 = 5");
		
	}
};
class zhixian implements Shape{
	public void size() {
		System.out.println("直线的长度 = 4");
	}
};
测试类
public class work2 {
	public static void main(String[] args) {
		
		w1.daxiao(new Yuan());
		w1.daxiao(new zhixian());
	}
}

第二题修改:
接口
interface Shape{
	public void size();
}
class w1{
	public static void daxiao(Shape shape) {
		shape.size();
	}
};
class Yuan implements Shape{
	private double r;
	
	
	public double getR() {
		return r;
	}
	public Yuan(double r) {
		this.r = r;
	}
	public void size() {
		System.out.println("圆的大小 = "+r*r*Math.PI);
		
	}
};
class zhixian implements Shape{
	private double n;
	
	public double getN() {
		return n;
	}
	public zhixian(double n) {
		this.n = n;
	}	
	
	public void size() {
		System.out.println("直线的长度 = "+n);
	}
};
测试类
public class work2 {
	public static void main(String[] args) {
		
		Shape w1=new Yuan(1);
		Shape w2=new zhixian(3);
		
		w1.size();
		w2.size();
		
	}
}

                    
                
                
            
        
浙公网安备 33010602011771号