1、OOP相较于面向过程,将数据放在第一位,之后再考虑操作数据的算法
2、封装也就是数据隐藏,对象中的数据称为实例字段,操作数据的过程称为方法。
3、实现封装的关键在于,绝对不能让类中的方法直接访问其他类的实例字段,程序只能通过对象的方法与对象数据进行交互。封装给对象赋予了“黑盒“特征。这是提高重用性和可靠性的关键。
4、对象状态的改变必须通过调用方法来实现。(如果不经过方法调用就可以改变对象状态,只能说明破坏了封装性)
5、类之间的常见关系:依赖(“uses-a”)、聚合(”has-a“)、继承(is-a)
依赖:如果一个类的方法使用或者操纵另一个类的对象,我们就说一个类依赖于另一个类。我们应该尽可能的减少相互依赖的类,即类A不知道B的存在,他就不会关心B的任何改变。软件工程上的术语就是金坑能减少类之间的耦合。
聚合:类 A的对象包含类B的对象。
继承:~~~~~
6、对象变量没有实际包含一个对象,只是引用一个对象。对象变量可以看作是类似于C++的对象指针。
所有的Java对象都存储在堆中。当一个对象包含另一个对象变量的时候,他只是包含着另一个堆对象的指针。
Java中,必须使用clone方法获得对象的完整副本。