Java中权限修饰符是指定义类、方法、变量在不同访问级别下的可见性。Java中一共有4个权限修饰符,即public、protected、默认和private,其中默认修饰符不需要显式声明。
public:最为宽松的权限修饰符,它可以被所有其他类所访问,无论是不是在同一个包中。
public class Person { public String name; public int age; }
protected:只能被同一个包中的类或者该类的子类所访问。
protected class Animal { protected int weight; }
默认:也叫包权限,只能在同一个包中被访问,不能被其他包中的类访问。
class Car { int price; }
private:最为严格的权限修饰符,只能在该类内部被访问,不能被其他类访问,即使是同一个包也不行。
class Phone { private String brand; }
变量作用域是指变量的有效范围,即在哪些方法或者代码块中可以访问该变量。
class Person { String name; // 实例变量,作用域是整个类 int age; public void setName(String name) { this.name = name; // 方法的形参 String address = ""; // 方法中的局部变量 for(int i=0; i<10; i++) { // for循环块中的局部变量 int j = 0; } // address和j在该方法外部不能访问 } }
在Java中,变量的作用域可以分为以下几种:
- 实例变量:定义在类中的变量,在整个类中可以访问。
- 静态变量(类变量):用static关键字声明的变量,在整个类中共享同一份内存。
- 形参:用于接收方法传递过来的值,只能在该方法内部访问。
- 局部变量:定义在方法、for循环、if条件语句等代码块中的变量,只能在该代码块内部访问。