文章目录
访问权限修饰符
public
公共的
protected
受保护的
default
默认的
private
私有的
封装中的使用
public | protected | default | private | |
---|---|---|---|---|
同一个类中 | √ | √ | √ | √ |
同一个包中(子类、无关类) | √ | √ | √ | × |
不同包子类 | √ | √ | × | × |
不同包无关类 | √ | × | × | × |
- default不是关键字,表示默认,直接不用写。
- 访问权限修饰符使用建议
- 成员变量使用private:隐藏细节;
- 构造方法使用public:方便创建对象;
- 成员方法使用public:方便调用方法。
其他修饰符
static
修饰成员变量和成员方法,被修饰的成员属于类。
可以被多个对象共享,不能通过创建对象来调用。
类变量
static修饰成员变量
- 使用
类名.成员变量名
调用。
静态方法
static修饰成员方法
- 使用
类名.成员方法名
调用。
【注意】
- 静态方法只能访问静态成员;(内存中先有静态,再有非静态)
- 静态方法中不能使用this关键字;
- 对于本类的静态方法,可以省略类名直接调用。
静态代码块
public class 类名() {
static {
// 静态代码块
}
}
【特点】
- 静态代码块只执行一次
- 静态内容优先于非静态内容执行,所以静态代码块比构造方法先执行
【用途】
静态代码块用于一次性的对静态成员变量进行赋值。
final
概述
子类可以在父类的基础上修改父类的内容(如方法重写),为了防止随意改写,Java提供了 final
关键字。
final:表示最终的,不可改变的。可以用于修饰类、方法和变量。
使用方式
修饰类
权限修饰符 final class 类名 {}
- 被修饰的类不能被继承;
- 其所有成员方法都不能被重写。
public final class String
、public final class Math
、public final class Scanner
修饰方法
修饰符 final 返回值类型 方法名(参数列表) {}
- 最终方法,不能被重写。
【注意】
abstract
和 final
不能同时使用。
修饰变量
- 局部变量
- 只能赋值一次,不能再更改;
- 基本数据类型:值不变;
- 引用数据类型:地址值不变。
- 成员变量
- 成员变量有默认值,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学习笔记!欢迎订阅专栏!