Java访问控制权限

来源:互联网 发布:淘宝的康恩贝那么便宜 编辑:程序博客网 时间:2024/06/04 20:22

public:提供最大的访问权限,任何被public修饰的对象、接口、方法、类都可以在任何情况下被其他类访问

protected:只能由继承它的子类访问

default:同包里面的方法,接口可以互相访问:值得一提的时在tomcat9.0中部分接口设计采用default修饰, 并且默认空实现,这就使得接口具有类似抽象类的功能,spring中很多方法都是采用抽象类空实现接口的不常用方法,然后让一个自定义的类去继承抽象类,从而达到代码简洁的目的,使得程序员可以更加专注于业务逻辑的处理

private:仅限于类的内部访问,达到信息对外部完全隐藏的目的,一般private修饰的属性或者方法的类在内部都会提供一个public的方法,为外部对象访问private修饰的元素提供一个访问入口,private另外一个作用是可以通过private的访问限制规范代码的编写(例如JavaBean)

package com.zhiwei.basic;public class AccessControll {    public static void main(String[] args) {        TestAccess testAccess=new TestAccess();        System.out.println("public:"+testAccess.name);        System.out.println("protected:"+testAccess.sex);        System.out.println("private:"+testAccess.getPasswd());         TestAccess01 testAccess01=new TestAccess01();        System.out.println("子类protected:"+testAccess01.sex);        testAccess01.show();  //直接调用接口默认的方法        testAccess01.showSelf(); //调用接口重写方法    }}class TestAccess{    public String name="Hello";         //任何情况皆可以访问    private String passwd="xiaoyang";  //private修饰的属性只能在类内部访问:隐藏信息,通过给外部提供接口进行调用    protected String sex="male";       //同包类/子孙类可以直接访问    public String getPasswd(){        return passwd;    }}//注意:接口中定义default方法,其实现类可以不用实现直接使用默认的方法即可,此时的接口的作用类似抽象类class TestAccess01 extends TestAccess implements defineInterface{    @Override    public void showSelf(){        System.out.println("实现类重写showName()方法.......");    }}//default在接口中的应用interface defineInterface{    default void show() {        System.out.println("接口默认show()方法.......");    }    default void showSelf(){        System.out.println("接口默认showSelf()方法.......");    }}

———————显示————————
public:Hello
protected:male
private:xiaoyang
子类protected:male
接口默认show()方法…….
实现类重写showName()方法…….

1 0
原创粉丝点击