14-Java权限修饰符及关键字详解【干货笔记】

访问权限修饰符

public

公共的

protected

受保护的

default

默认的

private

私有的
封装中的使用

publicprotecteddefaultprivate
同一个类中
同一个包中(子类、无关类)×
不同包子类××
不同包无关类×××
  • default不是关键字,表示默认,直接不用写。
  • 访问权限修饰符使用建议
    • 成员变量使用private:隐藏细节;
    • 构造方法使用public:方便创建对象;
    • 成员方法使用public:方便调用方法。

其他修饰符

static

修饰成员变量和成员方法,被修饰的成员属于类。
可以被多个对象共享,不能通过创建对象来调用。

类变量

static修饰成员变量

  • 使用 类名.成员变量名 调用。

静态方法

static修饰成员方法

  • 使用 类名.成员方法名 调用。

【注意】

  1. 静态方法只能访问静态成员;(内存中先有静态,再有非静态)
  2. 静态方法中不能使用this关键字;
  3. 对于本类的静态方法,可以省略类名直接调用。

静态代码块

public class 类名() {
	static {
    	// 静态代码块
    }
}

【特点】

  1. 静态代码块只执行一次
  2. 静态内容优先于非静态内容执行,所以静态代码块比构造方法先执行

【用途】
静态代码块用于一次性的对静态成员变量进行赋值。

final

概述

子类可以在父类的基础上修改父类的内容(如方法重写),为了防止随意改写,Java提供了 final 关键字。
final:表示最终的,不可改变的。可以用于修饰类、方法和变量。

使用方式

修饰类

权限修饰符 final class 类名 {}

  • 被修饰的类不能被继承;
  • 其所有成员方法都不能被重写。
  • public final class Stringpublic final class Mathpublic final class Scanner
修饰方法

修饰符 final 返回值类型 方法名(参数列表) {}

  • 最终方法,不能被重写。

【注意】
abstractfinal不能同时使用。

修饰变量
  • 局部变量
    • 只能赋值一次,不能再更改;
    • 基本数据类型:值不变;
    • 引用数据类型:地址值不变。
  • 成员变量
    • 成员变量有默认值,final修饰后,不再给默认值;
    • 直接赋值 和 构造方法赋值,只能二选一;
    • 不能再有setXxx()方法;
    • 被final修饰的常量名称,书写规范要求所有字母都大写,多个单词之间用 _ 分隔。
public static void main(String[] args) {
    final int c = 0;
    for (int i = 0; i < 10; i++) {
        c = i; // 无法为最终变量c分配值
        System.out.println(c);
    }

    for (int i = 0; i < 10; i++) {
        final int c = i;
        System.out.println(c);
    }
}

transient

其他关键字

this

封装的优化

super

继承中的使用

instanceof

多态中判断一个对象是否是某一个类的实例

感谢小伙伴们的关注!
你的点赞评论关注收藏是对博主的最大鼓励!
持续更新JavaSE学习笔记!欢迎订阅专栏!

评论 11
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

行走的程序喵

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值