2022.3.12
1.10
1.对象的生成和销毁方式 Java完全采用了动态内存分配方式(new)
2.对象生命周期。Java提供垃圾回收器机制,发现对象何时不再被使用,并继而销毁它,可以处理内存释放问题;提供更高层的保障,可以避免暗藏的内存泄露问题。
1.9
0.不知道解决某个问题的时候需要多少对象,存活多久,如何存储,创造多少空间存储对象。
1.不同容器提供了不同类型的接口和外部行为。
2.不同容器某些操作效率不同。
3.向上转型是安全的。向下转型是不安全的
4.参数化类型(泛型)
1.8
1.Java是单根继承结构,终极基类Object。使得垃圾回收机制容易得多,对于异常处理也很重要。
2022.03.11
1.7
1.传统的函数调用->前期绑定(非oop):编译器产生一个对具体函数名字的调用,运行时这个调用解析到将要被执行的代码的绝对地址。
后期绑定(oop):当向对象发送消息时,被调用的代码直到执行前才确定。编译器确保被调用方法的存在,并对调用参数和返回值类型进行检查。Java存在一小段代码,这段代码利用对象存储的信息计算方法体的地址。
2.多态
1.6
1.两种方法使基类和导出类产生差异:1.直接在导出类中添加新方法。有时,应该仔细考虑基类是否需要这种额外方法的可能性。 2.改变现有基类的方法的行为,称之为覆盖。直接在导出类中创建方法的新定义即可。
1.6.1
1.只覆盖基类的方法,具有完全相同的接口,成为纯粹替代,替代原则(is-a)。
2.新类型拥有旧类型接口,还包含其他方法(is-like-a)。
1.5
1.代码复用是oop最了不起的优点之一。使用现有的类合成新的类称为组合(has-a关系)。新类的对象通常被声明为private,使得新类的客户端程序员不能访问它。
2.在建立新类时,首先考虑组合。
1.4
1.将程序员分为类创建者和客户端程序员。前者开发数据类型,后者应用数据类型。
2.访问控制:1.让客户端程序员无法触及他们不应该触及的部分。 2.允许库设计者可以改变类内部的工作方式而不用担心会影响到客户端程序员。
3.Java三个关键词在类的内部设置边界,public,private,protected
public:表示任何人都可用;private:表示仅类的创建者和类型内部的方法可访问,其他人试图访问,则会得到编译错误;protected:与private作用相当,差别在于,继承的类可以访问protected成员,但不能访问private成员。
4.默认的访问权限:包访问权限,类可以访问同一个包中其他类的成员。
2022.03.10
1.3
1.当试图开发或理解一个程序时,最好的方法之一是把对象想象成是服务提供者
2.人们设计对象时所面临的一个问题是,将过多的功能塞在一个对象中。这时一个对象也许不够,可能需要更多的对象。良好的面向对象程序设计里,每个对象都可以很好的完成一项任务,但不试图做更多的事。
1.2
接口确定了某一对象所能发出的请求。
向某个对象发送请求,这个对象便知道这个请求的目的,然后执行相应的程序代码。
1.1
OOP面向对象程序设计
1.五大特性 1.万物皆对象。 2.程序是对象的集合,它们通过发送消息来告诉彼此要做的 3.每个对象都有自己的由其他对象构成的存储。 4.每个对象都拥有类型 5.某一个特定类型的对象都可以接收同样的消息
2.对象具有状态、行为、标识(内部数据、方法、内存中的地址*)
*注:可能是外存,比如说硬盘