java带走怪味道的代码 java一些有趣的代码( 五 )


总而言之,这四种嵌套类都有自己的用途 。假设这个嵌套类属于一个方法的内部,如果只需要在一个地方创建实例 , 并且已经有了一个预置的类型可以说明这个类的特征,就要把它做成匿名类 。如果一个嵌套类需要在单个方法之外仍然可见,或者它太长了 , 不适合放在方法内部,就应该使用成员类 。如果成员类的每个实例都需要一个指向其外围实例的引用,就要把成员类做成非静态的,否则就做成静态的 。
通过对常见场景的代码逻辑进行抽象封装,形成相应的模板工具类,可以大大减少重复代码,专注于业务逻辑 , 提高代码质量 。
面向对象编程相对于面向过程 , 多了实例化这一步,而对象的创建必须要指定具体类型 。我们常见的做法是“哪里用到,就在哪里创建”,使用实例和创建实例的是同一段代码 。这似乎使代码更具有可读性 , 但是某些情况下造成了不必要的耦合 。
对于顶层的(非嵌套的)类和接口,只有两种的访问级别:包级私有的(没有public修饰)和公有的(public修饰) 。
对于成员(实例/域、方法、嵌套类和嵌套接口)由四种的访问级别,可访问性如下递增:
正确地使用这些修饰符对于实现信息隐藏是非常关键的 , 原则就是:尽可能地使每个类和成员不被外界访问(私有或包级私有) 。这样好处就是在以后的发行版本中,可以对它进行修改、替换或者删除,而无须担心会影响现有的客户端程序 。
不可变类是指其实例不能被修改的类 。每个实例中包含的所有信息都必须在创建该实例时提供,并在对象的整个生命周期内固定不变 。不可变类好处就是简单易用、线程安全、可自由共享而不容易出错 。Java平台类库中包含许多不可变的类,比如String、基本类型包装类、BigDecimal等 。
为了使类成为不可变,要遵循下面五条规则:
可变性最小化的一些建议:
TDD的最终目标是整洁可用的代码(clean code that works) 。大多数的开发者大部分时间无法得到整洁可用的代码 。办法是分而治之 。首先解决目标中的“可用”问题,然后再解决“代码的整洁”问题 。这与体系结构驱动(architecture-driven)的开发相反 。
采用TDD另一个好处就是让我们拥有一套伴随代码产生的详尽的自动化测试集 。将来无论出于任何原因(需求、重构、性能改进)需要对代码进行维护时 , 在这套测试集的驱动下工作,我们代码将会一直是健壮的 。
Image [6].png
添加一个测试 - 运行所有测试并检查测试结果 - 编写代码以通过测试 - 运行所有测试且全部通过 - 重构代码 , 以消除重复设计,优化设计结构
作者:VectorJin
求Java代码使用循环结构,通过Scanner类从控制台输入每个人的捐款金额,并累加每个人的捐款金额,计算捐款总数和捐款人数,如果捐款总数达到10万元,则计算平均每人捐款金额 。
下面是通过输入进行统计,实际过程中还能是通过数据库进行操作 , 或者表格收集数据进行导入关系数据库进行统计 。还可以通过接入微信或者支付宝小程序收款实时统计 。
已经有人给过随机数示例,这里给出前端输入的示例:
import java.util.Scanner;
public class CharityDonation {public static void main(String[] args) {Scanner scanner = new Scanner(System.in);int num = 0;// 捐款人数
int total = 0;// 募捐总数
int avg = 0;// 平均每人捐款金额
int donation;// 每个人的捐款金额
while (total100000num1000) {
System.out.print("请输入第" + (num + 1) + "个人的捐款金额:");

推荐阅读