面向对象的基本问题: 如何把变动的事物与保持不变的事物区分开来.
重构即重写代码, 以使得它更可读, 更易理解, 并因此更具可维护性.
访问权限: public, protected, 包访问权限, private.
本地使用, 未命名包, 即默认包.
每个文件即编译单元, 后缀名.java, 编译之后, 后缀名.class.
类库package, public全部权限, 未命名包内权限.
Java包的命名规则全部使用小写字母, 包含中间的字也是如此.
package和import的目的是命名空间, 防止名称冲突.
package名称是创建者的反序Internet域名, 或以名字命名, 尽量避免重复.
package语句必须是文件中第一行非注释程序代码.
静态导入类可以直接使用方法.
调试功能在开发过程中是开启的, 在发布产品中是禁止的, 通过修改被导入的package实现.
JVN通过CLASSPATH找到编译过(.class)的文件.
类外获得访问权限的途径:
(1) public, 任何都可以访问.
(2) 不加访问限制词, 包内可以访问.
(3) 继承可以访问public和protected, 包内可以访问未加限制词, 包外不行.
(4) get, set方法访问private.
处于相同目录并没有给予包名, 即处于默认包中, 未加限定词, 给予该目前其类的访问权限.
类的访问权限: 包访问权限和public, 额外限制:
(1) 每个编译单元(文件)都只能有一个public类.
(2) public类的名称必须完全与含有该编译单元的文件名匹配, 包括大小写.
(3) 可以没有public类, 这样名称随意.
构造器设置为private, 则需要静态方法创建.