JAVA中的访问权限控制


java提供了public,private,protected三个访问权限修饰词,提供了四种访问权限控制机制:

1. 包访问权限;

2. public访问权限;

3. private访问权限;

4. protected访问权限;


1,包访问权限

当方法域没有给定访问权限控制符,就默认具有该权限。具有包访问权限的方法和域成员,在包内是完全可见的,而包外则不可见。

package access;

public class Animal {

	void bark(){
		System.out.println("bark");
	}
}

package access;

public class Test {

	public static void main(String[] args) {
		Animal a = new Animal();
		a.bark();
	}
}

因为上面两个类在同一个包下,而Animal类中的bark()方法为包访问权限,所以对Test类可见。对java文件中的类也是如此,若没有指定先支付,则默认是包访问权限,只能在包内被使用,包外是无法利用其创建对象的。


2,public 访问权限

在方法或者域前面给定public 限定符,就具有了public访问权限。

public权限是最宽松的一种权限,对包内外都是完全可见的,一个java文件内,可以有多个类,但是只能有一个被public修饰,且被修饰的类必须和文件名一致。

注意:类的访问权限只有包访问权限和public访问权限两种。


3,private 访问权限

private访问权限是最严格的一种权限。

当方法或者域被定义为private时,表明其只针对该类的内部可见,类的外部是不可见的(包括同一包内的其他类)。


package access;

public class Animal {

	private void bark(){
		System.out.println("bark");
	}
}

package access;

public class Test {

	public static void main(String[] args) {
		Animal a = new Animal();
		a.bark();//此处将造成编译错误,因为bark()方法为private,仅对Animal类内部可见。
	}
}


4,protected 访问权限

protected权限是介于public 和 private之间的权限,具有该权限的方法和域只能对其自身和导出类可见(比如子类)。


在程序设计中,最常用的是public 和private 两种,一般情况将域定义为private,将方法定义为public 。外界使用该类的时候,可以访问该方法,但是具体域成员则对外屏蔽,只能通过类提供的接口访问。


5.总结

作用域当前类同一package子类其他package
publicyesyesyes yes
protectedyesyesyesno
defaultyesyesnono
privateyesnonono



 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值