访问权限:
首先我们要知道什么是访问权限,当一个类创建了一个对象,这个对象就可以通过“.”运算符来操作自己的变量和使用类中的方法,而访问权限就是说类能否通过“.”访问自己的变量或操作类中的方法。总的来说访问限制修饰符有三种:private、protected和public,以下会详细介绍区别。
先给总结的图,看完图后文字应该更好理解:
(1)私有变量和私有方法(private):
用private修饰的成员变量和方法称为私有变量和私有方法,当你在另外一个类中创建了一个对象,这个对象不能访问自己的私有变量和私有方法,如:
class Example{
private float weight;//weight 是私有变量
private float f(float a,float b){//方法f是私有方法
...
}
}
class Example1{
void g(){
Example sugerman=new Example();
sugerman.weight=222f;//不合法
sugerman.f(9f,9f);//也不合法
}
}
所以很显然,private修饰的成员变量作用域只有当前类。对于私有变量或者方法,只有在本类中创建该类的对象时,这个对象才能访问自己的私有成员变量和类中的私有方法。如:
class Example{
private int height;
private void chickenJiao(){
System.out.println("身高"+height+"厉不厉害你坤哥"+"你干嘛哈哈哎哟!");
}
public static void main(String args[]){
Example cxk = new Example();
cxk.height=2000;
cxk.chickenJiao();
}
}
运行结果:
(2)共有变量和共有方法(public)
这应该是我们最常见的访问限制修饰符了,用public修饰的成员变量和方法被称为共有变量和共有方法。这个应该大家都很清楚,例子就不举了,总之就是在任何一个类中创建一个对象,都可以通过这个对象访问public变量和对象所属这个类中的public方法。
(3)友好变量和有好方法
简单来说就是不用private、public、protected修饰符修饰的成员变量和方法被称为友好变量和友好方法,也就是默认的修饰类型。除去子孙类以外和protected类似都是同一个包可以访问,不同包不允许访问。
(4)受保护的成员变量和方法(protected)
用protected修饰的成员变量和方法被称为受保护的成员变量和受保护的方法,这个理解也很简单,假设A类有一个成员变量a1受保护,你在B类中创建一个A类对象,如果B和A是一个package中的类那么你是可以通过这个新的对象访问a1,否则不可以。
在子类中protected和友好的之间在继承方面有区别,在另一篇子类继承中会讲到。
(5)public类与友好类( 这里是类上面都是方法和变量)
简而言之类声明class前加上public关键字就是public类,不加就是友好类。可以在任何另外一个类中使用public类创建的对象,友好类的对象要在另一个类中使用则需要保证他们在同一个包中。
Attentions:1、不能用protected和private修饰类。
2、访问限制修饰符访问权限从高到低排序的顺序是public、protected、友好的、private。