前言:在面向对象编程语言中,我们常用的权限修饰符有四种,分别是:private、public、protected和默认修饰符,那么被这四种权限修饰符修饰的方法在不同的类中调用都有什么特点呢?除了修饰方法,它们还能够修饰什么?
1、被权限修饰符修饰的方法调用特点
(1)在本类中。首先我们定义一个fu类,并为它分别用四种修饰符修饰四种方法:
<span style="font-size:14px;">//定义父类
public class Fu
{
//私有权限修饰符
private void show()
{
System.out.println("private");
}
//默认修饰符
void show2()
{
System.out.println("默认");
}
//受保护修饰符
protected void show3()
{
System.out.println("protected");
}
//公共修饰符
public void show4()
{
System.out.println("public");
}
public static void main(String[] args)
{
Fu f = new Fu();
f.show();
f.show2();
f.show3();
f.show4();
}
}</span>
编译运行之后,我们发现四种方法 全部打印成功。所以四种权限修饰符修饰的方法在本类中都能够成功调用。
(2)在同一包下定义测试类test(和fu类没有继承关系),并调用fu类中的四种方法:
<span style="font-size:14px;">//测试类
class Test
{
public static void main(String[] args)
{
Fu f = new Fu();
f.show();//报错
f.show2();
f.show3();
f.show4();
}
}</span>
编译运行,发现被private修饰的方法不能调用,其他方法调用成功。
(3)同理,用相同包下继承fu类的zi类调用fu的四种方法;对不同包下测试类(和fu类没有继承关系)调用fu的四种方法;对不同包下fu的子类调用四种方法,得出结论,如下表(可以调用:Y;不能调用:N):
2、这些修饰符还能修饰什么?
在这里,再添加abstract、static、final三个修饰符和前四种修饰符一起比较(可以调用:Y;不能调用:N):
注:被final修饰的类不可以被继承、修饰的成员变量是常量、修饰的成员方法不可以被重写。
小结:万丈高楼平地起,勿在浮沙筑高台,基础知识是一个优秀程序猿的必备素养,集腋成裘,聚沙成搭,祝大家在程序猿之路上越走越好,早日成为攻城狮或有更多担当的岗位人才!