`

final、static和private方法的使用场景浅议

阅读更多
final、static和private使用可能有些初涉编程的开发人员不是很了解其使用场景,现做一下简单叙述:

final修饰方法时,表示方法不可被overload和override

对于final 修饰的方法,一般来说主要用在超类中,防止该方法被子类覆盖,比如在templete method pattern设计模式中,templete method 由于封装了算法,一般会用final修饰符去修饰,防止子类override该方法。

static修饰方法时,表示静态方法

一般用于类似utils的包,很多通用的方法,比如判断字符串是否为空,日期格式化等,封装之后,就可以采用该标示符,方便调用。

private修饰方法时,表示私有方法

该方式用途比较广,很多地方都可以用,最常用的场景,很多时候,当一个方法太大,导致逻辑不清晰时,我们便会重构一下该方法,从该较大方法中提炼出很多小的方法(建议保持良好的命名),这些小方法就可以用private去修饰(总是保持封装性,是一个好习惯,以后发现可以有更通用,可以再调整范围),这样,这个大方法,你会看到,它是干什么的,那它怎么干的了?通过这些小方法,你就可以看到。还有的场景是,你不想公布该方法,等等

注:final、static和private等修饰方法时,这些方法为非虚方法,在类加载时,就已经明确,执行效率很高,而不像实例方法(虚方法)那样,要在运行期经过一系列的判断才能确定到底该调用哪个实际的方法
分享到:
评论

相关推荐

    资深互联网大佬的5000字吐血总结——Java面向对象三大修饰符之abstract、static、final

    本文目录一、abstract(抽象的)1...最后的)1.final可以修饰变量2.final可以修饰方法3.final可以修饰类总结abstract、static、final可以修饰的内容abstract、static、final是否可以修饰构造方法?private、abstract、sta

    Java中的静态变量静态方法静态块与静态类.docx

    Java 中的静态变量、静态方法、静态块和静态类 Java 中的静态变量、静态方法、静态块和静态类是 Java 编程语言的四个重要概念,它们之间存在着...理解它们的使用场景和特点,对于提高编程效率和代码质量具有重要意义。

    深入理解Java虚拟机-Java内存区域透彻分析(序列化、反序列化概念及其使用场景+实现序列化的方式+transient关键字)

    private static final long serialVersionUID = 1L; private String userName; private String address; // getter and setter methods } ``` 序列化和反序列化代码: ```java public static void serialize...

    Android优雅地处理按钮重复点击的几种方法

    App中,有很大一部分场景是点击按钮,向服务端提交数据,由于网络请求需要时间,用户很可能会多次点击,造成数据...public static final long TIME_INTERVAL = 1000L; private Button btTest; private void initView()

    ava常用设计模式-单例模式

    private static final Singleton INSTANCE = new Singleton(); } public static Singleton getInstance() { return SingletonHolder.INSTANCE; } } ``` 4. 枚举 使用枚举可以实现单例模式,保证线程安全和...

    WorkFlow:简化您在android中的方法耦合

    轻松替换相互嵌套的方法之间的调用顺序增删改方便,提高代码简洁性和可读性、降低维护成本Installation:dependencies { implementation 'com.qw:workflow:0.0.4'}Usage:场景示例1依次顺序的展示Toast,Dialog,...

    全面掌握java枚举类型(enum-type)1

    例如,定义一个 Season 类,使用 public static final int 来定义四季: ```java public class Season { public static final int SPRING = 1; public static final int SUMMER = 2; public static final int ...

    Android小米推送简单使用方法

    公司项目需要做推送,我们选择用小米推送,经过一段时间的摸索,终于可以简单的使用小米推送了。 ... 2.进入后创建项目,按照步骤创建完后如下 3.后台配置完了,我们再配置代码,第一次... private static final Stri

    Java语言程序设计抽象类和接口PPT教案学习.pptx

    抽象方法不能指定为private或static或final,因为这些访问修饰符会限制子类对抽象方法的访问。 抽象类与抽象方法 ----------------- 抽象类可以不包含抽象方法,但包含抽象方法的类一定是抽象类。抽象类的子类也...

    程序员考试刷题-TeamScheduler:TeamScheduler是用于安排、跟踪和报告客户约会的应用程序

    该场景指定了可扩展应用程序的要求,全球服务团队可以使用该应用程序来安排、跟踪和报告客户约会。 先决条件: Java 8 MySql 5.5.62 DBConnection 类中 DATABASENAME、DB_URL、USERNAME 和 PASSWORD 的字符串成员将...

    AIC的Java课程1-6章

    第3章 面向过程(数组和方法) 4课时  理解如何声明数组、构造数组、初始化数组以及使用数组中的各个元素。  清楚数组作为对象处理,创建数组对象时指定数组大小。  能够声明和操作多维数组...

    day020-继承加强和设计模式代码和笔记.rar

    在类中创建一个对象,并且用private、static、final修饰 private为了避免在外部直接访问当前对象 static是为了在静态方法中可以返回当前类中的对象 final:可加可不加,加了可以保证不可修改...

    突破程序员基本功的16课.part2

    8.2.2 finally块和方法返回值 8.3 catch块的用法 8.3.1 catch块的顺序 8.3.2 不要用catch代替流程控制 8.3.3 只能catch可能抛出的异常 8.3.4 做点实际的修复 8.4 继承得到的异常 8.5 小结 第9课 线性表 9.1...

    jedis使用指南

    首先说下这个问题的使用场景,有些时候我们业务逻辑是在不同的jvm进程甚至是不同的物理机上的jvm处理的。这样如何来实现不同jvm上的同步问题呢,其实我们可以基于redis来实现一个锁。 具体事务和监听请参考文章:...

    用Java实现HTTP文件队列下载.pdf

    public final static boolean DEBUG = true; private static int BUFFER_SIZE = 8096; private Vector vDownLoad = new Vector(); private Vector vFileList = new Vector(); public HttpGet() {} public ...

    基于springboot实现表单重复提交.docx

    private static final Logger logger = LoggerFactory.getLogger(NoRepeatSubmitAspect.class); / * 切入点 */ @Pointcut("@annotation(com.yonyou.common.annotation.NoRepeatSubmitAnnotation)") public ...

    Android自定义View实现水波纹效果

    介绍:水波纹散开效果的控件在 App 里面还是比较常见的,例如 网易云音乐歌曲识别,附近搜索场景。... private static final String TAG = WaveView; private int waveColor; private int waveCount; private Bi

    Android中如何优雅的处理重复点击实例代码

    问题 有时候有些操作是防止用户在一次响应结束中再响应下一个。但有些测试用户就要猛点,狂点。像这种恶意就要进行防止。... public static final int TIME_INTERVAL = 1000; private Button mButto

Global site tag (gtag.js) - Google Analytics