当前位置: 首页 > news >正文

广西贵港建设集团有限公司网站华强北商城官网入口

广西贵港建设集团有限公司网站,华强北商城官网入口,手机端关键词排名免费软件,自己做的旅游网站 介绍Java权限修饰符深度解析与最佳实践 一、权限修饰符总览 Java提供四种访问控制修饰符,按访问范围从宽到窄排序如下: 修饰符类内部同包类不同包子类全局范围public✔️✔️✔️✔️protected✔️✔️✔️❌默认(无)✔️✔️❌❌pr…

Java权限修饰符深度解析与最佳实践


一、权限修饰符总览

Java提供四种访问控制修饰符,按访问范围从宽到窄排序如下:

修饰符类内部同包类不同包子类全局范围
public✔️✔️✔️✔️
protected✔️✔️✔️
默认(无)✔️✔️
private✔️

二、各修饰符详解

1. public(全局可见)

​访问范围​​:所有类均可访问
​使用场景​​:

  • API接口方法
  • 工具类静态方法
  • 常量声明

​示例​​:

public class DataParser {public static final String DATE_FORMAT = "yyyy-MM-dd";public void parseData(String input) {// 核心解析逻辑}
}

 

2. protected(继承可见)

​访问范围​​:

  • 同包类
  • 不同包的子类(通过继承访问)

​使用场景​​:

  • 模板方法模式中的可扩展方法
  • 需要子类重写的核心方法

​示例​​:

public abstract class BaseDao {protected void validateEntity(Object entity) {// 公共校验逻辑}
}// 不同包的子类
public class UserDao extends BaseDao {@Overrideprotected void validateEntity(Object entity) {super.validateEntity(entity);// 扩展校验逻辑}
}

 

3. 默认/包级私有(Package-Private)

​访问范围​​:仅同包类可见
​使用场景​​:

  • 模块内部工具方法
  • 实现类之间协作方法
  • 不宜暴露的内部组件

​示例​​:

class DatabaseConfig {  // 默认修饰符类static final String DB_URL = "jdbc:mysql://localhost:3306/mydb";void loadDriver() {  // 默认修饰符方法// 驱动加载逻辑}
}

 

4. private(类内封装)

​访问范围​​:仅本类可见
​使用场景​​:

  • 内部实现细节
  • 辅助方法
  • 敏感数据字段

​示例​​:

public class PaymentService {private String apiKey = "SECRET_KEY";private boolean validateSignature(String sign) {// 签名校验逻辑}public void processPayment() {validateSignature("...");// 支付处理逻辑}
}

 

三、继承场景的特殊规则

1. 方法重写限制

  • 子类方法访问权限 ​​不能缩小​​(可等于或扩大)
  • 非法示例:
class Parent {protected void demo() {}
}class Child extends Parent {@Overridevoid demo() {}  // 编译错误:不能缩小为包级私有
}

 2. 构造函数访问控制

public class Singleton {private Singleton() {}  // 私有构造器public static Singleton getInstance() {return Holder.INSTANCE;}private static class Holder {static final Singleton INSTANCE = new Singleton();}
}

 

四、最佳实践指南

  1. ​最小化公开元素​
    优先使用最严格的访问级别(推荐顺序):
    private → 默认 → protected → public

  2. ​数据封装原则​

    • 字段声明为private(通过getter/setter访问)
    • 避免public修饰可变对象字段:
// 错误示例
public class Config {public static final Map<String, String> SETTINGS = new HashMap<>();
}// 正确示例
public class Config {private static final Map<String, String> SETTINGS = new HashMap<>();public static String getSetting(String key) {return Collections.unmodifiableMap(SETTINGS).get(key);}
}

​    3.接口方法规范​
      接口方法默认public abstract,即使不显式声明:

interface Logger {void log(String message);  // 实际为public abstract
}

http://www.dtcms.com/a/498119.html

相关文章:

  • win2008iis配置网站萧山建站
  • 潍坊360做网站怎么样做网站_接活
  • 企业对企业的电子商务网站有哪些河南广宇建设集团有限公司网站
  • 创意网站开发企业企业电器网站建设方案
  • 目前做汽配的网站有哪些网站引导页是什么意思
  • 苏州外贸网站建站wordpress样式丢失
  • 无锡 网站制作 大公司网站建设策划书范文六篇精选
  • 如何做自己的网站商城站外贸管理软件
  • 各大网站大全建视频网站
  • 壁纸网站设计制作专业做一个微信公众号大概要多少钱
  • 神马网站快速排名软件广州建设网站 公司
  • 江门网站建设开发wordpress 头像上传
  • 青岛做网站找哪家好网站运营招聘
  • 龙岗网站设计代理商企业网站管理系统 源码
  • 百度网站评分sun0769东莞阳光网
  • 成都网站设计开发公司国外永久免费crm系统
  • 做设计接单的网站响应式网站滑动
  • 网站首页效果图怎么做个体工商户可以备案哪些网站
  • 开一个二手车销售网站怎么做wordpress打卡签到领红包
  • 西安免费做网站潍坊企业网站模板
  • 乡镇医院网站建设网站开发自学网站
  • 温州专业网站推广网络公司排名榜
  • 没注册可以做网站吗手机+显示器自适应wordpress+主题
  • 网络推广网站建设方案手机网站抢拍是怎么做的
  • wordpress 图片调用代码搜索引擎优化学习
  • 网站建设外包费用创卫网站 建设 方案
  • 网站修改域名哪里有网站建站公司
  • 网站托管服务商网站建设时图片和文字
  • 共享经济网站建设策划书设计官网和推广的公司
  • 枣庄做网站建设找哪家wordpress有什么用