Loading... # 访问权限修饰符 ## public 公共的 ## protected 受保护的 ## default 默认的 ## private 私有的 [封装中的使用](https://blog.fivk.cn/archives/818.html) | | public | protected | default | private | | ---------------------------- | -------- | ----------- | --------- | --------- | | 同一个类中 | **√** | **√** | **√** | **√** | | 同一个包中(子类、无关类) | **√** | **√** | **√** | × | | 不同包子类 | **√** | **√** | × | × | | 不同包无关类 | **√** | × | × | × | * default不是关键字,表示默认,直接不用写。 * 访问权限修饰符使用建议 * 成员变量使用private:隐藏细节; * 构造方法使用public:方便创建对象; * 成员方法使用public:方便调用方法。 # 其他修饰符 ## static 修饰成员变量和成员方法,被修饰的成员属于类。 可以被多个对象共享,不能通过创建对象来调用。 ### 类变量 static修饰成员变量 * 使用 `类名.成员变量名` 调用。 ### 静态方法 static修饰成员方法 * 使用 `类名.成员方法名` 调用。 【注意】 1. 静态方法只能访问静态成员;(内存中先有静态,再有非静态) 2. 静态方法中不能使用this关键字; 3. 对于本类的静态方法,可以省略类名直接调用。 ### 静态代码块 ```java has-numbering public class 类名() { static { // 静态代码块 } } ``` 【特点】 1. 静态代码块只执行一次 2. 静态内容优先于非静态内容执行,所以静态代码块比构造方法先执行 【用途】 静态代码块用于一次性的对静态成员变量进行赋值。 ## final ### 概述 子类可以在父类的基础上修改父类的内容(如方法重写),为了防止随意改写,Java提供了 `final` 关键字。 final:表示最终的,不可改变的。可以用于修饰类、方法和变量。 ### 使用方式 #### 修饰类 `权限修饰符 final class 类名 {}` * 被修饰的类不能被继承; * 其所有成员方法都不能被重写。 * `public final class String`、 `public final class Math`、 `public final class Scanner` #### 修饰方法 `修饰符 final 返回值类型 方法名(参数列表) {}` * 最终方法,不能被重写。 【注意】 `abstract`和 `final`不能同时使用。 #### 修饰变量 * 局部变量 * 只能赋值一次,不能再更改; * 基本数据类型:值不变; * 引用数据类型:地址值不变。 * 成员变量 * 成员变量有默认值,final修饰后,不再给默认值; * 直接赋值 和 构造方法赋值,只能二选一; * 不能再有setXxx()方法; * 被final修饰的常量名称,书写规范要求所有字母都大写,多个单词之间用 `_` 分隔。 ```java has-numbering 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 [封装的优化](https://blog.fivk.cn/archives/818.html) ## super [继承中的使用](https://blog.fivk.cn/archives/819.html) ## instanceof [多态中判断一个对象是否是某一个类的实例](https://blog.fivk.cn/archives/820.html) > 感谢小伙伴们的关注! > 你的点赞、评论、关注、收藏是对博主的最大鼓励! > 持续更新JavaSE学习笔记!欢迎订阅专栏! 最后修改:2021 年 10 月 07 日 © 允许规范转载 打赏 赞赏作者 支付宝微信 赞 如果觉得我的文章对你有用,请随意赞赏