Java学习笔记之对比学习

实例变量和类变量的区别

定义
类变量:声明变量成员时,用关键字static修饰。
实例变量:声明变量成员时,没有被static修饰。
区别

  • 实例变量被某个对象私有,静态变量被所有对象共享(一个对象改变这个变量的值会影响其它对象的这个类变量)。
  • 类的字节码文件加载到内存,如果该类没创建对象,实例变量不会分配内存。类中的类变量会分配相应的内存空间。
  • 类变量不仅可以通过对象访问,也可以直接通过类名访问。实例变量只能通过对象访问,不能使用类名访问。

实例方法和类方法的区别

  • 在当前类的字节码文件加载到内存时,实例方法和类方法分配入口地址的方法不同:实例方法:只有该类创建对象后,类中的实例方法才分配入口地址。类方法:该类加载到内存时,就分配相应的入口地址
  • 调用方式不同:实例方法:不能通过类名调用,只能通过对象调用。类方法:不仅可以被类创建的对象调用执行,也可通过类名调用
  • 方法操作变量方面:实例方法:实例方法不仅可以操作实例变量也可操作类变量。类方法:不可操作实例变量,因为类创建对象之前,实例成员还未分配内存。
    在这里插入图片描述
    在这里插入图片描述

方法重载和方法重写的区别

  • 方法重载:一个类中有多个方法具有相同的名字,但是参数必须不同(参数的个数不同、参数的个数相同但对应位置类型不同),与访问修饰符和返回值无关。
  • 方法重写:发生在子类与父类中、方法名相同、参数列表相同、返回值类型相同或者是其子类、访问权限不能严于父类(权限的范围比父类大)。
  • 引用自

几个关键字

this关键字(访问本类内容)

  • this关键字只能在方法内部使用。
  • this代表‘当前对象’的引用。
  • 如在方法内部调用同一个类的另一个方法可不使用this关键字,直接调用。
  • this关键字不能出现在类方法中,因为只是可能没有任何对象产生。
    用法:
    1、在本类成员变量中,访问本类的成员变量
    2、在本类成员方法中,访问本类的另外一个成员方法
    3、在本类构造方法中,访问本类的另外一个构造方法
    注意:
    1、this(@@@)调用也必须是构造方法中的第一个,唯一一个
    2、super()和this()调用只能出现一个,不能同时使用

super关键字(访问父类内容)

  • super必须出现在子类中(方法、构造方法中)
  • 用来访问父类成员(变量、方法、构造方法)
  • 在子类方法中访问父类的成员变量;在子类方法中访问父类的成员方法;在子类的构造方法中访问父类的构造方法。

final关键字

  • final类
    可以使用final将类声明为final类。final类不能被继承,既不能有子类。
  • final方法
    如果final修饰父类的方法,那么这个方法不允许被子类重写,不允许子类隐藏可以继承的final方法
  • 常量
    成员变量或局部变量被修饰为final,那他就是常量。在运行过程中不允许发生改变,必须指定该常量的值。
发布了22 篇原创文章 · 获赞 0 · 访问量 443

猜你喜欢

转载自blog.csdn.net/ENDEAVOR__/article/details/104741818