Java访问修饰符总结
今天我分享一下我学习访问控制符的心得。 实现封装,需要使用访问修饰符。 我通过访问控制级别的从小到大的顺序一一说说我对访问修饰符的理解。总:修饰符有private protected public
一:private代表的访问控制级别(修饰符为private)。
通过private修饰符修饰的成员变量,方法,构造器只能在当前类的内部被访问,private修饰对象的状态信息能很好的实现封装。下面通过代码来演示private访问控制修饰符。 代码演示:
<pre name="code" class="java">class TestOne {
// 定义一个private修饰的实例变量
private int a;
}
public class Test {
public static void main(String args[]) {
TestOne test = new TestOne();
/*
* 在Tset类中通过通过实例test访问TestOne类中被private修饰的实例变量a时,将出现编译错误
*/
test.a = 10;
}
}
二:default代表的访问控制级别。(无修饰符) 此级别没有访问控制符,当成员变量,方法,构造器前没有任何访问修饰符时,默认就是default访问控制级别,该访问控制级别控制的成员,只能被同一个包下的其他类访问。 代码演示: 代码演示: 1:
<pre name="code" class="java">package test;
public class Test {
// 定义一个default访问控制级别的实例变量
int a = 10;
}
package test;
public class TestThree {
public static void main(String args[]) {
Test test = new Test();
// default访问控制级别的实例变量在同一个包下的他类中被访问
System.out.println(test.a);
}
}
2:
<pre name="code" class="java">package test;
public class Test {
// 定义一个default访问控制级别的实例变量
int a = 10;
}
package testone;
import test.Test;
public class TestTwo {
public static void main(String args[]) {
Test test = new Test();
// default访问控制级别的实例变量在不同包下的他类中不可以被访问,将出现编译错误
System.out.println(test.a);
}
}
三:protected代表的访问控制级别(修饰符为protected)
protected修饰符修饰的成员变量,方法,构造器。可以被同一个包下的其他类访问,也可以被不同包下的子类访问。 代码演示: 1:被同一个包下的其他类访问
</pre><pre name="code" class="java">package test;
public class Test {
// 定义一个protected访问控制修饰符修饰的实例变量
protected int a = 10;
}
package test;
public class TestThree {
public static void main(String args[]) {
Test test = new Test();
// protected访问控制修饰符修饰的实例变量可以被同一个包下的他类中被访问
System.out.println(test.a);
}
}
2:被其他包下的子类访问
<pre name="code" class="java">package test;
public class Test {
// 定义一个protected访问控制修饰符修饰的实例变量
protected int a = 10;
}
package testone;
import test.Test;
public class TestTwo extends Test {
public static void main(String args[]) {
TestTwo test = new TestTwo();
// protected访问控制修饰符修饰的实例变量在不同包下的子类中可以被访问
System.out.println(test.a);
}
}
四:public代表的访问控制级别(修饰符为public)
public修饰的成员变量,方法,构造器,可以被任何包下的任何类所访问。
修饰外部类只可以使用public或默认访问控制,因为priavte和protected修饰的实在类的内部和子类中被访问,外部类不在任何类的内部。