其他分享
首页 > 其他分享> > 类的封装与设计--复数类

类的封装与设计--复数类

作者:互联网

实验1:类的封装设计

一、实验内容:
按照数学领域对复数(Plural)的操作需求,设计复数类,并按照类的封装原则,对类进行优化。
提示:一个完整的复数由实部(real part)和虚部(virtual part)构成,例如0,-1,i,-i,-1+2.0i,1+i,-1.0-i等。在数学中,复数通常有加(plus)、减(minus)、乘(times)、求模(mod)四种主要运算。

二、实验要求:
(1)设计完整的复数类Plural,根据实验内容要求定义正确的属性和方法。
(2)设计测试类TestPlural,计算以下两个表达式(不考虑优先级),并输出运算结果:
(-1) + (-3i) - (2-2i) * (i) (表达式1)
|(3) + (-4+5.0i) * (-5.1-7.2i) - (-1-2.0i)| (表达式2)
(3)按照类的封装原则,对复数类进行优化。

要求1

//设计复数类
/*
属性:实部、虚部
方法:add、minus、mul、mod
*/
public class Plural {
		double real,virtual;
		Plural(double real,double virtual){
			this.real=real;
			this.virtual=virtual;
		}
		//加
		public void add(Plural p)
		{
			this.real+=p.real;
			this.virtual+=p.virtual;
		}
		//减
		public void minus(Plural p)
		{
			this.real-=p.real;
			this.virtual-=p.virtual;
		}
		//乘(a+bi)(c+di)=(ac-bd)+(bc+ad)i
		public void mul(Plural p)
		{
			double tmpReal=this.real*p.real-this.virtual*p.virtual;
			this.virtual=this.virtual*p.real+this.real*p.virtual;
			this.real=tmpReal;
		}
		//mod 根号下a方+b方
		public double mod()
		{
			return Math.sqrt(this.real*this.real+this.virtual*this.virtual);
		}
		public void printf()
		{
			System.out.print(this.real);
			if(this.virtual>=0)
			{
				System.out.println("+"+this.virtual);
			}else {
				System.out.println(this.virtual);
			}
		}
}

要求2

//设计测试类
public class TestPlural {
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		//实例1
		Plural p1=new Plural(-1,0);
//		System.out.println(p1);
		Plural p2=new Plural(0,-3);
		Plural p3=new Plural(2,-2);
		Plural p4=new Plural(0,1);
		
		p1.add(p2);
		p1.minus(p3);
		p1.mul(p4);
		p1.printf();
		//实例2
		Plural q1=new Plural(3,0);
		Plural q2=new Plural(-4,5.0);
		Plural q3=new Plural(-5.1,-7.2);
		Plural q4=new Plural(-1,-2.0);
		
		q1.add(q2);
		q1.mul(q3);
		q1.minus(q4);
		System.out.print(q1.mod());
	}
}

要求3

//类的封装设计
//private
private double real,virtual;
//获取实部
public double getReal()
{
    return real;
}
//获取虚部
public double getVirtual() {
    return virtual;
}

标签:real,封装,--,double,virtual,复数,new,Plural,public
来源: https://www.cnblogs.com/Calculus9/p/13880621.html