1、package(或称为friendly,但不用写出,friendly也不是关键字)权限,在同一包中的类和继承该类的子类可以访问;
2、public权限,任何类都可以访问;
3、private权限,该类内部的成员(方法、属性、内部类)可以访问,连该类的实例对象都不可以访问;
4、protected权限,继承访问权限,包内其余类和继承该类的子类可以访问,跟friendly权限差不多。
类中构造函数的访问权限:
1、public 很简单,不说了
2、protected 构造函数可以被继承该类的子类调用,但不能在包外或子类以外的地方被调用用来产生实例
3、private 只能在该类内部使用,该类无法被继承
内部类的访问权限:
1、public 任何地方均可访问
2、protected 在同一个包内均可访问,不同的包的子类可以访问
3、friendly(即默认权限) 同一个包内才可以访问
4、private 只有该内部类的外部类本身可以访问
类的访问权限:
1、public 任何地方均可访问
2、friendly 即默认权限,又称为package权限,在同一个包内可访问
Java中私有构造器的作用:
所谓私有构造器,就是用private关键字声明的构造器。与一般公有构造器最大的区别在于,其访问权限是private,于是它只能被包含它的类自身所 访问,而无法在类的外部调用,故而可以阻止对象的生成。所以,如果一个类只有一个私有构造器,而没有任何公有构造器,是无法生成任何对象的。
那么无法生成对象的带有私有构造器的类究竟有什么作用呢?这样的类在实际应用中最常用的是作为工具类,如字符串的验证、枚举转换之类的,通常只做成静态接 口被外部调用即可。这里先插入一点关于静态方法的说明。静态方法是用static关键字声明的方法,可以用类来直接调用而无需用从类中实例化出来的具体对 象来调用,因此这样的方法也被称为类方法。static方法只能访问类中的static字段和其他的static方法,这是因为非static成员必须通 过对象的引用来访问。举一个例子:
public class A{
}
那么在外部使用的时候,只需要通过类名,而不是对象实例来调用validataString方法,如A.validataString(str);可以直接调用此方法。阻止生成对象可以防止不可预期的结果。
----------------------------------------------------------------------------------------------
Java中私有静态方法的作用:
私有静态方法,即在类中用static和private修饰的方法。其作用为:
1、保持类的良好封装性,将private修饰的方法隐藏起来,不让该类的子类、同包兄弟类以及非同包的其他类访问,但其内部类可以访问。
2、节省空间,静态方法不会有多个copy。
3、基于以上两点,私有静态方法适用于有这些要求or特征的方法:a)该方法需要被类中其余方法经常调用;b)需要对外隐藏该方法的存在;c)类的对象实例并不需要调用该方法.