- 浏览: 40064 次
- 性别:
- 来自: 杭州
最近访客 更多访客>>
文章分类
最新评论
-
Demin7926:
正好想要这样的数据,而且最好还是.mdf的,但还是不错了,多谢 ...
中国地区数据库Access c#生成sql数据文件 -
zhuzidian:
1.这个classpath是没有必要设置的,那几个jar默认会 ...
Java开发环境的搭建 -
蜡笔小新:
收下
请问第2条中,J2EE开发环境下载什么样的sdk呢?
Java开发环境的搭建
长方形
package book.oo; public class PassParamter { public PassParamter() { } public void methodA(ComplexNumber comNum) { // comNum这个引用指向了一个新new出来的对象。 comNum = new ComplexNumber(1, 2); } public void methodB(ComplexNumber comNum) { // comNum这个引用指向的还是同一个对象,但是,这里修改该对象的值。 comNum.setRealPart(1); comNum.setRealPart(2); } public void methodC(int num) { // 将num的值加1 num++; } public static void main(String[] args) { PassParamter test = new PassParamter(); ComplexNumber comNum = new ComplexNumber(5, 5); System.out.println("调用methodA方法之前,comNum: " + comNum.toString()); test.methodA(comNum); System.out.println("调用methodA方法之后,comNum: " + comNum.toString()); System.out.println("调用methodB方法之前,comNum: " + comNum.toString()); test.methodB(comNum); System.out.println("调用methodB方法之后,comNum: " + comNum.toString()); int num = 0; System.out.println("调用methodC方法之前,num: " + num); test.methodC(num); System.out.println("调用methodC方法之后,num: " + num); // 调用methodA方法之前,comNum: 5.0 + 5.0i // 调用methodA方法之后,comNum: 5.0 + 5.0i // 调用methodB方法之前,comNum: 5.0 + 5.0i // 调用methodB方法之后,comNum: 2.0 + 5.0i // 调用methodC方法之前,num: 0 // 调用methodC方法之后,num: 0 /** * Java的参数传递策略: * 0,所谓传值的意思是:在调用方法时,将参数的值复制一份,方法里面用复件,方法外面用原件,复件改变了,不影响原件;原件改变了,不影响复件。 * 1,对于基本数据类型,比如int,long等类型,采用传值的策略。将参数的值复制一份后传给方法,方法可以改变参数值的复件,但不会改变参数值的原件。 * 2,对于对象类型,也采用的传值策略,不过,是将参数的引用复制(2个引用指向同一个对象)一份传给方法,方法可以改变参数引用的复件,但不会改变参数引用的原件。 * * 解释三个输出: * 1,调用methodA方法时,首先将comNum对象的引用复制一份,将引用的复件传递给methodA方法,main方法保持引用的原件,此时,引用原件和引用复件都指向comNum对象。 * 执行comNum = new ComplexNumber(1,2);语句后,将引用复件指向了另外一个新的对象,此时,引用复件和引用原件指向的是不同的对象。回到main方法时,操作的仍然是引用原件指向的comNum对象。 * 2,调用methodB方法时,首先将comNum对象的引用复制一份,将引用的复件传递给methodB方法,main方法保持引用的原件,此时,有引用原件和引用复件都指向comNum对象。 * 执行comNum.setRealPart(1);comNum.setRealPart(2);语句后,修改了引用复件所指对象的内容,而此时,引用复件和引用原件指向的是同一个对象,因此,引用原件指向的对象的内容也改变了。回到main方法时,comNum对象也改变了。 * 3,调用methodC方法时,首先将num的值复制一份,将值的复件传递给methodC方法,main方法保持值的原件。 执行num * ++;语句后,复件的值会加1。回到main方法时,操作的仍然是原件,值保持不变。 */ } }
三角形
package book.oo.shape; /** * 三角形 */ public class Triangle extends MyShape{ //边a的长度 private double sideA; //边b的长度 private double sideB; //边c的长度 private double sideC; //边长错误 public static final String SIDEERR = "三角形的边长不能够小于0!"; //不能构成三角形错误 public static final String SHAPEERR = "三角形的二边之和必须大于第三边!"; /** *默认构造函数 */ public Triangle(){ init(); } /** * 用三条边构造一个三角形 * @param a 边a的边长 * @param b 边b的边长 * @param c 边c的边长 */ public Triangle(double a, double b, double c){ //如果给定的三条边能够组成三角形,便用给定的边长构成三角形 if (isTrianglelegal(a, b, c)){ this.sideA = a; this.sideB = b; this.sideC = c; } else { //否则,用默认值构造三角形 init(); } } /** * 缺省的三角形 */ private void init(){ this.sideA = 3; this.sideB = 4; this.sideC = 5; } /** * 判断三条边是否能够组成一个三角形 * @param a 边a的边长 * @param b 边b的边长 * @param c 边c的边长 * @return 布尔类型,如果能够组成三角形,便返回true,否则返回false */ private boolean isTrianglelegal(double a, double b, double c){ //三条边的长度必须大于0 if ((a <= 0) || (a <= 0) || (a <= 0)){ System.err.println(SIDEERR); return false; } else if ((a + b < c) || (a + c < b) || (b + c < a)){ //两边之和必须大于第三边 System.err.println(SHAPEERR); return false; } return true; } public double getGirth() { return this.sideA + this.sideB + this.sideC; } public double getArea() { //根据海伦公式计算三角形的面积 double s = (this.sideA + this.sideB + this.sideC) / 2; //利用Math.sqrt()方法进行开方运算 return Math.sqrt(s * (s - this.sideA) * (s - this.sideB) * (s - this.sideC)); } public String toString() { return "三角形的名字是:" + this.name + ", 它的三条边的边长分别是:" + this.sideA + ", " + this.sideB + ", " + this.sideC; } public double getSideA() { return sideA; } public void setSideA(double sideA) { //在设置边长的时候,依然要检测采用新的边长后,是否能够组成三角形。 if (this.isTrianglelegal(sideA, this.sideB, this.sideC)){ this.sideA = sideA; } } public double getSideB() { return sideB; } public void setSideB(double sideB) { if (this.isTrianglelegal(this.sideA, sideB, this.sideC)){ this.sideB = sideB; } } public double getSideC() { return sideC; } public void setSideC(double sideC) { if (this.isTrianglelegal(this.sideA, this.sideB, sideC)){ this.sideC = sideC; } } public static void main(String[] args) { Triangle test = new Triangle(); test.setName("myTriangle"); System.out.println(test.toString()); System.out.println("三角形的周长是:" + test.getGirth()); System.out.println("三角形的面积是:" + test.getArea()); } }
自定义图形
package book.oo.shape; /** * 自定义图形的基类 */ public abstract class MyShape { /**图形的名字*/ protected String name; //protected访问控制符表示只有本类和子类能够访问该属性。 /** * 抽象方法,获取形状的周长 */ public abstract double getGirth(); /** * 抽象方法,获取形状的面积 */ public abstract double getArea(); /** * 抽象方法,输出形状 */ public abstract String toString(); /** * 获取图形的名字 * @return 返回图形的名字 */ public String getName(){ return this.name; } /** * 为图形设置名字 * @param name 要设置的图形的名字 */ public void setName(String name){ this.name = name; } }
发表评论
-
JDK_实例(求指定范围内的质数)
2009-11-20 14:15 816package book.arrayset; impor ... -
JDK_实例(使用Arrays)
2009-10-29 13:28 670package book.arrayset; impor ... -
JDK_实例(处理大数字)
2009-10-29 13:21 986package book.number; import ... -
JDK_实例(生成随机数)
2009-10-29 13:20 1890package book.number; import ... -
JDK_实例(转换数字的进制)
2009-10-29 13:16 950package book.number; /** * ... -
JDK_实例(数字的舍入)
2009-10-29 13:14 879package book.number; import ... -
JDK_实例(格式化数字)
2009-10-29 13:05 543package book.number; import ... -
JDK_实例(数字和数字封装类)
2009-10-29 13:02 686package book.number; /** * ... -
JDK_实例(Adapter 适配器模式)
2009-10-29 12:43 1451接口 package book.oo.sort; / ... -
JDK_实例(Factory工厂模式)
2009-10-29 12:39 805接口 package book.oo.factory; ... -
JDK_实例(Singleton单列模式)
2009-10-29 12:35 994A package book.oo.singleton; ... -
JDK_实例(排序类)
2009-10-29 12:29 1017排序接口 package book.oo.sort; ... -
JDK_实例(方法与变量在继承时的覆盖和隐藏)
2009-10-29 12:24 743父类 package book.oo.cov ... -
JDK_实例(类的加载顺序)
2009-10-29 12:20 689父类 package book.oo.initorder; ... -
JDK_实例(Java 参数传递)
2009-10-29 12:05 865package book.oo; public clas ... -
JDK_实例(复数类)
2009-10-29 11:52 820package book.oo; public clas ... -
JDK_实例(命令行程序)
2009-10-29 11:29 640package book.basic; public c ... -
JDK_实例(计算阶乘)
2009-10-29 11:28 672package book.basic; public c ... -
JDK_实例(控制程序流程)
2009-10-29 11:27 519package book.basic; public c ... -
JDK_实例(java 运算符)
2009-10-29 11:24 757package book.basic; public c ...
相关推荐
4 自定义形状类 2. 5 类的加载顺序 2. 6 方法和变量在继承时的覆盖与隐藏 2. 7 排序类 2. 8 Singleton单例模式 2. 9 Factory工厂模式 2. 10 Adapter适配器模式 第3章 数字 3. 1 ...
实例185 自定义泛型化数组类 235 实例186 泛型方法与数据查询 236 实例187 泛型化方法与最小值 238 实例188 泛型化接口与最大值 239 实例189 使用通配符增强泛型 240 实例190 泛型化的折半查找法 241 第9章 编程常用...
1.3 安装Java程序开发工具(JDK1.5) 2 1.3.1 安装JAVA 2 Standard Edition 1.5.0 3 1.3.2 安装开发文档及最终完成 5 1.3.3 Java开发工具 6 1.4 Java程序开发过程 7 1.5 运行第一个Java程序 7 1.6 巩固...
示例描述:本章演示如何开始使用JDK进行程序的开发。 HelloWorldApp.java 第一个用Java开发的应用程序。 firstApplet.java 第一个用Java开发的Applet小程序。 firstApplet.htm 用来装载Applet的网页文件 第2章 ...
1.4.1 JDK 5+ ............................................................................................................................................................... 1 1.4.2 Ant 1.8.1+ ..........