问题描述:设计一个复数类,要求

                  (1)在复数内部用双精度浮点数定义其实部和虚部

                  (2)实现3个构造函数;第1个构造函数没有参数;

                           第2个构造函数将双精度浮点数赋给复数的实部,虚部为0;

                           第3个构造函数将两个双精度浮点数分别赋给复数的实部和虚部。

                  (3)编写获取和修改复数的实部和虚部的成员函数

                  (4)编写实现复数的减法、乘法运算的成员函数

涉及教材:《数据结构——Java语言描述(第2版)》 清华大学出版社

涉及变量:plurality_0112 : 我自定义的复数类

                real:double型,复数的实部

                image:double型,复数的虚部

 问题出自教材第一章课后习题 P28    

 思路:

 1.了解复数,复数分为实部和虚部两部分,数学表现形式为 a+bi,i为虚数单位,在类中可不表现

(1)定义两个private的double型数real和image

  一般用private来定义内部私有的成员变量,若要调用该变量必须通过即将定义的get方法,以表规范

(2)构造方法为用public修饰的,没有返回值修饰符的特殊方法,用于类的初始化

  可在一个构造方法中this()调用另一个构造方法

 成员变量的定义和构造方法代码如下:

设计复数类java 设计一个复数类_构造方法

  (3)一般而言,设置获取某个类中私有成员变量的方法命名是get成员变量名,返回值为该成员变量类型

     修改成员变量的方法命名为set成员变量名,返回值修饰符为void

设计复数类java 设计一个复数类_设计复数类java_02

(4)题目中只要求减法和乘法,我顺便把加法和除法也做了

 加减法没有太大问题,就是将外来复数的实数值与虚数值分别与本复数的实部值和虚部值相加或相减,并将所得值赋予本复数

设计复数类java 设计一个复数类_构造函数_03

 乘法和除法有公式可以得到实部值和虚部值,编写算法时注意不要将原有的值与更改后的值弄混

 进行计算时是使用原有的值,但若用加减法那种直接用this调用成员变量的方法会误使用更改后的值

 在进行赋值前要先将需要的值存放在局部变量中

设计复数类java 设计一个复数类_设计复数类java_04

 以上两个算法中其实都只需要将this.real赋值于real即可,div()中是为了方便截图才用了三个局部变量

 这是属于比较简单的类的定义,以后会经常用到,乘除方法公式网上也有,只要公式不要写混就没有太大难度

 答案在乘法的大致思路是先将所计算出的实部值存放在变量中,最后再将变量赋值于this.real,在计算中可以正常使用this方法来调用成员变量

 以上希望对各位有所帮助

190112 Rewivy