Java权限修饰符

Posted 从零开始的智障生活

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java权限修饰符相关的知识,希望对你有一定的参考价值。

权限修饰符不能放在方法之中。

一、default

default性质的类、成员变量、方法、内部类,只能类本身被同一个包中的类访问和引用——包访问性。

class AccessOfDefault {
	/**
	 * 默认访问控制符
	 * 默认访问控制符,可以针对类、变量和方法、内部类
	 * 默认访问控制权规定,该类【只能被同一个包中的类访问和引用】,而不可以被其他包中的类使用,这种访问特性又称为包访问性。
	 * 同样道理,类内的变量或方法如果没有访问控制符来限定,也就具有包访问性。
	 * 简单地说,定义在同一个程序中的所有类属于一个包。 
	 */
}

二、public

public可以修饰类。

被public修饰的类、成员变量、方法、内部类,可以被任何类调用。

public class AccessOfPublic {
	/**
	 * 公有访问控制符(public)
	 * public 可以修饰类,变量和方法、内部类
     *
	 * public修饰类
	 * Java的类是通过包的概念来组织的,包是类的一个松散的集合。
	 * 处于同一个包中的类可以不需要任何说明而方便地互相访问和引用。
	 * 而对于不同包中的类则不行。但当一个类被声明为public时,它就具有了被其他包中的类访问的可能性,主要这些其他包中的类在程序中使用import语句引入public类,就可以访问和引用这个类。
	 * 
	 * 每个Java程序的主类都必须是public类,也是基于相同的原因。
	 */
	
	/**
	 * public修饰变量
	 * public修饰的类的变量称为公共变量。如果公共变量属于公共类,则它能被所有的其他类所引用。
	 * public修饰符会造成安全性的数据封装性下降,所以一般应减少public域的使用。
	 */
	public String world = "World";
	
	public void say() {
		/**
		 * public 修饰方法
		 * 类中被设定为 public 的方法是这个类对外的接口部分,避免了程序的其他部分直接去操作类内的数据,这就是实际数据封装思想的体现
		 * 也就是说变量私有,接口公有,自己用的方法私有
		 */
	}
}

三、protected

被修饰为protected的成员变量、方法、内部类,能被3种类引用:

  • 该类自身
  • 与类本身在同一个包中的其他类
  • 在其他包中的继承该类的子类,及其子类
public class AccessOfProtected {
	/**
	 * 保护访问控制符(protected)
	 * 保护访问控制符,可以针对变量和方法、内部类。
	 * 用protected修饰的成员变量可以被3种类所引用:该类自身、与它在同一个包中的其他类、在其他包中的该类的子类。
	 * 使用protected修饰符的主要作用是允许其他包中该类的子类来访问父类的特定属性。
	 */
	protected String world = "World";
	
	protected void say() {
		System.out.println("HelloWorld");
	}	
}

四、private

被修饰为private的成员变量、方法、内部类,只能被本类中被使用。在子类或其他类中都是不可见的。

public class AccessOfPrivate {
	/**
	 * 私有访问控制符(private)
	 * private 可以修饰变量或方法
	 * 用private修饰的变量或方法只能被该类自身所访问和修改,而且不能被任何其他类(包括该类的子类)来获取和引用。
	 * private修饰符用来声明那些类的私有成员,它提供了最高的保护级别。
	 */
	private String worldString = "World";
	private void say() {
		System.out.println("HelloWorld");
	}
	
}

以上是关于Java权限修饰符的主要内容,如果未能解决你的问题,请参考以下文章

Java 访问权限修饰符 与 非访问权限修饰符

一脚踩进java之基础篇21——面向对象 (访问修饰符代码块)

一脚踩进java之基础篇21——面向对象 (访问修饰符代码块)

java中的访问修饰符

权限修饰符

java(异常体系及权限修饰符)