Java复数,java定义复数类,计算复数加法,并运行
爪哇岛创建一个复数类复杂,对复数进行数学运算,复数具有如下格式:RealPart ImaginaryPart*i,其中,我为-1的平方根,具体要求如下:
(1)利用浮点变量表示此类的私有数据。提供两个构造方法,一个用于此类声明时对象的初始化;一个为带默认值得无参构造方法。
(2)提供两复数加、减、乘的运算方法。
(3)按格式(甲、乙)打印复数,其中a为实部,b为虚部。
Java代码如下:
公共类复数实现可克隆的{
私有双实数部分;//复数的实部
私人双重想象部分;//复数的虚部
public ComplexNumber() { //默认构造函数
this.realPart=0.0
this.imaginaryPart=0.0
}
公共综合体编号(双一,双b) { //重载构造函数
这个。realpart=a;
这个。虚部=b;
}
/**
* 复数的加法运算c=a b的运算法则是:
* c .实部=a .实部b.实部
* c .虚部=a .虚部b.虚部
*/
公共复数add(复数aComNum){
if (aComNum==null) {
System.err.println(对象不能够为"无效!");
返回新复数();
}
返回新的复数(这个。实部acomnum。getrealpart(),this。虚部acomnum。getimaginary part());
}
/**
* 复数的减法运算c=a - b的运算法则是:
* c .实部=a .实部-乙。实部
* c .虚部=a .虚部-乙。虚部
*/
公共复数减少(ComplexNumber aComNum) {
if (aComNum==null) {
System.err.println(对象不能够为"无效!");
返回新复数();
}
返回新的复数(这个。realpart-acomnum。获取realpart()、this。虚部-acomnum。getimaginarypart());
}
/**
* 复数的乘法运算c=a * b的运算法则是:
* c .实部=a .实部* b .实部-答。虚部* b .虚部
* c .虚部=a .虚部* b .实部a.实部* b .虚部
*/
公共复数乘法(复数aComNum) {
if (aComNum==null) {
System.err.println(对象不能够为"无效!");
返回新复数();
}
双新实=这个。实部* acomnum。真正的部分-这个。虚部* acomnum。虚部;
双新虚=这个。实部* acomnum。这个的虚部。虚部* acomnum。实部;
复数结果=新复数(新实数,新虚数);
返回结果;
}
/**
* 复数的除法运算c=a/b的运算法则是:
* c .实部=(a .实部* b .实部a.虚部* b .虚部)/(b .实部* b .实部b.虚部* b .虚部)
* c .虚部=(a .虚部* b .实部-答。实部* b .虚部)/(b .实部* b .实部b.虚部* b .虚部)
*/
公共复数除法(复数aComNum) {
if (aComNum==null) {
System.err.println(对象不能够为"无效!");
返回新复数();
}
如果((acomnum。getrealpart()==0)(acomnum。getimaginarypart()==0)){
System.err.println(除数不能够为0!);
返回新复数();
}
double temp=acomnum。get realpart()* acomnum。获取realpart()acomnum。getimaginarypart()* acomnum。getimaginarypart();
双创部分=(这个。realpart * acomnum。get realpart()this。虚部* acomnum。getimaginarypart())/temp;
double cimaginaryPart=(this。虚部* acomnum。get realpart()-这个。realpart * acomnum。getimaginarypart())/temp;
返回新的ComplexNumber(crealpart,cimaginaryPart);
}
公共字符串toString() { //将一个复数显示为字符串
返回这个。真实部分" "这个。虚数部分“我”;
}
public boolean equals(Object obj){//比较一个对象是否和这个复数对象的值相等
if (obj==null) {
返回错误的
}
//首先判断a是不是一个复数对象,实例关于关键字是用来判断对象的类型
if(复数的obj实例){
//如果a是复数对象,需要将它强制类型转换成复数对象,才能调用复数类提供的方法
复数b=(复数)obj
如果((这个。realpart==b . getrealpart())(这个。虚部==b . getimaginary part())){
返回真实的
}否则{
返回错误的
}
}否则{
返回错误的
}
}
public int hashCode() { //获得该复数对象的散列码
/**
* 如果两个复数对象是等于的,那么它们的散列码也必须相同
* 两个值相等的复数对象通过toString()方法得到的输出字符串是一样的
* 于是,可以把得到的字符串的散列码当作复数对象的散列码
*/
返回this.toString().hashCode();
}
公共对象克隆(){ //根据现有对象克隆一个新对象
/**
* 如果要使自定义的类能够被克隆,就必须实现可克隆的接口并且重写它的克隆()方法
* 如果仅仅重写了克隆方法而没有在类的声明中添加实现可克隆的接口
* 调用克隆方法时将会出现CloneNotSupportedException异常
*/
尝试{
复数新对象=(复数)super。clone();
新对象。setrealpart(这个。realpart);
新对象。set虚部(this。虚部);
返回新建对象
} catch(CloneNotSupportedException e){//如果没有实现可克隆的接口,抛出异常
e。printstacktrace();
返回空
}
}
public double getimagenarypart(){//返回虚部
返回想象部分
}
公共空集合虚部(双虚部){//设置虚部
这个。虚部=虚部;
}
public double getRealPart() { //返回实部
返回实部
}
public void setRealPart(double realPart){//设置实部
this.realPart=realPart
}
公共静态void main(String[] args)引发CloneNotSupportedException {
复数a=新复数(20,15);
复数b=新的ComplexNumber(11,20);
系统。出去。println(复数a: a . tostring());
系统。出去。println(复数b: b . tostring());
系统。出去。println((a b)= a . add(b).toString());
系统。出去。println((a-b)= a .减少(b).toString());
系统。出去。println((a * b)= a .乘(b).toString());
系统。出去。println((a/b)= a .除(b).toString());
}
}以上就是爪哇岛怎么定义复数?的详细内容,更多请关注我们其它相关文章!
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。