final、static和private使用可能有些初涉编程的开发人员不是很了解其使用场景,现做一下简单叙述:
[size=small][color=red]final修饰方法时,表示方法不可被overload和override[/color][/size]
对于final 修饰的方法,一般来说主要用在超类中,防止该方法被子类覆盖,比如在templete method pattern设计模式中,templete method 由于封装了算法,一般会用final修饰符去修饰,防止子类override该方法。
[size=small][color=red]static修饰方法时,表示静态方法[/color][/size]
一般用于类似utils的包,很多通用的方法,比如判断字符串是否为空,日期格式化等,封装之后,就可以采用该标示符,方便调用。
[size=small][color=red]private修饰方法时,表示私有方法[/color][/size]
该方式用途比较广,很多地方都可以用,最常用的场景,很多时候,当一个方法太大,导致逻辑不清晰时,我们便会重构一下该方法,从该较大方法中提炼出很多小的方法(建议保持良好的命名),这些小方法就可以用private去修饰(总是保持封装性,是一个好习惯,以后发现可以有更通用,可以再调整范围),这样,这个大方法,你会看到,它是干什么的,那它怎么干的了?通过这些小方法,你就可以看到。还有的场景是,你不想公布该方法,等等
[u][color=red][size=small]注:final、static和private等修饰方法时,这些方法为非虚方法,在类加载时,就已经明确,执行效率很高,而不像实例方法(虚方法)那样,要在运行期经过一系列的判断才能确定到底该调用哪个实际的方法[/size][/color][/u]
[size=small][color=red]final修饰方法时,表示方法不可被overload和override[/color][/size]
对于final 修饰的方法,一般来说主要用在超类中,防止该方法被子类覆盖,比如在templete method pattern设计模式中,templete method 由于封装了算法,一般会用final修饰符去修饰,防止子类override该方法。
[size=small][color=red]static修饰方法时,表示静态方法[/color][/size]
一般用于类似utils的包,很多通用的方法,比如判断字符串是否为空,日期格式化等,封装之后,就可以采用该标示符,方便调用。
[size=small][color=red]private修饰方法时,表示私有方法[/color][/size]
该方式用途比较广,很多地方都可以用,最常用的场景,很多时候,当一个方法太大,导致逻辑不清晰时,我们便会重构一下该方法,从该较大方法中提炼出很多小的方法(建议保持良好的命名),这些小方法就可以用private去修饰(总是保持封装性,是一个好习惯,以后发现可以有更通用,可以再调整范围),这样,这个大方法,你会看到,它是干什么的,那它怎么干的了?通过这些小方法,你就可以看到。还有的场景是,你不想公布该方法,等等
[u][color=red][size=small]注:final、static和private等修饰方法时,这些方法为非虚方法,在类加载时,就已经明确,执行效率很高,而不像实例方法(虚方法)那样,要在运行期经过一系列的判断才能确定到底该调用哪个实际的方法[/size][/color][/u]