• Java基础——关于访问权限的一道例题


    一、回顾访问修饰符

    ==public:被它修饰的类,属性,方法,不仅可以跨类访问,而且可以跨包(package)访问

    ==private:可以修饰数据成员,构造方法,方法,不能修饰类,被它修饰的成员只能被本类自已访问,不能被子类访问

    ==protected:可以修饰数据成员,构造方法,方法,不能修饰类,能被本类,同包,或其子类成员访问(如果是子类,可以跨包)

    ==缺省:不加任何修饰符,只允许同一个包中进行访问

    二、代码实例

     1 package dog;
     2 
     3 public class Dog {
     4     // 公共的
     5     public void publicMethod() {
     6         System.out.println("publicMethod");
     7     }
     8 
     9     // 保护的
    10     protected void protectedMethod() { // 被声明为protected的方法,可以被子类继承
    11         System.out.println("protectedMethod");
    12     }
    13 
    14     // 默认的
    15     void defaultMethod() {
    16         System.out.println("defaultMethod");
    17     }
    18 
    19     // 私有的
    20     private void privateMethod() { // 这个方法只可以在类内部被调用
    21         System.out.println("privateMethod");
    22     }
    23 }
    1 class T {
    2     public static void main(String[] args) {
    3         Dog d = new Dog(); // 可以访问
    4         d.publicMethod(); // 可以访问
    5         d.protectedMethod(); // 可以访问
    6         d.defaultMethod(); // 可以访问
    7         // d.privateMethod(); //私有的方法,不能被在类外访问
    8     }
    9 }
     1 //在上例的基础上,演示跨包的情况
     2 package cat; //和dog 包不在一起
     3 
     4 import dog.Dog;
     5 
     6 public class Cat {
     7     void test() {
     8         Dog dog = new Dog();
     9 
    10         dog.publicMethod(); // 可以
    11         // dog.protectedMethod(); 不可以
    12         // dog.privateMethod(); 不可以
    13         // dog.defaultMethod(); 不可以
    14     }
    15 }
     1 //在前例的基础上,演示子类中的访问情况
     2 class NiceDog extends Dog {
     3     void test() {
     4         Dog dog = new Dog();
     5         dog.publicMethod(); // 可以
     6         protectedMethod(); // 被protected修饰的成员,可以被继承过来,并这样调用
     7         // dog.protectedMethod(); 不可以
     8         // dog.privateMethod(); 不可以
     9         // dog.defaultMethod(); 不可以
    10 
    11     }
    12 }

    个人学习笔记,针对本人在自学中遇到的问题。

  • 相关阅读:
    ElasticSearch安装中遇到的一些问题
    微信扫描二维码下载问题
    nginx截获客户端请求
    Nginx中的一些匹配顺序
    Redis-cli命令最新总结
    RabbitMQ服务安装配置
    Nginx服务状态监控
    使用Sqlserver更新锁防止数据脏读
    PHPStorm IDE 快捷键(MAC)
    MongoDB 安装
  • 原文地址:https://www.cnblogs.com/1693977889zz/p/7040029.html
Copyright © 2020-2023  润新知