zoukankan      html  css  js  c++  java
  • 【Java初探外篇02】——关于静态方法与实例方法

    在Java的学习中,我们知道,方法的使用是不可或缺的重要部分,在我们编写第一个Java程序hello world的时候,我们就要开始使用主方法main();它就是一个静态方法(static method) 。

    public class sty_01{
    //主方法main()
    public static void main(String[] args){
    system.out.println("hello world!");
      }
    }
    

    那么接下来我们具体学习下静态方法与实例方法的区别。

    • 静态方法与实例方法的定义
    • 实例方法(instance method)
      我们知道在类体中,一个方法的创建,包括 权限修饰符,返回值类型,方法名,这样定义出来的方法就是实例方法。
    public int aint(){
    }
    
    • 静态方法(static method)
      而静态方法的定义则略有不同,静态方法的定义在权限修饰符和返回值类型之间多出了一个关键字static,而这,也是二者在语法上最根本的区别。
    public static int aint(){
    }
    

    关键字static,它也是一个修饰符,用来修饰类方法和类变量。其主要作用就是使类和变量能够实现跨类使用,常用来声明独立于对象的静态方法。

    • 二者的区别
      由此,我们可以大致总结一下二者之间的区别以及使用的方法。

    • 语法定义上
      静态方法是被static修饰符修饰的,而实例方法则没有。

    • 作用上
      静态方法可以实现方法的跨类使用,而实例方法只能在本类中被实例化对象调用。

    • 机制上
      静态方法是独立于对象的,而实例方法则必须依赖于实例化对象,才能被调用,静态方法的内存占用较实例方法大,因为实例方法,只有在实例化对象调用的情况下才会被执行,而静态方法是独立与对象的,所以程序执行之初就会被创建,占用内存。

    • 使用上
      静态方法是不需要new一个实例化对象就可以调用的方法,因为静态方法是独立与对象的方法,可以直接进行调用。

    • 二者的使用分析

    我们了解到了静态方法与实例方法的区别后,通过分析,可以得出两者的适应的使用方式。

    静态方法,是跨类的,独立于对象的,并且是较占用内存的,所以第一首选的方法使用,是不会使用静态方法的,我们一般使用静态方法,应当是针对其特有的功能性,即实现跨类调用,这说明,静态方法就是为一些公共方法准备的,可以多类,多项目,多处通用的公共方法的定义,比如一些工具类Utils的方法,。

    实例化方法,实例化方法只能在本类中调用,需要依赖于实例化对象,占用内存小,这说明实例化方法主要功能是实现当前类对象的某些功能,是特例的,并且多会调用到当前类的一些成员变量。
    所以在一些具体功能类中,具体功能实现方法的定义上,应当使用实力方法,而在一些公共类,会在多个类中调用到的工具类等,其方法主要具有公共调用等需求时,使用静态方法。


    关于静态方法与实例方法的了解,暂时就这么多,可能比较浅显,都是个人结合二者的部分特性分析得出,可能有缺错之处,还望能够不吝指教。

    之后深入了解后再做详细分析。


    更新时间:
    2019-4-2
    11:25

  • 相关阅读:
    剑指offer--12.不用加减乘除做加法
    剑指offer--11.数组中出现次数超过一半的数字
    剑指offer--10.最小的K个数
    剑指offer--9.字符串的排列
    剑指offer--8.调整数组顺序使奇数位于偶数前面
    剑指offer-7.旋转数组的最小数字
    剑指offer--6.数值的整数次方
    剑指offer--5.变态跳台阶
    剑指offer--4.斐波那契数列
    剑指offer--3.用两个栈实现队列
  • 原文地址:https://www.cnblogs.com/gemuxiaoshe/p/10641670.html
Copyright © 2011-2022 走看看