权限修饰符
在Java中提供了四种访问权限,使用不同的访问权限时,被修饰的内容会有不同的访问权限,以下表来说明不同权限的访问能力:
public | protected | default | private | |
---|---|---|---|---|
同一类中 | √ | √ | √ | √ |
同一包中(子类与无关类) | √ | √ | √ | |
不同包的子类 | √ | √ | ||
不同包中的无关类 | √ |
归纳一下:在日常开发过程中,编写的类、方法、成员变量的访问
- A:要想仅能在本类中访问使用private修饰
- B:要想本包中的类都可以访问除了private修饰符,其它都可以
- C:要想本包中的类与其他包中的子类可以访问使用protected修饰
- D:要想所有包中的所有类都可以访问使用public修饰。
注意:如果类用public修饰,则类名必须与文件名相同。一个文件中只能有一个public修饰的类。
package com.itheima_02;
/*
* 权限修饰符:
* public 当前类,相同报下不同类,不同包下的类
* default 当前类,相同报下不同类
* private 当前类
* protected 当前类,相同报下不同类
*
* default和protected的区别:
* default 当前包下使用
* protected 让子类对象使用
*/
public class PermissionsDemo {
public void publicMethod() {
System.out.println("publicMethod");
}
void defaultMethod() {
System.out.println("defaultMethod");
}
private void privateMethod() {
System.out.println("privateMethod");
}
protected void protectedMethod() {
System.out.println("protectedMethod");
}
public static void main(String[] args) {
PermissionsDemo pd = new PermissionsDemo();
pd.publicMethod();
pd.defaultMethod();
pd.privateMethod();
pd.protectedMethod();
}
}
package com.itheima_02;
public class PermissionsDemo2 {
public static void main(String[] args) {
PermissionsDemo pd = new PermissionsDemo();
pd.publicMethod();
pd.defaultMethod();
// pd.privateMethod();
pd.protectedMethod();
}
}
package com.itheima_03;
import com.itheima_02.PermissionsDemo;
public class PermissionsDemo3 {
public static void main(String[] args) {
PermissionsDemo pd = new PermissionsDemo();
pd.publicMethod();
// pd.defaultMethod();
// pd.privateMethod();
// pd.protectedMethod();
}
}
package com.itheima_03;
import com.itheima_02.PermissionsDemo;
public class PermissionsDemo4 extends PermissionsDemo{
public void function() {
super.publicMethod();
super.protectedMethod();
}
public static void main(String[] args) {
PermissionsDemo pd = new PermissionsDemo();
pd.publicMethod();
// pd.defaultMethod();
// pd.privateMethod();
// pd.protectedMethod();
}
}
网友评论