Java -- 访问权限控制(public,protected,private)

访问权限控制(public,protected,private)

  • Java中最大权限到最小权限依次为:public,protected,private。
  • 类库:类库实际上是一组类文件。其中每个文件都有一个public类,以及任意数量的非public类。

1.public,接口访问权限。

使用public,意味着public之后的成员声明对每个人都是有用的。

eg:

这里我举个例子:

在一个项目Liu中,我新建了两个包,liusrc和liusrd。其中在liusrc中我建了两个类Cookie.Java和Dinner.java,在liusrd中我建了Lunch.java类。目录如下:

//Cookie类:
package liusrc;
public class Cookie {
	public Cookie(){
		System.out.println("123456");
	}	
	void bite(){
		System.out.println("098765");
	}
}

//Dinner类:
package liusrc;
public class Dinner {
	public static void main(String[] args){
		Cookie x = new Cookie();
		x.bite();
	}
}

由此Dinner输出:

123456

098765

//Lunch类:
package liusrd;

import liusrc.Cookie;  //导包

public class Lunch {
	public static void main(String[] args){
		Cookie x = new Cookie();
		//x.bite();   //不是public不可以访问
  /*
*如果我们想要x.bite();可以用,则我们需要将Cookie类的void bite(),设置为
*public void bite()
*/
	}
}

由此Lunch输出:

123456

2.private,别人无法访问的权限

即便是处于同一个包内的其他类也是不可以访问private成员的,通俗说就是自己隔离了自己。

3.protected:继承访问权限

protected处理的是继承的概念。只有继承他的类才可以访问他的方法。

eg:

//在liusrc中我建了类Cookie2.Java,其中bite()为protected。
package liusrc;
public class Cookie2 {
	public Cookie2(){
		System.out.println("abcd");
	}
	protected void bite(){
		System.out.println("qwer");
	}
}

//在liusrd中我建了Lunch2类,继承类Cookie2:
package liusrd;

import liusrc.Cookie2;

public class Lunch2 extends Cookie2{
	public Lunch2(){
		System.out.println("aaaaa");
	}

	public void sc(){
		bite();
	}
	
	public static void main(String[] args){
		Lunch2 lun = new Lunch2();
		lun.sc();
	}
}

output:

abcd

aaaaa

qwer

总之而已,三个访问权限可以做这样一个解释:

我们可以把一个文件夹当作一个社区,把每一个类当作每一个人。被public修饰的人是这个社区的民警,当有人遇到困难时,都可以向他寻求帮助;被protect修饰的人可以看作是一个家庭的父亲,只有他的儿子(后代)遇到困难时,他才可以伸出援手;被private修饰的人就是这个社区最自私的人,不管谁都不可以从他那得到任何东西。

本人原创,转载请注明,谢谢!

猜你喜欢

转载自blog.csdn.net/weixin_40042248/article/details/81951941
今日推荐