public test(){
CodeGenerate cg=new CodeGenerate(12,true,false,false);
//生成3个密码
String a,b,c ;
a=cg.generate();
b=cg.generate();
c=cg.generate();
}
先看一个需求,假如有一个需求,要生成一个随机密码。要求能指定密码长度,密码的字符种类。
如果用面向过程的方法,定义一个函数来实现.
String generatePassword(int length,boolean includeNumber,boolean includeSymbol,boolean include caps)
调用时:
//生成3个10位包含大小写字符、数字和符号的字符串密码,则需要如下调用三次
String a,b,c ;
a=generatePassword(10,true,true,true)
b=generatePassword(10,true,true,true)
c=generatePassword(10,true,true,true)
面向对象的实现.
public class CodeGenerate
private int length;
private boolean includeNumber,includeCaps,includeSymbol
public CodeGenerate(boolean includeNumber,boolean includeCaps,boolean includeSymbol){
this.includeNumber = includeNumber;
this.includeCaps = includeCaps;
this.includeSymbol = includeSymbol;
}
public String generatePassword(){
//....
}
}
调用时
//生成3个10位包含大小写字符、数字和符号的字符串密码,则需要如下调用三次
String a,b,c ;
CodeGenerate cg = new CodeGenerate(10,true,true,true)
a=cg.generatePassword();
b=cg.generatePassword();
c=cg.generatePassword();
调用时,需要更少的参数,有些参数已经作为对象的属性保存在对象中。面向对象编程,对象中保存了一些状态值,有了这些状态值,函数调用时,可以减少参数传递。更重要是,运用面向对象的思维方法,更容易将现实世界映射到程序代码。