C/C++、Java、Go、Python总结对比14-public

系统 1589 0

java的类中,这3个关键词的用法有所区别,先看一个表格:

C/C++、Java、Go、Python总结对比14-public、protect和private使用2-java_第1张图片

private

大多数成员变量都是修饰符为private的,它们不希望被其他任何外部的类访问。只能被类内部的成员函数访问。

default

它是针对本包访问而设计的,任何处于本包下的类、接口、异常等,都可以相互访问,即使是父类没有用protected修饰的成员也可以。

protected

主要的作用就是用来保护子类的。它的含义在于子类可以用它修饰的成员,其他的不可以,它相当于传递给子类的一种继承的东西

public

这个就不用说了,任何地方都可以访问

下面上代码说明。

src下面packageone文件夹,Alpha.java

            
              package packageone;

public class Alpha {
    public void test()  //通过定义public成员函数来让实例访问不能直接对外
    {
        this.pub();
        this.pro();
        this.def();
        this.pri();
    }

    public void pub()  //定义public成员函数
    {
        System.out.println( "public");
    }

    protected void pro()  //定义protected成员函数
    {
        System.out.println( "protected");
    }

    void def()  //定义default成员函数
    {
        System.out.println( "default");
    }

    private void pri()  //定义private成员函数
    {
        System.out.println( "private");
    }
}

            
          

src下面packageone文件夹,Beta.java

            
              package packageone;

public class Beta {
    public void test()
    {
        Alpha alpha = new Alpha();
        alpha.pub();
        alpha.pro();
        alpha.def();
//        alpha.pri();  //错误,不能访问
    }
}

            
          

src下面packagetwo文件夹,AlphaSub.java

            
              package packagetwo;

import packageone.Alpha;

public class AlphaSub extends Alpha {
    public void test()
    {
        super.pub();
        super.pro();
//        super.def();  //错误,不能范文
//        super.pri();  //错误,不能范文
    }
}

            
          

src下面packagetwo文件夹,Gamma.java

            
              package packagetwo;

import packageone.Alpha;

public class Gamma {
    public void test()
    {
        Alpha alpha = new Alpha();
        alpha.pub();
//        alpha.pro();  //错误,不能访问
//        alpha.def();  //错误,不能访问
//        alpha.pri();  //错误,不能访问
    }
}

            
          

主函数Test.java

            
              import packageone.Alpha;

public class Test {
    public static void main(String[] args)
    {
        new Alpha().test();
    }
}

            
          

对比总结:

  1. private只能在类部被访问;public全局可访问;
  2. protected和default的区别在于default只能在当前包内被访问;

更多文章、技术交流、商务合作、联系博主

微信扫码或搜索:z360901061

微信扫一扫加我为好友

QQ号联系: 360901061

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描下面二维码支持博主2元、5元、10元、20元等您想捐的金额吧,狠狠点击下面给点支持吧,站长非常感激您!手机微信长按不能支付解决办法:请将微信支付二维码保存到相册,切换到微信,然后点击微信右上角扫一扫功能,选择支付二维码完成支付。

【本文对您有帮助就好】

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描上面二维码支持博主2元、5元、10元、自定义金额等您想捐的金额吧,站长会非常 感谢您的哦!!!

发表我的评论
最新评论 总共0条评论