您的位置 首页 java

Java入门超经典教程-this/super/static/final

1. 面向对象查漏补缺

1.1. this关键字(重点掌握)

什么是this:表示当前对象

this主要存在于两个位置:

  • 构造器 中:表示当前被创建的对象
  • 在 方法中:哪一个对象调用this所在的方法,此时this就表示哪一个对象

测试代码:

运行测试:

什么时候需要使用this:

  • 解决 局部变量 和成员变量之间的二义性,此时必须使用
  • 同一个类中非 static 方法间互调(此时可以省略this,但是不建议省略)
  • 构造器 重载 的互调(看懂即可)

1.2. super关键字(重点掌握)

什么是super:

this:表示当前对象,谁调用this所在的方法,this就是哪一个对象

super:当前对象的父类对象

在创建子类对象时,在子类构造器的第一行会先调用父类的构造器。

什么时候使用super:

  • 在子类方法中,调用父类被覆盖的方法,此时必须使用super
  • 在子类构造器中,调用父类构造器,此时必须使用super语句

父类代码:

子类代码:

1.3. static修饰符(掌握)

static修饰的字段和方法直接属于类,不属于该类的对象。记住:字段和方法属于谁,就让谁来调用。

  • 使用static修饰的成员:属于类直接使用类名调用即可
  • 没有使用static修饰的成员:属于对象必须先创建对象,再调用

注意:static方法不能使用super和this:

因为static是类级别的,super和this是对象级别的,存在类的时候不一定存在对象,也就说使用类名调用static方法时,此时可能是没有对象的。

测试代码:

内存分析:

static修饰的成员变量(字段),随着所在类被加载进JVM,也同时存储在方法区中,被所有对象共享。

实例成员和类成员的访问规则:

使用对象访问static方法或成员变量,底层依然使用类名访问的。

一般的,static方法访问的成员变量必须使用static修饰。

最后记住结论:

  • 类 成 员:使用static修饰的字段和方法:属于类直接使用类名调用即可
  • 实例成员:没有使用static修饰的字段和方法:属于对象必须先创建对象,再调用

1.4. final修饰符(掌握)

继承关系最大弊端是破坏封装,子类可以继承父类的实现细节,也可以通过方法覆盖的形式修改功能实现细节。那么怎么来限制某个类不能有子类,不能覆盖方法?——final修饰符。

final的含义是最终的,不可改变的,可以修饰类、方法、变量。

  • final修饰的类:表示最终的类, 该类不能再有子类

  • final修饰的方法:最终的方法,该方法不能被子类覆盖

  • final修饰的变量:表示常量,该变量只能赋值一次,不能再重新赋值。
  • 基本数据类型:表示的值不能改变
  • 引用数据类型:所引用的地址值不能改变

本系列教程为叩丁狼Java基础班内部教材,若要获得最好的学习效果,需要配合对应教学视频一起学习。需要完整教学视频,请私信作者。

文章来源:智云一二三科技

文章标题:Java入门超经典教程-this/super/static/final

文章地址:https://www.zhihuclub.com/186451.shtml

关于作者: 智云科技

热门文章

网站地图