final、static和private使用可能有些初涉编程的开发人员不是很了解其使用场景,现做一下简单叙述:
final修饰方法时,表示方法不可被overload和override
对于final 修饰的方法,一般来说主要用在超类中,防止该方法被子类覆盖,比如在templete method pattern设计模式中,templete method 由于封装了算法,一般会用final修饰符去修饰,防止子类override该方法。
static修饰方法时,表示静态方法
一般用于类似utils的包,很多通用的方法,比如判断字符串是否为空,日期格式化等,封装之后,就可以采用该标示符,方便调用。
private修饰方法时,表示私有方法
该方式用途比较广,很多地方都可以用,最常用的场景,很多时候,当一个方法太大,导致逻辑不清晰时,我们便会重构一下该方法,从该较大方法中提炼出很多小的方法(建议保持良好的命名),这些小方法就可以用private去修饰(总是保持封装性,是一个好习惯,以后发现可以有更通用,可以再调整范围),这样,这个大方法,你会看到,它是干什么的,那它怎么干的了?通过这些小方法,你就可以看到。还有的场景是,你不想公布该方法,等等
注:final、static和private等修饰方法时,这些方法为非虚方法,在类加载时,就已经明确,执行效率很高,而不像实例方法(虚方法)那样,要在运行期经过一系列的判断才能确定到底该调用哪个实际的方法
分享到:
相关推荐
本文目录一、abstract(抽象的)1...最后的)1.final可以修饰变量2.final可以修饰方法3.final可以修饰类总结abstract、static、final可以修饰的内容abstract、static、final是否可以修饰构造方法?private、abstract、sta
Java 中的静态变量、静态方法、静态块和静态类 Java 中的静态变量、静态方法、静态块和静态类是 Java 编程语言的四个重要概念,它们之间存在着...理解它们的使用场景和特点,对于提高编程效率和代码质量具有重要意义。
private static final long serialVersionUID = 1L; private String userName; private String address; // getter and setter methods } ``` 序列化和反序列化代码: ```java public static void serialize...
App中,有很大一部分场景是点击按钮,向服务端提交数据,由于网络请求需要时间,用户很可能会多次点击,造成数据...public static final long TIME_INTERVAL = 1000L; private Button btTest; private void initView()
private static final Singleton INSTANCE = new Singleton(); } public static Singleton getInstance() { return SingletonHolder.INSTANCE; } } ``` 4. 枚举 使用枚举可以实现单例模式,保证线程安全和...
轻松替换相互嵌套的方法之间的调用顺序增删改方便,提高代码简洁性和可读性、降低维护成本Installation:dependencies { implementation 'com.qw:workflow:0.0.4'}Usage:场景示例1依次顺序的展示Toast,Dialog,...
例如,定义一个 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 ...
公司项目需要做推送,我们选择用小米推送,经过一段时间的摸索,终于可以简单的使用小米推送了。 ... 2.进入后创建项目,按照步骤创建完后如下 3.后台配置完了,我们再配置代码,第一次... private static final Stri
抽象方法不能指定为private或static或final,因为这些访问修饰符会限制子类对抽象方法的访问。 抽象类与抽象方法 ----------------- 抽象类可以不包含抽象方法,但包含抽象方法的类一定是抽象类。抽象类的子类也...
该场景指定了可扩展应用程序的要求,全球服务团队可以使用该应用程序来安排、跟踪和报告客户约会。 先决条件: Java 8 MySql 5.5.62 DBConnection 类中 DATABASENAME、DB_URL、USERNAME 和 PASSWORD 的字符串成员将...
第3章 面向过程(数组和方法) 4课时 理解如何声明数组、构造数组、初始化数组以及使用数组中的各个元素。 清楚数组作为对象处理,创建数组对象时指定数组大小。 能够声明和操作多维数组...
在类中创建一个对象,并且用private、static、final修饰 private为了避免在外部直接访问当前对象 static是为了在静态方法中可以返回当前类中的对象 final:可加可不加,加了可以保证不可修改...
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...
首先说下这个问题的使用场景,有些时候我们业务逻辑是在不同的jvm进程甚至是不同的物理机上的jvm处理的。这样如何来实现不同jvm上的同步问题呢,其实我们可以基于redis来实现一个锁。 具体事务和监听请参考文章:...
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 ...
private static final Logger logger = LoggerFactory.getLogger(NoRepeatSubmitAspect.class); / * 切入点 */ @Pointcut("@annotation(com.yonyou.common.annotation.NoRepeatSubmitAnnotation)") public ...
介绍:水波纹散开效果的控件在 App 里面还是比较常见的,例如 网易云音乐歌曲识别,附近搜索场景。... private static final String TAG = WaveView; private int waveColor; private int waveCount; private Bi
问题 有时候有些操作是防止用户在一次响应结束中再响应下一个。但有些测试用户就要猛点,狂点。像这种恶意就要进行防止。... public static final int TIME_INTERVAL = 1000; private Button mButto