`

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

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

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

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

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

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

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

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

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

相关推荐

    Java关键字final、static使用总结

    - 当一个方法或类被声明为`final`时,它们将失去继承和重写的能力,因此应当谨慎使用。 - `final`关键字对于提高代码的可读性和安全性有重要作用,但过度使用可能会限制软件的灵活性和扩展性。 #### 二、static...

    javafinal和static总结.docx

    ### Java中的final关键字详解 #### 一、final的概述与应用场景 在Java语言中,`final`关键字具有非常重要的地位,它通常用来表示某种“不可...正确地理解和使用`final`关键字对于成为一名合格的Java开发者至关重要。

    static and final.

    4. **工具类**:为了防止实例化工具类,通常将工具类的构造器声明为 `private` 并使用 `static` 方法来提供功能,有时候还需要将某些方法声明为 `final` 来避免被重写。 通过上述讨论可以看出,`static` 和 `final`...

    详解static 和 final 和 static final区别

    Static、Final 和 Static Final 是 Java 中三个重要的关键字,它们之间的区别和应用场景是开发者需要了解和掌握的。 首先,让我们来了解 Static 关键字。Static 是 Java 中的静态修饰符,可以修饰变量、程序块、...

    java多线程关键字final和static详解

    static关键字的主要特点是:static变量和方法可以在类加载时初始化,并且可以在没有实例的情况下使用。 1. static关键字的作用 static关键字可以保证一个线程即使在未使用其他线程同步机制的情况下也总是可以读到...

    Java中static、this、super、final用法

    在Java编程语言中,`static`是一个非常重要的关键字,它主要用于定义类成员(包括变量和方法),使得这些成员能够在不创建类实例的情况下被访问。 **1.1 静态方法** - **定义**: 当在一个类中定义一个方法为`...

    Java面向对象程序设计static关键字.pptx

    static修饰的变量和方法可以用类名直接调用,而不需要创建对象实例。static修饰的代码块只执行一次,优先级仅低于静态变量。 static关键字的作用 static关键字的作用可以分为以下几个方面: 1. 静态变量:static...

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

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

    Java final static abstract关键字概述

    1. **组合使用**:`static final`可以用来修饰成员变量和成员方法,通常表示全局常量或不可覆盖的方法。 2. **变量应用**:对于变量,`static final`表示一旦赋值就不能修改,且可以通过类名直接访问。 3. **方法...

    static 在java中的作用

    通过使用`static`,可以实现对类属性和方法的共享访问,而无需创建类的实例。这在实际编程中具有广泛的应用价值。 #### 1. static关键字的基本概念 `static`关键字用于表示“静态”的含义,主要体现在以下几个方面...

    final用法详解

    ### Final用法详解 ...总结而言,`final`关键字在Java中提供了多种用途,包括但不限于创建不可变常量、限制类和方法的继承性以及保护集合不受修改。合理地运用`final`可以帮助提高代码的安全性和可维护性。

    浅谈Java内部类的四个应用场景

    ### 浅谈Java内部类的四个应用场景 #### 一、引言 在Java语言中,内部类(Inner Class)作为一种特殊的存在,为开发者提供了更为灵活的面向对象编程方式。通过本文,我们将深入探讨Java内部类的四个典型应用场景,...

    Java中this,static,final,const用法详解

    需要注意的是,private 修饰的 static 成员变量和成员方法可以在类的静态代码块中或类的其他静态成员方法中使用,但不能在其他类中通过类名来直接引用。 三、final和const关键字 final 关键字的含义是“这是无法...

    java final关键字(基础)(csdn)————程序.pdf

    Java中的`final`关键字是一个非常重要的概念,它用于标记不可改变的元素,包括类、变量和方法。在Java编程中,使用`final`关键字能够帮助我们确保某些代码的行为是不可变的,从而增加代码的稳定性和安全性。 1. **...

    11【final、权限、内部类】1

    【final关键字】 在Java编程语言中,`final`是一个非常...这些关键字在编写类和方法时非常重要,它们帮助你维护代码的封装性、安全性和可维护性。理解并正确使用`final`和权限修饰符是编写高质量Java代码的关键步骤。

    利用jena API查询OWL本体(重要).txt

    private final static String rulePath = "E:\\programming\\workspace\\OWLTest\\WebRoot\\WEB-INF\\family.rules"; private final static String pre = "http://zhumzhu.com/family#"; public final static ...

    java-----static内存分析

    在这个过程中,JVM会在方法区为`Static_Demo2`类分配空间,并加载其成员方法和静态方法。 2. **静态方法执行**:`main`方法作为静态方法被加载到静态区,由类名调用。当执行`Person.method()`时,JVM会查找并执行`...

    利用jenaAPI查询家族本体 (2).docx

    private final static String DAUGHTER = "daughter"; private final static String SON = "son"; private final static String SISTER = "sister"; private final static String BROTHER = "brother"; private...

    第三课:zookeeper_典型使用场景实践(预习)1

    private static final String servicePath = rootPath + "/service"; //...初始化、连接Zookeeper、创建服务节点等方法 // 更新服务节点状态信息 private void updateServerNode(OsBean osBean) { // 更新...

    利用jenaAPI查询家族本体.pdf

    private final static String DAUGHTER = "daughter"; private final static String SON = "son"; private final static String SISTER = "sister"; private final static String BROTHER = "brother"; // ...

Global site tag (gtag.js) - Google Analytics