Java访问权限

来源:互联网 发布:android7.0源码网盘 编辑:程序博客网 时间:2024/06/05 04:59
类中某成员(方法或属性,method or field)的访问权限:

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{

       private A(){} ///私有构造类,阻止实例的生成

       public static bool validataString(String str);

}

那么在外部使用的时候,只需要通过类名,而不是对象实例来调用validataString方法,如A.validataString(str);可以直接调用此方法。阻止生成对象可以防止不可预期的结果。

----------------------------------------------------------------------------------------------

Java中私有静态方法的作用:

 

私有静态方法,即在类中用static和private修饰的方法。其作用为:

1、保持类的良好封装性,将private修饰的方法隐藏起来,不让该类的子类、同包兄弟类以及非同包的其他类访问,但其内部类可以访问。

2、节省空间,静态方法不会有多个copy。

3、基于以上两点,私有静态方法适用于有这些要求or特征的方法:a)该方法需要被类中其余方法经常调用;b)需要对外隐藏该方法的存在;c)类的对象实例并不需要调用该方法.

0 0
原创粉丝点击