zoukankan      html  css  js  c++  java
  • [04] 包和访问权限修饰符


    1、包

    在某个类中的最上方,我们总是可以看到以 package 关键字开头的一行代码,这行代码表示了当前类的位置,我们称之为包。
    package com.learn.pay.service; 

    包实际上是:
    • 物理上是文件夹
    • 逻辑上是有相互关系的类的集合

    物理上是文件夹,是说假如你的包名是 “com.learn.java.Person”,那么实际上Person这个java文件在项目文件夹下的 “com / learn / java /” 文件夹中。

    而逻辑上相关联的类的集合,这个并不是强制性的,而是一种约定俗成,比如把支付相关功能的类放在一个包下,消息发送功能的类放在另一个包下,便于归类和使用。就像你家中各类衣物小到袜子大到铺盖卷儿如果全部揉了丢一块,等你想用的时候去找,就发现麻烦大了。

    那么包的主要作用是:
    • 避免类重名
    • 控制访问权限

    就和我们使用windows时,在某个文件夹内不能出现两个同名文件类似,不同的包也可以防止类名的重复,也就便于不同程序员之间工作,即便出现同名类也不影响。如果我需要引用的那个类和我包中的类重名怎么办?答案是带上包名,使用类似 “com.learn.java.Person” 来表示一个Person。

    而当我们在某个类中要使用到其他位置的类时,我们需要使用 import 关键字进行引用,而引用不是随意的,就像你可以选择你自己是否去公园,能不能进去就是另一回事了(比如没到开放时间,或者发生自然事故等等)。
     
    你要引用其他类,能否成功引用关键在于引用类的是否给你权限,也就是所谓的权限修饰符来控制(默认类是public权限,即没有限制随便引用)。

    2、访问权限修饰符

    我们在类,以及方法的定义时,都会使用到权限访问修饰符,对类来说,只有两种,对属性和方法来说,有四种:
    权限访问修饰符定义权限针对范围
    public    公共权限    可以被任意类访问属性、方法、类
    protected    受保护的权限同包类可以访问,或者非同包的该类子类可访问属性、方法
    default(即默认不写)同包权限只能被同包的类访问属性、方法、类
    private    私有权限    只能在本类中访问使用    属性、方法
    • 类:public、default
    • 属性、方法:public、protected、default、private

    权限修饰符的使用位置为:
    //对类来说
    【访问权限修饰符】【修饰符】class 类名 {
      类体
    }
    
    //对属性来说
    【访问权限修饰符】【修饰符】数据类型 属性名【=初值】;
    
    //对方法来说
    【访问权限修饰符】【修饰符】返回值数据类型 方法名(形式参数列表) {
      执行语句;
      return 返回值;
    }


  • 相关阅读:
    golang模拟动态高优先权优先调度算法
    【2019腾讯暑期实习生正式批笔试1,2】
    golang优先队列
    git常见操作
    小L的试卷
    Unable to connect to the Redgate Client Service. Sql Prompt 报错不能用解决
    未能加载文件或程序集“Microsoft.VisualStudio.Enterprise.AspNetHelper, Version=15.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a”或它的某一个依赖项。系统找不到指定的文件。
    LumiSoft 邮件操作删除(无法删除解决方法)
    .net MVC 项目中 上传或者处理进度获取方案
    C# mvc Request 请求过长报404错误的解决思路分析
  • 原文地址:https://www.cnblogs.com/deng-cc/p/7459371.html
Copyright © 2011-2022 走看看