26 为什么JAVA中的外部类不用private或者protected修饰

1 不用private修饰

原因:
private修饰的变量或者方法都只能在本类中可见。

假设private可以修饰类,也就是说任何类都无法再访问到这个类。

不就相当于,在一个包里面,只有一个类,那个类是(default)的。

所以,没有必要再去用一个private修饰符。

2 不用protected修饰符

protected修饰的类或者方法只能在本包或者子类中可以访问。

假设有一个不同包的子类要访问父类中的某个protected修饰的变量。

第一步是先要把这个类导入进来。

假设有一个类是可以用protected修饰的。

那我们第一步导入类的动作就有问题了:

如果可以导入。那protected修饰的类就变成不同包的类可以访问了。

如果不能导入。那我子类又怎么去访问呢?那和用(default) 又有啥区别

有人说,你傻啊,可以导入的时候判断一下啊。是子类就可以导入,不是子类就不能导入。

但是我们知道,java编译器执行的时候,第一步是去执行 import语句。

所以,这就是为啥不能用protected去修饰的原因。

除非,java有一天支持导入包的概念,但是现在没有。最多就是导入包下面的所有类。
例如 import com.csdn.util.*

注意

(default)表示啥修饰也不写,并不是 default class A,而是 class A

  • 4
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: protectedprivateJava的访问修饰符。 private表示私有的,只能在当前类访问,其他类无法访问。 protected表示受保护的,只能在当前类和其子类访问,其他类无法访问。 ### 回答2: Javaprotectedprivate都是访问修饰符,用于控制类成员(字段和方法)的可见性。 private是最严格的访问修饰符,只有在当前类可见。它声明的成员只能在声明的类访问,其他类无法直接访问。private修饰的字段可以通过提供公共的getter和setter方法来被外部类间接地访问和修改。通过使用private,可以确保数据的封装性,防止外部类对内部实现的直接访问,提高了代码的安全性和可维护性。 protected的可见性比private略宽松。protected修饰的成员在本包可见,同时也可被子类访问。这样可以确保在继承关系,子类可以对父类的成员进行访问和操作,实现了继承的共享性。与private不同,protected修饰的字段允许直接在子类访问和修改,不需要提供额外的getter和setter方法。 总结: - private:只在当前类可见,外部类无法直接访问。 - protected:在本包和子类可见,可以在子类直接访问。 选择使用privateprotected要根据具体的需求和设计考虑。一般来说,应尽量使用private来保护成员的封装性,只在有必要的情况下使用protected来实现继承的共享性。 ### 回答3: 在Javaprotectedprivate是两种访问修饰符,用于限制类的成员的访问范围。 private是一种较为严格的访问修饰符,用于修饰类的成员(变量、方法或构造函数)。使用private修饰的成员对于类的外部是不可见的,只能在当前类的内部被访问和使用。这种访问权限的限制通常用于封装类的内部细节,保护数据安全性。在private修饰的成员只能使用类的内部来访问,不能通过类的对象来访问。 protected是一种等限制的访问修饰符,也用于修饰类的成员。使用protected修饰的成员可以在同一包内的其他类被访问,也可以在不同包的子类被访问。这种访问权限通常用于继承关系的成员的访问,可以在继承树的子类进行访问和使用。与private修饰相比,protected修饰的成员对于外部类具有一定的可见性。 总结来说,private修饰的成员只能在当前类的内部访问,protected修饰的成员可以在同一包内的其他类和不同包的子类访问。这两种访问修饰符用于控制类的成员的可见性,确保程序的安全性和封装性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值