快速业务通道

Java面向对象编程实例详解 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-21
ROR; } if (ch == ''\u0000'') myErrorFlags |= EOF; return ch; } /** * Reads from the current position in the file up to and including * the next newline character. The newline character is thrown away * @return the read string (excluding the newline character) or * null if trying to read beyond the EOF */ public String readLine() { String s = null; try { s = myInFile.readLine(); } catch (IOException e) { if (myFileName != null) System.err.println("Error reading " + myFileName + "\n"); myErrorFlags |= READERROR; } if (s == null) myErrorFlags |= EOF; return s; } /** * Skips whitespace and reads the next word (a string of consecutive * non-whitespace characters (up to but excluding the next space, * newline, etc.) * @return the read string or null if trying to read beyond the EOF */ public String readWord() { StringBuffer buffer = new StringBuffer(128); char ch = '' ''; int count = 0; String s = null; try { while (ready() && Character.isWhitespace(ch)) ch = (char)myInFile.read(); while (ready() && !Character.isWhitespace(ch)) { count++; buffer.append(ch); myInFile.mark(1); ch = (char)myInFile.read(); }; if (count > 0) { myInFile.reset(); s = buffer.toString(); } else { myErrorFlags |= EOF; } } catch (IOException e) { if (myFileName != null) System.err.println("Error reading " + myFileName + "\n"); myErrorFlags |= READERROR; } return s; } /** * Reads the next integer (without validating its format) * @return the integer read or 0 if trying to read beyond the EOF */ public int readInt() { String s = readWord(); if (s != null) return Integer.parseInt(s); else return 0; } /** * Reads the next double (without validating its format) * @return the number read or 0 if trying to read beyond the EOF */ public double readDouble() { String s = readWord(); if (s != null) return Double.parseDouble(s); // in Java 1, use: return Double.valueOf(s).doubleValue(); else return 0.0; } }

Java面向对象编程实例详解(2)

时间:2011-01-16 zdnet 龚赤兵

以下是程序的输出结果画面。

Java面向对象编程实例详解 - 编程入门网

在上述程序中,实现了球体表面积和体积的算法,并通过EasyReader类轻松实现了控制台的输入,但是该程序只是完成了程序所要求的功能,并计算出了结果。该程序不是一个好的设计程序,它既没采用结构化编程,也没有发挥Java语言的强大效能,更不是面向对象编程。

实际上,从程序设计的角度来看,以上程序是一个非常糟糕的设计程序。首先,用户界面与计算公式混合在一起。请记住:对于任何编程语言,用户界面必须与计算或处理过程分离开来。另外,输出的结果太难看,数值包括太多的小数。

二、结构化编程方法

在以下的程序代码中,我们添加了2个方法,分别实现球体表面积与体积的计算,并通过相应的类控制数值的输出格式。

import java.text.DecimalFormat; class Sphere { // Computes the volume of a sphere with radius r. private static double volume(double r) { return 4.0 / 3.0 * Math.PI * r * r * r; } // Computes the surface area of a sphere with radius r. private static double surfaceArea(double r) { return 4.0 * Math.PI * r * r; } public static void main(String[] args) { EasyReader conso

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号