Java函数的访问权限修饰符:public、protected、private与default的作用与区别
Java中的访问权限修饰符是用来控制类、方法、变量等成员的访问权限的,Java中一共有四种权限修饰符,分别是public、protected、private和default,本文主要介绍这四种权限修饰符的作用和区别。
1. public权限修饰符
public是Java中最高的访问权限修饰符,被修饰的成员可以被任何类、方法、变量等成员访问,即在任何地方都可以访问。通常情况下,public成员在外部类和外部包中都可以直接访问。
例如:
public class Test {
public int num;
public void display() {
System.out.println("hello world!");
}
}
在上面的代码中,Test类中的num和display()方法都被声明为public,因此其他类都可以直接访问它们。
2. protected权限修饰符
protected权限修饰符的作用范围比public要小一些,它所修饰的成员只能在当前类及其子类中访问,不能被其他类访问。如果想要在其他包中使用protected成员,必须通过继承的方式来实现。
例如:
public class Test {
protected int num;
protected void display() {
System.out.println("hello world!");
}
}
在上面的代码中,Test类中的num和display()方法都被声明为protected,因此只有Test类及其子类中可以直接访问它们。
3. private权限修饰符
private权限修饰符的作用范围比protected还要小,它所修饰的成员只能在当前类中访问,不能被其他类访问。如果想要在其他类中访问private成员,必须通过提供公共的访问方法来实现。
例如:
public class Test {
private int num;
private void display() {
System.out.println("hello world!");
}
public int getNum() {
return num;
}
}
在上面的代码中,Test类中的num和display()方法都被声明为private,因此只有Test类中可以直接访问它们。为了让其他类访问num成员,我们通过提供公共的访问方法getNum()来实现。
4. default权限修饰符
default权限修饰符是Java中默认的访问权限修饰符,如果不使用任何权限修饰符,Java默认使用default权限修饰符。default权限修饰符只能在当前包中访问,无法跨包访问,如果想要在其他包中访问某个成员,必须通过继承的方式来实现。
例如:
class Test {
int num;
void display() {
System.out.println("hello world!");
}
}
在上面的代码中,Test类中的num和display()方法都没有使用任何权限修饰符,即被声明为default,因此只有当前包中的其他类可以访问它们。
总结:
1. public最高,能被所有类访问;
2. protected只能被继承的子类访问;
3. private只能在当前类中访问;
4. default只能在当前包中访问。
