访问权限
当用一个类创建了一个对象之后,该对象可以通过“.”运算符操作自己的变量、使用类中的方法,但对象操作自己的变量和使用类中的方法是有一定限制的。
所谓访问权限是指对象是否可以通过“.”运算符操作自己的变量或通过“.”运算符使用类中的方法。
访问限制修饰符有private、protected和public,都是Java的关键字,用来修饰成员变量或方法。
一、私有变量和私有方法
用关键字private修饰的成员变量和方法称为私有变量和私有方法。
对于私有成员变量或方法,只有在本类中创建该类的对象时,这个对象才能访问自己的私有成员变量和类中的私有方法。
class Tom {
private float weight;
private float f(float a,float b){
return a+b;
}
}
class Jerry {
void g() {
Tom cat=new Tom();
cat.weight=23f; //非法
float sum=cat.f(3,4); //非法
}
}
二、共有变量和共有方法
用public修饰的成员变量和方法被称为共有变量和共有方法 。
我们在任何一个类中用类Tom 创建了一个对象后,该对象能访问自己的public变量和类中的public方法(也可以通过类名来操作成员变量、方法) 。
class Tom {
public float weight;
public float f(float a,float b) {
return a+b;
}
}
class Jerry {
void g() {
Tom cat=new Tom();
cat.weight=23f; //合法
float sum=cat.f(3,4); //合法
}
}
三、受保护的变量和方法
用protected修饰的成员变量和方法被称为受保护的成员变量和受保护的方法 。
我们在任何一个类中用类Tom 创建了一个对象后,如果这个类和类Tom在同一个包中,那么该对象能访问自己的protected变量和类中的protected方法。
class Tom {
protected float weight;
protected float f(float a,float b) {
return a+b;
}
}
class Jerry {
void g() {
Tom cat=new Tom();
cat.weight=23f; //合法
float sum=cat.f(3,4); //合法
}
四、友好变量和友好方法
不用private、public、protected修饰的成员变量和方法被称为友好变量和友好方法。
我们在任何一个类中用类Tom 创建了一个对象后,如果这个类和类Tom在同一个包中,那么该对象能访问自己的友好变量和类中的友好方法。
class Tom {
protected float weight;
protected float f(float a,float b) {
return a+b;
}
}
class Jerry {
void g() {
Tom cat=new Tom();
cat.weight=23f; //合法
float sum=cat.f(3,4); //合法
}
五、public类与友好类
类声明时,如果在关键字class前面加上public关键字,就称这样的类是一个public 类 。
可以在任何另外一个类中,使用public类创建对象。
如果一个类不加public修饰,这样的类被称作友好类。
在另外一个类中使用友好类创建对象时,要保证它们是在同一包中。
注:
(1)不能用protected和private修饰类
(2)访问限制修饰符按访问权限从高到低的排列顺序是:public、ptotected、友好的、private。