一、访问修饰符
(1)public: 用public修饰的类、类属变量及方法,包内及包外的任何类(包括子类和普通类)均可以访问;
(2)protected: 用protected修饰的类、类属变量及方法,包内的任何类及包外那些继承了该类的子类才能访问
(3)default: 如果一个类、类属变量及方法没有用任何修饰符,则其访问权限为default(默认访问权限)。
默认访问权限的类、类属变量及方法,包内的任何类(包括继承了此类的子类)都可以访问它。
(4)private: 用private修饰的类、类属变量及方法,只有本类可以访问,而包内包外的任何类均不能访问它。
|
访问级别 |
访问控制修饰符 |
同类 |
同包 |
子类 |
不同的包 |
|
公开 |
public |
√ |
√ |
√ |
√ |
|
受保护 |
protected |
√ |
√ |
√ |
-- |
|
默认 |
没有访问控制修饰符 |
√ |
√ |
-- |
-- |
|
私有 |
private |
√ |
-- |
-- |
-- |
二. final关键字
final关键字可以用来修饰类、方法和变量
1、修饰类
当用final修饰一个类时,表明这个类不能被继承。
2.修饰方法
当用final修饰一个方法时,表明这个方法不能被覆盖。
3.修饰变量
final成员变量表示常量,只能被赋值一次,赋值后值不再改变。
三、synchronized
代表这个方法加锁,相当于不管哪一个线程(例如线程A),运行到这个方法时,都要检查有没有其它线程B(或者C、 D等)正在用这个方法(或者该类的其他同步方法),有的话要等正在使用synchronized方法的线程B(或者C 、D)运行完这个方法后再运行此线程A,没有的话,锁定调用者,然后直接运行。它包括两种用法:synchronized 方法和 synchronized 块。
比如:
public synchronized void test(){
.........
}
public void test(){
synchronized(Main.class){
.........
}
}

本文详细介绍了Java中访问控制修饰符public、protected、default、private的使用范围,并解释了final关键字如何用于禁止类的继承、阻止方法的重写以及定义不可变变量。此外,还探讨了synchronized的作用及其在多线程环境中的应用。
1447

被折叠的 条评论
为什么被折叠?



