将类的某些信息隐藏在类内部,不允许外部程序直接访问,而是通过该类提供的方法来实现对隐藏信息的操作和访问
将不需要对外提供的内容都隐藏起来。 把属性隐藏,提供公共方法对其访问。
便于使用者正确使用系统,防止错误修改属性 有助于系统之间的松耦合,提高系统独立性 提高软件的可重用性 降低了构建大型系统的风险
包名由小写字母组成,不能以圆点开头或结尾
包名之前最好加上唯一的前缀,通常使用组织倒置的网络域名
包名后续部分依不同机构内部的规范不同而不同
作用域**修饰符** | 同一个类中 | 同一个包中 | 子类中 | 任何地方 |
---|---|---|---|---|
private | 可以 | 不可以 | 不可以 | 不可以 |
默认修饰符 | 可以 | 可以 | 不可以 | 不可以 |
protected | 可以 | 可以 | 可以 | 不可以 |
public | 可以 | 可以 | 可以 | 可以 |
静态变量,可以直接通过类名访问
静态方法,可以直接通过类名访问
静态代码块,当Java虚拟机加载类时,就会执行该代码块
JVM加载类时,加载静态代码块 如果有多个静态块,按顺序加载 每个静态代码块只会被执行一次
被static修饰的变量 在内存中只有一个拷贝 类内部,可在任何方法内直接访问静态变量 其他类中,可以直接通过类名访问
没有被static修饰的变量 每创建一个实例,就会为实例变量分配一次内存,实例变量可以在内存中有多个拷贝,互不影响
静态方法中不能使用this和super 不能直接访问所属类的实例变量和实例方法 可直接访问类的静态变量和静态方法
可直接访问所属类的静态变量、静态方法、实例变量和实例方法
系统默认调用父类的无参构造方法
执行父类相应构造方法,而不执行父类无参构造方法