java类或接口如果不写修饰符

那么默认的修饰符是friendly嘛? 跟public权限差异在哪儿。 我看了下friendly修饰符书上的解释是 默认的访问控制成员可以被其所在包中的其他类访问。

1、public:public表明该数据成员、成员函数是对所有用户开放的,所有用户都可以直接进行调用

2、private:private表示私有,私有的意思就是除了class自己之外,任何人都不可以直接使用,
私有财产神圣不可侵犯嘛,即便是子女,朋友,都不可以使用。

3、protected:protected对于子女、朋友来说,就是public的,可以自由使用,没有任何限制,
而对于其他的外部class,protected就变成private。

  1. 默认为friendly 作用域 当前类 同一package 可以使用。

作用域 当前类 同包 子孙类 其他
public √ √ √ √
protected √ √ √ ×
friendly √ √ × ×
private √ × × ×
不写时默认为friendly.

好好去看下每个修饰符的权限就知道了 每个修饰符的访问权限都是不一样的

public是共有的,都可以访问

java访问权限修饰符(特殊情况除外)
作用域 当前类 同一package 子孙类 其他package
public √ √ √ √
protected √ √ √ ×
friendly √ √ × ×
private √ × × ×
不写时默认为friendly

默认应该是包内共享吧

接口默认就是public

对,都是同包访问,成员接口成员变量都是pubic

类是friendly,接口是public