1.定义复数类,包括实部和虚部变量、构造方法、 加减乘除方法、求绝对值方法和显示实部、虚部值的方法。 然后编写一个主类,在其主方法中通过定义两个复数对象来 显示每一个复数的实部值、虚部值和绝对值, 显示两个复数加减乘除结果。

package study;

public class demo1 {
public static void main(String[] args) throws Exception{
FuSu x=new FuSu(1,2);
FuSu y=new FuSu(3,4);
x.showa();
x.showb();
x.abs();
FuSu z1=FuSu.jia(x,y);
FuSu z2=FuSu.jian(x,y);
FuSu z3=FuSu.cheng(x,y);
FuSu z4=FuSu.chu(x,y);
System.out.println("jia:"+z1.a+"+"+z1.b+"i");
System.out.println("jia:"+z2.a+"+"+z2.b+"i");
System.out.println("jia:"+z3.a+"+"+z3.b+"i");
System.out.println("jia:"+z4.a+"+"+z4.b+"i");
}
} class FuSu{
protected int a;
protected int b;
public FuSu(int a,int b){
this.a=a;
this.b=b;
}
public static FuSu jia(FuSu x1,FuSu x2){
int a=x1.a+x2.a;
int b=x1.b+x2.b;
return new FuSu(a,b) ;
}
public static FuSu jian(FuSu x1,FuSu x2){
int a=x1.a-x2.a;
int b=x1.b-x2.b;
return new FuSu(a,b) ;
}
public static FuSu cheng(FuSu x1,FuSu x2){
int a=x1.a*x2.a-x1.b*x2.b;
int b=x1.a*x2.b+x1.b*x2.a;
return new FuSu(a,b);
}
public static FuSu chu(FuSu x1,FuSu x2) throws Exception{
if(x2.a==0){
throw new Exception("fusu2.a=0");
}
if(x2.b==0){
throw new Exception("fusu2.b=0");
}
int a=(x1.a*x2.a+x1.b*x2.b)/(x2.a*x2.a+x2.b*x2.b);
int b=(x1.b*x2.a-x1.a*x2.b)/(x2.a*x2.a+x2.b*x2.b);
return new FuSu(a,b);
}
public void showa(){
System.out.println(this.a);
}
public void showb(){
System.out.println(this.b);
}
public void abs(){
double x=Math.sqrt(this.a*this.a+this.b*this.b);
System.out.println(x);
}

【Java例题】2.1复数类的更多相关文章

  1. 定义一个复数(z=x+iy)类Complex,包含: 两个属性:实部x和虚部y 默认构造函数 Complex(),设置x=0,y=0 构造函数:Complex(int i,int j) 显示复数的方法:showComp()将其显示为如: 5+8i或5-8i 的形式。 求两个复数的和的方法:(参数是两个复数类对象,返回值是复数类对象)public Complex addComp(Compl

    因标题框有限,题目未显示完整,以下再放一份: 定义一个复数(z=x+iy)类Complex,包含: 两个属性:实部x和虚部y 默认构造函数 Complex(),设置x=0,y=0 构造函数:Compl ...

  2. java 深入技术七(类的结构和反射)

    1.java反射(reflect) java 类的结构 java反射机制就是把java类按结构分解,每一部分对应特定的反射类 java反射机制允许运行时加载,探知和使用在编译期间完全未知的classe ...

  3. Java并发编程:Thread类的使用

    Java并发编程:Thread类的使用 在前面2篇文章分别讲到了线程和进程的由来.以及如何在Java中怎么创建线程和进程.今天我们来学习一下Thread类,在学习Thread类之前,先介绍与线程相关知 ...

  4. java: Thread 和 runnable线程类

    java: Thread 和 runnable线程类 Java有2种实现线程的方法:Thread类,Runnable接口.(其实Thread本身就是Runnable的子类) Thread类,默认有ru ...

  5. [转]Java反射之如何判断类或变量、方法的修饰符(Modifier解析)

    Java针对类.成员变量.方法,有很多修饰符,例如public.private.static.final.synchronized.abstract等,这些修饰符用来控制访问权限或其他特性. 本文就用 ...

  6. Rhino+envjs-1.2.js 在java运行网站js 工具类

    java爬虫遇到个页面加密的东西,找了些资料学习学习 做了个java运行js的工具类,希望对大家有用,其中用到client(获取js)可以自行换成自己的client.主要是用了 Rhino就是Java ...

  7. Java集合框架(常用类) JCF

    Java集合框架(常用类) JCF 为了实现某一目的或功能而预先设计好一系列封装好的具有继承关系或实现关系类的接口: 集合的由来: 特点:元素类型可以不同,集合长度可变,空间不固定: 管理集合类和接口 ...

  8. Java虚拟机JVM学习07 类的卸载机制

    Java虚拟机JVM学习07 类的卸载机制 类的生命周期 当Sample类被加载.连接和初始化后,它的生命周期就开始了. 当代表Sample类的Class对象不再被引用,即不可触及时,Class对象就 ...

  9. Java虚拟机JVM学习04 类的初始化

    Java虚拟机JVM学习04 类的初始化 类的初始化 在初始化阶段,Java虚拟机执行类的初始化语句,为类的静态变量赋予初始值. 在程序中,静态变量的初始化有两种途径: 1.在静态变量的声明处进行初始 ...

随机推荐

  1. leadcode的Hot100系列--78. 子集--位运算

    看一个数组的子集有多少,其实就是排列组合, 比如:[0,1] 对应的子集有:[] [0] [1] [1,1] 这四种. 一般对应有两种方法:位运算 和 回溯. 这里先使用位运算来做. 位运算 一个长度 ...

  2. navicat远程连接mysql10060

    navicat连接mysql时,出现2003-Can't connect to MySql server on '47.106.228.160'(10060"Unknow error&quo ...

  3. HDU 6043:Colorful Tree(树上统计所有路径总颜色数)***

    题目链接 题意 给出一棵有n个结点的树,每个结点有一个颜色,问在这棵树的所有路径中,每条路径的颜色数求和是多少. 思路 求每种颜色的贡献可以转化为总的和减去每种颜色在哪些路径上没有出现的贡献,一个颜色 ...

  4. Codeforces 777E:Hanoi Factory(贪心+栈)

    http://codeforces.com/problemset/problem/777/E 题意:给出n个环状圆柱,每个圆环有一个内半径a,外半径b,和高度h,只有外半径bj <= bi并且b ...

  5. Django随机生成验证码图片

    PIL简介 什么是PIL PIL:是Python Image Library的缩写,图像处理的模块.主要的类包括Image,ImageFont,ImageDraw,ImageFilter PIL的导入 ...

  6. Linux命令学习-tail命令

    Linux中,tail命令的全称就是tail,主要用于监控日志文件. 对于一个正在运行应用来说,其对应的log日志文件肯定是在不断的更新,此时,便可通过tail命令来动态显示日志文件的内容.假设当前目 ...

  7. 上传文件不落地转Base64字符串

    1. 问题描述 因需调用第三方公司的图像识别接口,入参是:证件类型.图像类型.图片base64字符串,采用http+json格式调用. 本来采用的方式是:前端对图片做base64处理,后端组装下直接调 ...

  8. 使用gets函数常见问题

    C语言面试经常会考如下一道题,哪里有错误: #include <stdio.h>    int main()  {     char string[100] = {'\0'};       ...

  9. linux应用程序设计--Makefile工程管理

    Makefile文件描述了整个工程的编译.链接等规则.包括:工程中哪些源文件需要编译以及如何编译:需要创建哪些库文件以及如何创建这些库文件.如何产生最终的可执行文件. Makefile相关术语 1.规 ...

  10. 微信小程序 textarea 层级过高的解决方式

    建立一个新的textarea 组件代替原生textarea ,废话不多说,上代码 <template> <view class="ui-textarea"> ...