权限修饰符
一个Java应用有很多类,但是有些类,并不希望被其他类使用。每个类中都有数据成员和方法成员,但是并不是每个数据和方法,都允许在其他类中调用。如何能做到访问控制呢?就需要使用访问权限修饰符。
Java语言中的访问权限修饰符有4种,但是仅有3个关键字,因为不写访问权限,在Java中被称为默认权限,或同包权限,本文中以(default)代替。下面按照权限从小到大的顺序对4中访问权限分别介绍。
权限修饰符:在哪种情况下可以被访问到。
本类 | 同一个包下的类 | 不同包下的子类 | 不同包下的无关类 | |
---|---|---|---|---|
private | yes | no | no | no |
默认 | yes | yes | no | no |
protected | yes | yes | no | no |
public | yes | yes | no | yes |
常见的内容修饰
类:public
public class HelloWorld {}
成员变量:private
private String name;
private int age;
构造方法:public
public Student() {}
public Student(String name,int age) {}
成员方法:public
public void show() {}
public void eat() {}
哪些东西可以修饰哪些东西
类 成员变量 构造方法 成员方法
private Y Y Y
默认(default) Y Y Y Y
protected Y Y Y
public Y Y Y Y
static Y Y
final Y Y Y
abstract Y Y
注意:
四种权限修饰符,只能有一种存在。
class Demo {}
常见的组合:
类:
public class HelloWorld {}
public final class HelloWorld {}
public abstract class HelloWorld {}
成员变量:
private String name;
public final int X = 10;
public static int y = 20;
public static final int X = 30;
成员方法:
public void show(){}
public abstract void show();
public final void show(){}
public static void show() {}
public static final void show() {}