java编程思想1-对象导论

oop引入

	1. 计算机革命起源于机器,编程语言的产生始于对机器的模仿。面向对象程序设计(oop)就是以计算机为表达媒体的大趋势中的组成部分
	2. oop允许根据问题来描述问题,而不是根据运行解决方案的计算机来描述问题。oop其实是一种语言抽象,这种思想实质是程序可以通过添加新类型的对象使自身适合某个特定问题
	3. 面向对象五个基本特性:
	    a. 万物皆为对象:将对象视为变量,可以存储数据,还可以在自身上执行操作,可以从抽取待解决问题的概念化构件视为程序中对象
	    b. 程序是对象的集合,通过消息来告知彼此要做的事
	    c. 每个对象都有自己的由其他对象所构成的存储:可以通过创建包含现有对象的包的方式来创建新类型的对象
	    d. 每个对象都拥有其类型:每个对象都是某个类的一个实例
	    e. 某一特定类型的所有对象都可以接收同样的消息
	4. 每个对象都属于定义了特性和行为的某个特定的类,类是具有相同特性和行为的对象集合

接口引入

	1. 接口确定了某一特定对象所能发出的请求

对象引入

	1. 将对象想象成服务提供者,这样有助于提高对象内聚性。高内聚是指各方面都组合的很好,不要将过多的功能在放在一个对象里
	2. 访问控制的存在原因:
	     a.  只向客户端程序员暴露必须的部分 ,隐藏其他部分。避免其他人员做破坏
	     b. 允许库设计者可以该表内部的工作方式而 不用担心影响到客户端程序员,接口和实现可以清晰的分离并得以保护
	3. public表示其元素对任何人都可用;private表示除类型创建者和类型的内部方法外任何人都不能访问的元素protected 表示除类型创建者和类型的内部方法以及继承的类外任何人都不能访问的元素;java默认的包访问权限可以访问在同一个包中的其他类的成员

继承引入

	1. 一个基类型可能包含所有导出类型所共享的特性和行为,然后从基类型导出其他类型进行拓展,通过继承实现
	2. 基类和导出类具有相同的基础接口,导出类与基类不仅拥有相同类型,而且拥有相同行为,并且导出类还可以增加自己的新方法,也可以改变现有基类的方法行为,称为“覆盖”

多态引入

	1. 面向对象程序设计编译器不可能产生传统意义的函数调用。非面向对象编程的编译器产生的函数调用会引起前期绑定,编译器将会产生对一个具体函数名字的调用,运行时将这个调用解析到将要被政治性的代码的绝对地址。而在面向对象程序设计中,到程序运行时才能够确定代码的地址,这个采用的是后期绑定的概念。java使用特殊的代码来替代绝对地址的调用,代码使用在对象中存储的信息来计算方法体的地址。
	2. 面向对象程序设计确保被调用方法的存在,并对调用参数和返回值执行类型检查

单根继承引入

	1. 保证所有对象都具备某些功能,使垃圾回收器的实现变得容易,因为可以确定所有对象类型信息,使编程更灵活

参数化类型引入

	1. 参数化类型就是一个编译器可以自动定制作用于特定类型上的类,这个称为泛型

并发引入

	1. 有时把问题切分成多个可独立运行的部分,从而提高程序的响应能力,这些彼此独立运行部分称为线程
	2. 并发有隐患就是共享资源问题 ,资源可以在使用期间被锁定,完成后 释放资源锁,使其他任务可以使用这项资源
	3. 进程是资源分配的最小单位 ,线程是cpu调度的最小单位。一个进程可以包含多个线程

对象的创建和生命期引入

	1. 如何知道何时销毁对象:
	   a. 将对象置于堆栈或静态存储区域内实现,这样必须在编写程序时知道对象确切数量、生命周期和类型
	   b. 在堆的内存池中动态地创建对象,对象信息只有运行时才能知道,因为存储空间是在运行 时动态管理的 ,所以需要大量的时间在堆中分配存储空间,这可能远远大于在堆栈中创建存储空间的时间,堆栈中创建和释放存储空间通常需要一套哦汇编指令即可,对应将栈顶指针向下或向上移动 
	   c. java采用动态内存分配 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值