关键字this static final super

关键字this

  • 1.this表示调用本类属性
  • 只要在类中访问类的属性,一定要加上this关键字
    在这里插入图片描述
  • 2.表示调用本类方法
    a.调用普通方法 this.方法名(参数列表)
    当有类的继承关系时,表示该类方法一定要加上this关键字
    在这里插入图片描述
    b.调用构造方法 this(参数列表)
    @this调用构造方法必须放在构造方法首行
    @this调用构造方法不允许成环(比如1调用2,2再调用1)
    在这里插入图片描述
  • 3. 表示当前对象
    在这里插入图片描述

关键字super

  • 1.super用于(子类调用父类)方法
  • @ ----用于构造方法
    当子类调用父类无参构造时,super()可写,可不写,表示调用父类无参构造
  • 当子类调用父类有参构造时,super(参数列表)必须要写,要告诉编译器当前调用的是哪个有参构造
  • 子类构造方法中调用父类构造必须是第一行语句
  • this与super不能同时调用
  • @----用于普通方法super.方法名(参数)
    用于在子类中明确调用父类被覆写的方法(不要求必须在第一行语句)
    在这里插入图片描述
  • 2.super用于属性
  • super.属性名,表示调用父类中被覆写的属性(权限不是private)
    在这里插入图片描述

this和super的比较

在这里插入图片描述

关键字static

  • static 变量–属性(静态属性),用public来修饰
  • static属性属于类属性,保存在全局数据区中(方法区–所有对象共享区域),通过类名称调用,与对象实例化无关
  • 描述共享属性使用static,不过这种情况用的比较少
  • static方法–类方法(静态方法)
    在这里插入图片描述
  • 通过类名调用与对象实例化无关,常见于工具类方法
  • static不能用于方法中,局部变量不能用static修饰;它可以修饰静态代码块
  • 所有的static方法不允许调用非static定义的属性或方法
  • 所有的非static方法允许访问static方法或属性

关键字final

  • final关键字–终结器
  • 1.final修饰类(String类以及8大基本数据类型的包装类,Integer)
  • 当一个类被final修饰,表示该类不能拥有子类(该类不允许被继承)
    一旦一个类被final修饰,该类的所有方法都会默认加上final(成员变量不会加final)
  • 2.final修饰方法
  • 当一个方法被final修饰,明确表示该方法不允许被覆写
    当一个方法被private修饰后,相当于加了一个final关键字
  • 3.final修饰属性-常量
class{
final int a;     //在栈中
static final int B;//定义全局常量(在全局常量区)
}
  • a.final修饰普通数据类型的成员变量(最主要的用途)
    被final修饰的成员变量必须在声明时初始化,并且初始化后值无法被修改
    如果在声明时没有初始化,则必须通过构造方法或者构造块中初始化
public static final int B;
static{
      B = 10;
}
  • final变量-常量(值不能被改变,每个对象都有自己的final变量,在对象产生时初始化)可以在主方法中定义常量
  • static final -全局常量(所有对象共享此变量,并且在类加载时初始化,效率较高,通过类名调用)(用静态块初始化)
    全局常量命名规范:多个单词全大写,单词间 _ 分隔
  • b.final修饰引用数据类型的变量(值不能改变) ,类型也不能变

猜你喜欢

转载自blog.csdn.net/WZL995/article/details/83347349