968天 Mr.贰呆

唯一自信的就是自己的人品。
寻求王者玩家一起开黑净化峡谷环境​​

【java】中4种修饰符访问权限的区别及详解全过程

发布于 / 756 次围观 / 0 条评论 / Java / 二呆 /

java中4中修饰符分别为public、protect、default、private,他们这就说明了面向对象的封装性,所以我们要适用他们尽可能的让权限降到最低,从而安全性提高。 下面详细讲述下它们的访问权限问题。(同一个类中除内部类外所有修饰符都是可以访问的,所以下面排除这种情况。) 首先在这里把它们的访问权限表示出来:

访问权限


子类
其他包
public




protect




default




private




下面做进一步说明java中4种修饰符访问权限的区别及详解全过程: 1、首先,说明public的权限问题,定义4个类Person、People、Student、Computer,分别比较本类、同包、子类、其他包的区别。 这里要注意:当重写父类成员函数时,子类的成员函数不能比父类的成员函数权限小,一般重写把权限定义相同即可。 代码如图所示:

①Person.java

 Student extends Person{
 String address;
 Student(String name,int age,String address){
 super(name,age);
 this.address=address;
 }
 @Override
 void study() {
 System.out.println(name+"要去("+address+")学习");
 }
}

②People.java

 package com.tongleer;
public class People{
    String address;
    public void introduce(){
        Person p=new Person();
        p.name=null;
        p.thing();
    }
}

③Student.java

 package com.tongleer.app;
import com.tongleer.Person;
public class Student extends Person{
    String address;
    public void introduce(){
        System.out.println("我的名字是"+name);
        thing();
    }
}

④Computer.java

package com.tongleer.app;
import com.tongleer.Person;
public class Computer{
    String address;
    public void introduce(){
        Person p=new Person();
        p.name=null;
    }
}

2、上边把类都建好了,然后开始测试,如果均能编译通过,就说明用public修饰的类在本类、同包、子类、其他包中互相访问都是可以的。

3、根据public的测试方法,依次用这4个类再测试protected、default和private的访问权限问题。 得出结论:public>protected>default>private权限,意思是public不管包内还是包外还是子类都能访问;protected可以允许包外的子类见访问;default只能是包内访问;private私有的只能修饰本类的成员变量和成员函数。

4、综上所述,java中4种修饰符访问权限的区别及详解全过程就此演示完了,再一次说明java语言的严谨性和安全性,我们在以后使用这4中修饰符时创建一个类,这个类的权限尽量要小,这样才能减少漏洞和提高安全性,从而体现java面向对象的封装性。

注意事项:

java面向对象的封装性对以后做程序很有帮助,可以在实际操作项目中锻炼学习。

最好不要图方便一直用public而失去了封装的意义。

sitemap
共享域名