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();//正确
 }
}
            

再分享一下我老师大神的人工智能教程吧。零基础!通俗易懂!风趣幽默!还带黄段子!希望你也加入到我们人工智能的队伍中来!https://blog.youkuaiyun.com/jiangjunshow

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值