前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >java_static、final、super、this关键字的使用

java_static、final、super、this关键字的使用

作者头像
咕咕星
发布2020-08-19 15:24:14
3730
发布2020-08-19 15:24:14
举报
文章被收录于专栏:咕咕星咕咕星

static关键字

它可以修饰的成员变量和成员方法,被修饰的成员是属于类的,而不是单单是属于某个对象。

当 static 修饰成员变量时,该变量称为类变量

static 数据类型 变量名;

当 static 修饰成员方法时,该方法称为类方法

代码语言:javascript
复制
修饰符 static 返回值类型 方法名 (参数列表) {
    // 执行语句
}

注意:

静态方法可以直接访问类变量和静态方法。 静态方法不能直接访问普通成员变量或成员方法。反之,成员方法可以直接访问类变量或静态方法。 静态方法中,不能使用this关键字。

调用格式

代码语言:javascript
复制
// 访问类变量
类名.类变量名;
// 调用静态方法
类名.静态方法名(参数);

静态原理图解

static 修饰的内容: 是随着类的加载而加载的,且只加载一次。 存储于一块固定的内存区域(静态区),所以,可以直接被类名调用。 它优先于对象存在,所以,可以被所有对象共享。

静态代码块

定义在成员位置,使用static修饰的代码块{ }。

位置:类中方法外。 执行:随着类的加载执行,而执行且执行一次。

代码语言:javascript
复制
public class ClassName {
    static {
    //执行语句
    }
}

作用:给类变量进行初始化赋值

static 关键字,可以修饰变量、方法和代码块。在使用的过程中,主要目的还是想在不创建对象的情况下,去调用方法

final关键字

final: 可以用于修饰类、方法和变量。 类:被修饰的类,不能被继承。 方法:被修饰的方法,不能被重写。 变量:被修饰的变量,不能被重新赋值。

super、this关键字

继承

通过 extends 关键字,可以声明一个子类继承另外一个父类,定义格式如下:

代码语言:javascript
复制
class 父类 {
...
}
class 子类 extends 父类 {
...
}

父类不可被继承的内容

  1. 被private修饰的成员变量
  2. 构造方法不能继承

通过getter/setter方法访问父类的private成员变量

子父类中出现了同名的成员变量时,在子类中需要访问父类中非私有成员变量时,需要使用 super 关键字,修饰父类成员变量 super.父类成员变量名

如果子类父类中出现重名的成员方法,这时的访问是一种特殊情况,叫做方法重写 (Override)。

  1. 子类方法覆盖父类方法,必须要保证权限大于等于父类权限。
  2. 子类方法覆盖父类方法,返回值类型、函数名和参数列表都要一模一样。

继承后构造方法的特点

  1. 构造方法的名字是与类名一致的。所以子类是无法继承父类构造方法的。
  2. 构造方法的作用是初始化成员变量的。所以子类的初始化过程中,必须先执行父类的初始化动作。子类的构造方法中默认有一个 super() ,表示调用父类的构造方法,父类成员变量初始化后,才可以给子类使用。
  3. 继承后子类构造方法特点:子类所有构造方法都会调用父类的无参构造 父类空间优先于子类对象产生

在每次创建子类对象时,先初始化父类空间,再创建其子类对象本身。目的在于子类对象中包含了其对应的父类空间,便可以包含其父类的成员,代码体现在子类的构造方法调用时,一定先调用父类的构造方法。理解图解如下:

super :代表父类的存储空间标识(可以理解为父亲的引用)。

this :代表当前对象的引用(谁调用就代表谁)。

  1. 访问成员 this.成员变量 -- 本类的 super.成员变量 -- 父类的 this.成员方法名() -- 本类的 super.成员方法名() -- 父类的
  2. 访问构造方法 this(...) -- 本类的构造方法 super(...) -- 父类的构造方法

注意: 子类的每个构造方法中均有默认的super(),调用父类的空参构造。手动调用父类构造会覆盖默认的super()。 super() 和 this() 都必须是在构造方法的第一行,所以不能同时出现。 Java只支持单继承,不支持多继承。

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2020-08-05 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • static关键字
    • 静态代码块
    • final关键字
    • super、this关键字
      • 继承
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档