java 访问控制符

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

余额充值