java 访问控制符

 对于类:
默认的:可以在同一个包中的其它类中被访问,在同一个包中被其它的类所继承。
public:可以在任何一个包中的任何一个类中被访问和继承。
//--------------------------------------------------------------------------------------------------------------------
一个类作为整体对程序的其它部分可见,并不能代表类内的所有的域和方法也对程序的其它部分可见,前者是后者的必要条件,类的域和方法能否为其它所有类访问(含继承),还要看这些域和方法自己的访问控制符。
//---------------------------------------------------------------------------------------------------------------------
如果一个类的构造方法声明为private,则其它类不能生成该类的一个实例。
//---------------------------------------------------------------------------------------------------------------------
处在不同包中的子类虽然可以访问父类中限定为protected的成员,但访问这些成员的对象必须具有子类的类型或者子类的子类的类型,而不能是父类类型。

 
对于类成员:
//---------------------------------------------------------------------------------------------------------------------
子类可以继承父类中访问权限设定为public,protected的”默认的”的域变量及方法,但是不能继承访问权限为private的域变量和方法。
//---------------------------
不能同时使用的访问修饰符和非访问修饰符:
abstract与final不能同时修饰同一个类;
abstract与private,static,final或native不能并列修饰同一个方法;
abstract类中不能的private修饰的域和方法;
abstract 方法必须存在于abstract类中;
static 方法中不能处理非static的域。
// 示例代码:
package  pkg1;
public   class  Country
{
 
protected String name;
 
protected void value()//friendly
 {
  name
="China";
 }

}

// ------------------------
package  pkg2;
import  pkg1.Country;
public   class  Main6
{
 
public static void main(String[]args)
 
{
  Country c
=new Country();
  
//c.value();//错误
 }

}

// 子类可以继承父类中访问权限设定为public,protedted和friedly(默认的)的
// 域变量和方法,但是不能继承访问权限设定为private的域变量和方法
class  City  extends  Country
{
 
void setValue()
 
{
  
this.value();//正确
  super.value();//正确
  Country c=new Country();
  
//c.value();//错误:即访问protected成员的对象类型不能是父类类型
  City cc=new City();
  cc.value();
//正确
 }

}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值