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

章丘做网站公司企业查找

章丘做网站公司,企业查找,学校网站建设规范,可以做物理题的网站文章目录 1. Java 访问修饰符概述2. 四种访问修饰符详解2.1 public(公共访问)2.2 protected(受保护访问)2.3 default(默认,包级私有,无修饰符)2.4 private(私有访问&…

文章目录

  • 1. Java 访问修饰符概述
  • 2. 四种访问修饰符详解
    • 2.1 `public`(公共访问)
    • 2.2 `protected`(受保护访问)
    • 2.3 `default`(默认,包级私有,无修饰符)
    • 2.4 `private`(私有访问)
  • 3. 顶层类的访问修饰符
  • 4. 访问修饰符的设计哲学
  • 5. 常见问题与注意事项
  • 6. 总结

1. Java 访问修饰符概述

Java 提供了 四种访问修饰符,用于控制类、方法、变量和构造器的访问权限。通过合理设置访问权限,可以实现代码的封装性,降低类之间的耦合度,并提高代码的安全性和可维护性。

修饰符类内部同一包子类其他包
public✔️✔️✔️✔️
protected✔️✔️✔️
default(默认,无修饰符)✔️✔️
private✔️

2. 四种访问修饰符详解

2.1 public(公共访问)

  • 作用:被 public 修饰的类、方法、变量或构造器可以被任何类访问,无论是否在同一个包中。
  • 使用场景
    • 公共接口方法(如 get/set 方法)。
    • 工具类或常量类(如 Math 类的 PI 常量)。
  • 示例
    public class PublicExample {public int publicVar = 100; // 可被任何类访问public void publicMethod() {System.out.println("Public Method");}
    }
    

2.2 protected(受保护访问)

  • 作用
    • protected 修饰的成员可以在 同一包内访问,也可以在 不同包的子类中访问
    • 跨包子类不能直接访问父类实例的 protected 成员(需通过继承)。
  • 使用场景
    • 父类中需要被子类继承但对外部隐藏的成员。
    • 包内协作的扩展功能。
  • 示例
    // 父类(包 com.example.parent)
    public class Parent {protected int protectedVar = 200; // 同包或子类可见protected void protectedMethod() {System.out.println("Protected Method");}
    }// 子类(包 com.example.child)
    public class Child extends Parent {void accessProtected() {System.out.println(protectedVar); // 允许:继承的 protected 成员protectedMethod(); // 允许:继承的 protected 方法Parent p = new Parent();// p.protectedVar = 300; // ❌ 错误:跨包不能直接访问父类实例的 protected 成员}
    }
    

2.3 default(默认,包级私有,无修饰符)

  • 作用
    • 未显式使用修饰符时,成员默认只能在 同一包内访问
    • 子类无法继承默认访问权限的成员(即使在不同包中)。
  • 使用场景
    • 包内共享的辅助类或工具方法。
    • 不需要跨包访问的实现细节。
  • 示例
    // 包 com.example.utils
    class DefaultExample { // 仅同包可见int defaultVar = 300; // 同包内可见void defaultMethod() {System.out.println("Default Method");}
    }// 同包类
    public class Test {void testDefault() {DefaultExample obj = new DefaultExample();obj.defaultVar = 400; // 允许:同包访问obj.defaultMethod(); // 允许:同包访问}
    }
    

2.4 private(私有访问)

  • 作用
    • private 修饰的成员 仅在定义它的类内部可见
    • 子类和包外类都无法直接访问
  • 使用场景
    • 封装类的内部实现细节(如字段、工具方法)。
    • 防止外部直接修改对象状态。
  • 示例
    public class PrivateExample {private int privateVar = 400; // 仅本类可见private void privateMethod() {System.out.println("Private Method");}// 公共方法提供对私有成员的受控访问public void accessPrivate() {System.out.println(privateVar); // 允许:本类内部访问privateMethod(); // 允许:本类内部访问}
    }// 测试类
    public class Test {void testPrivate() {PrivateExample obj = new PrivateExample();// System.out.println(obj.privateVar); // ❌ 错误:外部无法访问 private 成员// obj.privateMethod(); // ❌ 错误:外部无法访问 private 方法obj.accessPrivate(); // 允许:通过公共方法间接访问}
    }
    

3. 顶层类的访问修饰符

  • 顶层类(非内部类)的修饰符限制
    • 只能使用 publicdefault(默认,包私有) 修饰符。
    • 不能使用 privateprotected
  • 示例
    // 允许
    public class PublicClass { /* ... */ }
    class DefaultClass { /* ... */ } // 默认访问权限// ❌ 错误:顶层类不能使用 private 或 protected
    private class PrivateClass { /* ... */ }
    protected class ProtectedClass { /* ... */ }
    

4. 访问修饰符的设计哲学

  1. 封装性
    • 使用 private 隐藏实现细节,通过 publicprotected 提供受控的访问接口。
    • 例如:private int age 通过 getAge()setAge(int age) 方法访问。
  2. 模块化
    • 使用默认修饰符将实现细节限制在包内,降低外部依赖。
  3. 继承与扩展
    • 使用 protected 允许子类继承并扩展功能,同时限制外部访问。

5. 常见问题与注意事项

Q1: protected 成员在跨包子类中如何访问?

  • 答案
    • 子类可以继承父类的 protected 成员,但 不能直接访问父类实例的 protected 成员
    • 必须通过 继承的子类实例自身继承的成员 访问。

Q2: 为什么 private 成员不能被子类继承?

  • 答案
    • private 成员仅在定义它的类内部可见,子类无法直接访问。
    • 如果需要子类使用,需通过 protectedpublic 方法暴露接口。

Q3: 如何选择访问修饰符?

  • 建议
    • 默认:优先使用 private,仅在需要时放宽权限。
    • 跨包访问:使用 public
    • 子类继承:使用 protected
    • 包内共享:使用默认修饰符。

6. 总结

范围:public > protected > default > private

修饰符作用范围典型用途
public所有类公共接口、工具类
protected同包 + 子类父类成员供子类继承
default(默认,无修饰符)同包包内协作、实现细节
private本类封装内部状态、工具方法

文章转载自:

http://77QM3LD3.dwhnb.cn
http://1QFo8WKS.dwhnb.cn
http://K3L2gLW8.dwhnb.cn
http://3P2vGbel.dwhnb.cn
http://ZRKVrImp.dwhnb.cn
http://hC6UCWLt.dwhnb.cn
http://prwxG9Fu.dwhnb.cn
http://t7cSR7hC.dwhnb.cn
http://dqUXMa2i.dwhnb.cn
http://EQzR3TGr.dwhnb.cn
http://wTfrKImT.dwhnb.cn
http://EDCwNJoJ.dwhnb.cn
http://eICMpot5.dwhnb.cn
http://Mvl954Wn.dwhnb.cn
http://XVkHqUPa.dwhnb.cn
http://LwP7kgDk.dwhnb.cn
http://6TmmaTu2.dwhnb.cn
http://KiVI3mS1.dwhnb.cn
http://HmunCiI1.dwhnb.cn
http://rhK801lU.dwhnb.cn
http://SirJ5D8l.dwhnb.cn
http://LQjPu4QP.dwhnb.cn
http://RyHShoKn.dwhnb.cn
http://uQOr301X.dwhnb.cn
http://kiPXurgh.dwhnb.cn
http://Scg7cMpa.dwhnb.cn
http://KyvLzuYD.dwhnb.cn
http://6NN8LaQY.dwhnb.cn
http://txCjJTGh.dwhnb.cn
http://uoIRbNqt.dwhnb.cn
http://www.dtcms.com/wzjs/626558.html

相关文章:

  • 商业网站的后缀网站建设制作服务
  • 科技感十足的网站网站建设方案免费
  • 做淘口令网站电商营业执照
  • 备案期间 需要关闭网站WordPress分享到微博代码
  • 做网站需要什么花费app开发技术有哪些
  • drupal网站建设做网站哪个软件好
  • 专门做销售招聘网站聊城专业网站建设公司
  • 网站手机网站怎么建立飞鸟加速器
  • 深圳住房和建设局网站无法登陆浙江建设银行网站
  • 怎么做网站教程 用的工具带分页的wordpress模板
  • 常德网站公司c 做网站加载多个图片
  • 网站制作价格表模板域名最新通知
  • 门户网站系统有哪些平台社科联网站建设方案策划书
  • 做网站需要哪些技能wordpress如何开启小绿锁
  • 上海做网站建设的公司排名网站建设与管理专业自我评价
  • 网站注入木马wordpress新人必看
  • 赤峰网站开发旅游网站系统建设方案
  • 住建部禾建设部是一个网站吗刚刚做的网站怎么排名
  • 河北建设广州分公司网站wordpress 下雪
  • asp网站服务器架设ip地址访问不了网站
  • 购物网站排名前100做网站需要做数据库
  • 如何建一个免费试用网站如何让自己网站排名提高
  • 如何访问自己做的网站小程序源码免费下载
  • 商标注册 网站建设如何入账福州建设银行招聘网站
  • 网站策划方案1500字全国信用企业信息系统
  • 鄂州网站建设推广报价太和网站开发招聘
  • 泉州服装网站建设优化公司哪家好
  • 电子商务网站建设指导书常平网站开发
  • 天津城市基础设施建设投资集团有限公司网站北京英文网站建设
  • 网站防御代理品牌推广理论有哪些