下面的代码是经典类设计里最简单的之一,希望大家好好看看。
在学完了java基本高级语法之后 有人认为自己已经掌握了 “类设计“
但其实不时如此。
java程序员有两种:一是 类设计者 他们设计类供用户使用。
另一是 系统构建者,他们组织类,使类之间相互联系。
系统程序员是为商业应用架构系统,为商业用户提供有效软件产品。
类设计者是设计类,提供给类的使用者,是做基础工具提供。(他们把自己的类,给别人,告诉用户怎么使用
而不把代码给他,只要把 .class文件给他。通过嵌入自己的类,而从中盈利)
类设计是 一门专业的工作,要设计出 高效的、健壮的类非常复杂。
下面的代码我没加注释,本人看代码从不看注释。自己理解着看。
此代码用到了java面向对象的几大编程特点和风格。重用性、可维护性、健壮性。
希望大家 好好看,为什么这样写好?为什么这么设计?
import java.text.DecimalFormat;
public class Time{
private int hour; //
private int minute; //
private int second; //
public Time()
{
this(0, 0, 0);
}
public Time(int h)
{
this(h,0,0);
}
public Time(int h, int m)
{
this(h,m,0);
}
public Time(int h,int m,int s)
{
setTime( h, m ,s );
}
public Time( Time time )
{
this(time.getHour(),time.getMinute(),time.getSecond() );
}
public void setTime( int h, int m, int s )
{
setHour(h);
setMinute(m);
setSecond(s);
}
public void setHour( int h )
{
hour =( (h >= 0 && h < 24 ) ? h : 0 );
}
public void setMinute( int m )
{
minute =( (m >= 0 && m < 60) ? m : 0 );
}
public void setSecond( int s )
{
second = ( (s >= 0 && s < 60) ? s : 0 );
}
public int getHour()
{
return hour;
}
public int getMinute()
{
return minute;
}
public int getSecond()
{
return second;
}
public String toUniversalString()
{
DecimalFormat twoDigits = new DecimalFormat( "00" );
return twoDigits.format( getHour() ) +":"+
twoDigits.format( getMinute() )+":"+
twoDigits.format( getSecond() );
}
public String toStandarString()
{
DecimalFormat twoDigits = new DecimalFormat( "00" );
return (( getHour()==12 || getHour()==0 ) ?
12: getHour() %12 )+":"+twoDigits.format( getMinute() )+
":"+twoDigits.format( getSecond() )+
( getHour() < 12 ? "AM" : "PM" );
}
}