zoukankan      html  css  js  c++  java
  • 类方法和实例方法-简记

    概念:类方法:用static修饰,也叫静态方法。实例方法:不用static修饰,也叫非静态方法。
    两者的区别:
      1)类方法:当类的字节码文件加载到内存,类方法的入口地址就会分配完成,所以类方法不仅可以被该类的对象调用,也可以直接通过类名完成调用,类方法的入口地址只有程序退出时消失。
      2)实例方法:当类的字节码文件加载到内存中时,类的实例方法并没有被分配入口地址,只有当该类的对象创建以后,实例方法才分配了入口地址。从而实例方法可以被类创建的所有对象调用。还有一点需要注意,当我们创建第一个类的对象时,实例方法的入口地址会完成分配,当后续在创建对象时,不会再分配新的入口地址,也可以说,该类的所有对象共享实例方法的入口地址,当该类的所有对象被销毁,入口地址才会消失。

    备注:因为类方法的入口地址的分配要早于实例方法的入口地址分配时间,所以在定义类方法和实例方法是有以下规则需要遵循:

      a、在类方法中不能引用实例变量、实例方法:实例变量的定义类似于实例方法,没有用static修饰的变量,实例变量的创建与实例方法的创建相同,也是在类的对象创建时完成,所以在类方法中是不能引用实例变量的,因为这个时候实例变量没有分配内存地址。
      b、在类方法中不能使用super和this关键字:这是因为super和this都是指向父类和本类的对象,而在类方法中调用的时候,这些指代的对象可能都还没有创建。
      c、相反:实例方法可以引用类变量,实例变量、可以使用super和this关键字、可以调用类方法。
      d、类方法中可以直接调用本类的类方法,但同时也可以使用[类名.类方法名]来调用其他类的类方法。类方法只能调用其他类方法,不能调用实例方法。

  • 相关阅读:
    Java学习二十九天
    Java学习二十八天
    47. Permutations II 全排列可重复版本
    46. Permutations 全排列,无重复
    subset ii 子集 有重复元素
    339. Nested List Weight Sum 339.嵌套列表权重总和
    251. Flatten 2D Vector 平铺二维矩阵
    217. Contains Duplicate数组重复元素
    209. Minimum Size Subarray Sum 结果大于等于目标的最小长度数组
    438. Find All Anagrams in a String 查找字符串中的所有Anagrams
  • 原文地址:https://www.cnblogs.com/yangrongkuan/p/12028033.html
Copyright © 2011-2022 走看看