- 浏览: 41387 次
- 性别:
- 来自: 杭州
最近访客 更多访客>>
文章分类
最新评论
-
Demin7926:
正好想要这样的数据,而且最好还是.mdf的,但还是不错了,多谢 ...
中国地区数据库Access c#生成sql数据文件 -
zhuzidian:
1.这个classpath是没有必要设置的,那几个jar默认会 ...
Java开发环境的搭建 -
蜡笔小新:
收下
请问第2条中,J2EE开发环境下载什么样的sdk呢?
Java开发环境的搭建
package book.oo; public class ComplexNumber implements Cloneable{ /** 复数的实部 */ private double realPart; /** 复数的虚部 */ private double imaginaryPart; /** 默认构造函数 */ public ComplexNumber() { this.realPart = 0.0; this.imaginaryPart = 0.0; } /** * 构造函数 * @param a 实部 * @param b 虚部 */ public ComplexNumber(double a, double b) { this.realPart = a; this.imaginaryPart = b; } /** * 复数的加法运算。 * c = a + b的运算法则是: * c.实部 = a.实部 + b.实部; c.虚部 = a.虚部 + b.虚部 * @param aComNum 加数 * @return */ public ComplexNumber add(ComplexNumber aComNum) { if (aComNum == null) { System.err.println("对象不能够为null!"); return new ComplexNumber(); } return new ComplexNumber(this.realPart + aComNum.getRealPart(), this.imaginaryPart + aComNum.getImaginaryPart()); } /** * 复数的减法运算。 * c = a - b的运算法则是: * c.实部 = a.实部 - b.实部; c.虚部 = a.虚部 - b.虚部 * @param aComNum 减数 * @return */ public ComplexNumber decrease(ComplexNumber aComNum) { if (aComNum == null) { System.err.println("对象不能够为null!"); return new ComplexNumber(); } return new ComplexNumber(this.realPart - aComNum.getRealPart(), this.imaginaryPart - aComNum.getImaginaryPart()); } /** * 复数的乘法运算。 * c = a * b的运算法则是: * c.实部 = a.实部 * b.实部 - a.虚部 * b.虚部; * c.虚部 = a.虚部 * b.实部 + a.实部 * b.虚部; * @param aComNum 乘数 * @return */ public ComplexNumber multiply(ComplexNumber aComNum) { if (aComNum == null) { System.err.println("对象不能够为null!"); return new ComplexNumber(); } double newReal = this.realPart * aComNum.realPart - this.imaginaryPart * aComNum.imaginaryPart; double newImaginary = this.realPart * aComNum.imaginaryPart + this.imaginaryPart * aComNum.realPart; ComplexNumber result = new ComplexNumber(newReal, newImaginary); return result; } /** * 复数的除法运算。 * c = a / b 的运算法则是: * c.实部 = (a.实部 * b.实部 + a.虚部 * b.虚部) / (b.实部 *b.实部 + b.虚部 * b.虚部); * c.虚部 = (a.虚部 * b.实部 - a.实部 * b.虚部) / (b.实部 * b.实部 + b.虚部 * b.虚部); * @param aComNum 除数 * @return */ public ComplexNumber divide(ComplexNumber aComNum) { if (aComNum == null) { System.err.println("对象不能够为null!"); return new ComplexNumber(); } if ((aComNum.getRealPart() == 0) && (aComNum.getImaginaryPart() == 0)) { System.err.println("除数不能够为0!"); return new ComplexNumber(); } double temp = aComNum.getRealPart() * aComNum.getRealPart() + aComNum.getImaginaryPart() * aComNum.getImaginaryPart(); double crealpart = (this.realPart * aComNum.getRealPart() + this.imaginaryPart * aComNum.getImaginaryPart()) / temp; double cimaginaryPart = (this.imaginaryPart * aComNum.getRealPart() - this.realPart * aComNum.getImaginaryPart()) / temp; return new ComplexNumber(crealpart, cimaginaryPart); } /** * 将一个复数显示为字符串 */ public String toString() { return this.realPart + " + " + this.imaginaryPart + "i"; } /** * 比较一个对象是否和这个复数对象的值相等 */ public boolean equals(Object obj) { if (obj == null) { return false; } // 首先判断a是不是一个复数对象,instanceof关键字是用来判断对象的类型。 if (obj instanceof ComplexNumber) { // 如果a是复数对象,需要将它强制类型转换成复数对象,才能调用复数类提供的方法。 ComplexNumber b = (ComplexNumber) obj; if ((this.realPart == b.getRealPart()) && (this.imaginaryPart == b.getImaginaryPart())) { return true; } else { return false; } } else { return false; } } /** * 获得该复数对象的hashcode */ public int hashCode() { // 如果两个复数对象是equals的,那么它们的hashCode也必须相同。 // 两个值相等的复数对象通过toString()方法得到的输出字符串是一样的, // 于是,可以把得到的字符串的hashCode当作复数对象的hashCode return this.toString().hashCode(); } /** * 根据现有对象克隆一个新对象 */ public Object clone() { // 如果你要使自定义的类能够被clone,就必须实现Cloneable接口并且重写它的clone()方法. // 如果你仅仅重写了clone方法而没有在类的声明中添加实现Cloneable接口,调用clone方法时将会出现 // CloneNotSupportedException异常,读者可以试试。 try { ComplexNumber newObject = (ComplexNumber) super.clone(); newObject.setRealPart(this.realPart); newObject.setImaginaryPart(this.imaginaryPart); return newObject; } catch (CloneNotSupportedException e) { // //如果没有实现Cloneable接口,抛出异常 e.printStackTrace(); return null; } } /** * @return 返回 imaginaryPart。 */ public double getImaginaryPart() { return imaginaryPart; } /** * @param imaginaryPart 要设置的 imaginaryPart。 */ public void setImaginaryPart(double imaginaryPart) { this.imaginaryPart = imaginaryPart; } /** * @return 返回 realPart。 */ public double getRealPart() { return realPart; } /** * @param realPart 要设置的 realPart。 */ public void setRealPart(double realPart) { this.realPart = realPart; } public static void main(String[] args) throws CloneNotSupportedException { ComplexNumber a = new ComplexNumber(2, 4); ComplexNumber b = new ComplexNumber(2, 4); System.out.println("ComplexNumber a: " + a.toString()); System.out.println("ComplexNumber b: " + b.toString()); System.out.println("a.euqals(b) = " + a.equals(b)); System.out.println("a.hashCode = " + a.hashCode() + "; b.hashCode = " + b.hashCode()); System.out.println("a.clone = " + a.clone().toString()); // System.out.println("(a + b) = " + a.add(b).toString()); // System.out.println("(a - b) = " + a.decrease(b).toString()); // System.out.println("(a * b) = " + a.multiply(b).toString()); // System.out.println("(a / b) = " + a.divide(b).toString()); // System.out.println(a.equals(b)); // ComplexNumber c = new ComplexNumber(1, 2); // ComplexNumber d = new ComplexNumber(1.00, 2.0); // // ComplexNumber e = (ComplexNumber) d.clone(); // System.out.println(e.toString()); } }
发表评论
-
JDK_实例(求指定范围内的质数)
2009-11-20 14:15 845package book.arrayset; impor ... -
JDK_实例(使用Arrays)
2009-10-29 13:28 697package book.arrayset; impor ... -
JDK_实例(处理大数字)
2009-10-29 13:21 1036package book.number; import ... -
JDK_实例(生成随机数)
2009-10-29 13:20 1936package book.number; import ... -
JDK_实例(转换数字的进制)
2009-10-29 13:16 985package book.number; /** * ... -
JDK_实例(数字的舍入)
2009-10-29 13:14 917package book.number; import ... -
JDK_实例(格式化数字)
2009-10-29 13:05 579package book.number; import ... -
JDK_实例(数字和数字封装类)
2009-10-29 13:02 713package book.number; /** * ... -
JDK_实例(Adapter 适配器模式)
2009-10-29 12:43 1493接口 package book.oo.sort; / ... -
JDK_实例(Factory工厂模式)
2009-10-29 12:39 839接口 package book.oo.factory; ... -
JDK_实例(Singleton单列模式)
2009-10-29 12:35 1025A package book.oo.singleton; ... -
JDK_实例(排序类)
2009-10-29 12:29 1048排序接口 package book.oo.sort; ... -
JDK_实例(方法与变量在继承时的覆盖和隐藏)
2009-10-29 12:24 782父类 package book.oo.cov ... -
JDK_实例(类的加载顺序)
2009-10-29 12:20 721父类 package book.oo.initorder; ... -
JDK_实例(自定义形状类)
2009-10-29 12:12 788长方形 package book.oo; ... -
JDK_实例(Java 参数传递)
2009-10-29 12:05 905package book.oo; public clas ... -
JDK_实例(命令行程序)
2009-10-29 11:29 667package book.basic; public c ... -
JDK_实例(计算阶乘)
2009-10-29 11:28 699package book.basic; public c ... -
JDK_实例(控制程序流程)
2009-10-29 11:27 549package book.basic; public c ... -
JDK_实例(java 运算符)
2009-10-29 11:24 792package book.basic; public c ...
相关推荐
《JAVA JDK实例宝典》是一本全面覆盖Java开发核心领域的指南,旨在帮助开发者深入理解和熟练应用JDK中的各种工具和技术。书中的内容丰富多样,涵盖了从基础语法到高级特性的各个方面,以下是各部分的主要知识点: 1...
全部代码出自电子工业出版社夏先波的《Java JDK实例宝典》一书,本书以J2SE 5.0为开发环境,选取Java应用的典型实例,循序渐进地介绍了Java语言的各种开发方法和技巧,实例代码注释详细规范,思路清晰。 第1章 ...
实例165 自定义复数类 261 9.3 继承 264 实例166 轿车与本田的关系 264 实例167 继承关系的加载顺序 266 实例168 如何访问同名的方法或变量 268 实例169 super()方法的使用 271 实例170 this方法的使用 274 实例171 ...
例如,可以创建一个Calculator类,其中包含各种计算方法,然后在主程序中实例化并调用这些方法。事件处理的逻辑则可以通过匿名内部类或者lambda表达式来实现,使得代码更加简洁。 在调试和测试过程中,开发者会用到...
实例165 自定义复数类 261 9.3 继承 264 实例166 轿车与本田的关系 264 实例167 继承关系的加载顺序 266 实例168 如何访问同名的方法或变量 268 实例169 super()方法的使用 271 实例170 this...
实例165 自定义复数类 261 9.3 继承 264 实例166 轿车与本田的关系 264 实例167 继承关系的加载顺序 266 实例168 如何访问同名的方法或变量 268 实例169 super()方法的使用 271 实例170 this方法的使用 274 实例171 ...
实例165 自定义复数类 261 9.3 继承 264 实例166 轿车与本田的关系 264 实例167 继承关系的加载顺序 266 实例168 如何访问同名的方法或变量 268 实例169 super()方法的使用 271 实例170 ...
实例165 自定义复数类 261 9.3 继承 264 实例166 轿车与本田的关系 264 实例167 继承关系的加载顺序 266 实例168 如何访问同名的方法或变量 268 实例169 super()方法的使用 271 实例170 this方法的使用 274 ...
实例226 复数的常见运算 284 实例227 T分布常用计算 285 10.3 Commons IO组件简介 286 实例228 简化文件(夹)删除 286 实例229 简化文件(夹)复制 287 实例230 简化文件(夹)排序 288 实例231 简化文件(夹)过滤...
1. 编写一个复数类ComplexNumber,其中包括实例变量real和image,方法如下: * 构造方法ComplexNumber(double a, double b) * ComplexNumber add(ComplexNumber x) //当前复数对象与另一复数对象进行复数的加法...
复数类`complex`的定义要求学生掌握实例变量的使用,以及如何通过方法实现对象间的操作。重写`add`和`sub`方法实现复数的加减运算,是面向对象中方法重写概念的实践应用。此外,显示复数的方法`show`需要根据不同...
- **复数运算**:创建复数类,实现复数间的加、减、乘、除运算,理解面向对象的继承和重写方法。 7. **文件输入输出**: - **文件操作**:学习如何创建和读取顺序文件和随机文件,以及如何存储和检索学生信息。 ...
- `java.math`:处理大数和复数的类。 18. **Object类**: - Java中最顶级的父类,所有其他类都直接或间接继承自它。 19. **Object类的常用方法**: - `equals()`:比较对象是否相等。 - `hashCode()`:返回...
1. **类的定义**:定义一个包含实例变量 `real` 和 `image` 的 `ComplexNumber` 类。 2. **构造方法**:`ComplexNumber(double a, double b)` 用于创建复数对象,初始化实部和虚部。 3. **对象的创建**:通过 `new...
13. **静态变量**:被`static`关键字修饰的变量是静态变量,它可以被类的所有实例共享。 14. **栈与队列**:它们的共同点是都只能在端点(栈顶或队尾)进行插入和删除操作。 15. **异常处理**:`sleep()`方法会抛...
- **JMyTest类**:负责计算器的主要逻辑和界面展现,继承自`JFrame`,包含了`JMyTestData`实例,用于初始化和控制计算器的各项功能。 ##### 事件监听与交互 - 通过实现`ActionListener`接口,为每个按钮添加事件...