类的访问修饰符有哪些?public、private和protected

访问修饰符用于控制类成员的可访问范围,主要分为 public、private 和 protected。public 允许任何地方访问,适用于对外暴露的方法或属性;private 仅允许在定义它的类内部访问,常用于保护数据并配合 getter/setter 使用;protected 允许同一包内访问及不同包中的子类访问,适合希望子类继承但不对外公开的成员。合理使用这三种修饰符有助于提高代码封装性和安全性。

类的访问修饰符有哪些?public、private和protected

类的访问修饰符主要用来控制类、方法、属性等成员在不同范围内的可访问性。常见的访问修饰符有 publicprivateprotected,它们分别对应不同的访问权限。

类的访问修饰符有哪些?public、private和protected

public:公开访问

public

是最宽松的访问级别,表示该成员可以在任何地方被访问,不受限制。

类的访问修饰符有哪些?public、private和protected适合用在对外暴露的方法或属性上,比如接口方法、工具类中的公共函数。例如:

public class User {    public String name;    public void sayHello() {        System.out.println("Hello, " + name);    }}

在这个例子中,

name

sayHello()

都可以被外部直接调用。

注意:虽然方便,但不要随便把所有内容都设为 public,这样会破坏封装性。

private:私有访问

private

表示只能在定义它的类内部访问,外部无法直接访问。

常用于保护数据安全,防止外部随意修改对象的状态。通常配合 getter/setter 使用。

例如:

public class User {    private String name;    public String getName() {        return name;    }    public void setName(String name) {        this.name = name;    }}

这样做的好处是可以通过 setter 控制赋值逻辑,比如加上校验:

public void setName(String name) {    if (name == null || name.isEmpty()) {        throw new IllegalArgumentException("Name can't be empty");    }    this.name = name;}

protected:受保护访问

protected

的访问权限介于 public 和 private 之间,允许以下几种情况访问:

同一个包(package)中的其他类不同包中的子类(即使子类不在同一个包里)

常见使用场景包括:

定义一些只希望子类继承和使用的方法或字段构造器设为 protected,用于实现工厂模式等设计模式

举个例子:

public class Animal {    protected void makeSound() {        System.out.println("Some sound");    }}public class Dog extends Animal {    public void bark() {        makeSound(); // 可以访问父类的 protected 方法    }}

但如果在另一个不相关的类中尝试访问

makeSound()

,就会失败。

小结一下常见用法建议:

数据字段尽量设为

private

,通过 getter/setter 暴露访问对外提供的功能方法可以设为

public

如果想让子类能访问但不想外部直接访问,就用

protected

基本上就这些了,理解清楚每个修饰符的作用范围,在实际开发中合理使用,代码结构会更清晰也更安全。

以上就是类的访问修饰符有哪些?public、private和protected的详细内容,更多请关注创想鸟其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/1468951.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2025年12月18日 17:47:32
下一篇 2025年12月18日 17:47:41

相关推荐

发表回复

登录后才能评论
关注微信