/*+
* 1、编程语言的产生起源与对机器的模仿
* 2、www.MindView.net <<c编程思想>> Think in C
*
*/
/*
* 什么是抽象过程
* 1、抽象类型:类型指的是:抽象的是什么
* 2、命令式语言:FORTRAN,BASIC,C是对汇编语言的抽象
* 3、每个对象就像是一台微型计算机:具有状态也有操作
* 4、面向对象程序设计的特性
* (1)、万物皆是对象
* (2)、程序是对象的集合:他们通过发送消息告知彼此需要做什么
* (3)、每个对象都有自己的由其他对象所构成的存储
* (4)、每个对象都有它的类型
* (5)、某一特定类型的所有对象都可以接收同样的消息:比如圆形对象可以接收几何形对象同等的消息
*/
/*
* 每个对象都有一个接口
* 1、类描述了具有相同数据和行为的对象的集合,所以类就是一个数据类型
* 2、Java允许程序员定义自己需要的数据类型来适应问题,即定义新的类,编程系统也会检查和照管新类
* 3、对象接口确定某一对象所能发送和接收的请求,
* Light it=new Light();
* it.on();
* 定义一个对象的引用it,然后调用new方法来创建该类型的新对象。然后向对象发送请求(调用请求接口(即方法)),对象就知道自己该做什么
* 4、UML:统一建模语言
*/
/*
* 每个对象都提供服务
* 1、程序是对象的集合,它通过对象之间的服务来完成工作。对象就是服务提供者,它将调用本身或其他对象的服务来完成目的。程序员就是根据需要确定
* 我们需要哪些对象。
* 2、对象的内聚性:
* 高内聚是软件设计的基本质量要求之一:即一个软件构建(一个对象,一个方法或一个对象库)各個方面組合的很好。
* 就是說:每一个对象由不必由太多动能,可以被其他对象复用。
*
*/
/*
* 被隐藏的具体实现
* 1、程序开发人员分为:1、类创建者(创建数据类型)和客户端程序员(应用数据类型)
* 类创建者的目标是构建类:这种类只向客户端程序员暴露必备的部分,而隐藏其他部分
* 2、访问控制:
* (1)让客户端程序员无法触及他们不该触及的那一部分
* (2)库设计者改变内部方式而不影响客户端程序员
* java通过三个关键字设定内部边界:
* (1):public:任何人都可使用
* (2):private:只有类的内部方法可以使用
* (3):protected:一般作用与private相当,不同的是继承类可以访问
* (4):默认:包访问权限:同包的类可以访问
*/
/*
* 复用具体实现
* 1、代码复用是面向对象程序设计最了不起的优点之一
* (1):复用方式
* 直接使用该类的对象
* 将一个类的对象置于一个新类中(组合:汽车拥有引擎):新类的成员一般为private
*/
/*
* 继承
* 1、Java编程语言的基本单位:class
* 2、继承的出现:有一个类和另一个类有相似的属性和功能。
* 导出类比基类具有更多的特性和功能。(导出类和基本具有相同的类型,圆形也是几何形)
* 3、两种方法使导出类和基类有差异性
* (1):在导出类中添加新方法
* (2):覆盖
* 4、“是一个”和“像是一个”的关系
* 替代原则
* (1):完全覆盖:即导出类完全重写基类的方法(是一个的关系)
* (2):扩展接口(添加新功能)(像是一个的关系)
*/
/*
* 伴随多态的可互换对象
* 1、在处理类型的层次结构时,经常想把一个对象不当成它的特定对象来处理,而是将它当作基类对象来对待:把自行车看做交通工具,把鹦鹉看成鸟
* 对象会根据自己的类型执行相应的方法
* 2、前期绑定和后期绑定
* 前期绑定:在编译时产生一个具体函数名字的调用:运行时调用执行代码的绝对地址
* 后期绑定:运行时才能确定代码的绝对地址,编译器确保调用方法的存在,并对参数和返回值进行检查。
* 后期绑定的实现:Java使用一小段特殊代码替代绝对地址的调用
* C++是使用virtual关键词实现的,而Java动态绑定是默认行为
*
* 3、将导出类当做基类处理:
* 向上转型的过程:“你是一个几何形,你有自己的draw()方法,去做吧”
*/
/*
* 单根继承结构
* 1、终极基类:object
* 2、单根继承结构保证所有对象都具备某些功能
* 3、对象在堆上创建
* 4、单根继承使垃圾回收机制变得简单
*/
/*
* 容器
* 1、C++中使用“集合”来表述,Java使用容器表述
* 2、Java具有满足不同需要的各种类型的容器:List(用于序列存储),Map(关联数组),Set(每个对象类型只持有一个)
* (1):不同类型的容器提供不同类型的接口和外部行为
* (2):不同类型对于某些操作具有不同的效率
* 3、参数化类型(容器中只存储object类型):向上转型是安全的,向下转型是不安全的
* 4、Javase5的重大变化之一:增加参数化类型:称为泛型:用<>表示
* List<Shape> list=new ArrayList<Shape>();
*
*/
/*
* 对象的创建和生命期
* 1、对象生存需要内存
* 2、Java采用了动态内存分配方式:创建对象使用new关键字
* 3、垃圾回收机制:发现对象不再被使用,就销毁他
*/
/*
* 异常处理
*/
/*
* 并发编程:
* 1、操作系统的并发是基于中断服务程序,分配时间片的手段
* 2、Java的并发是内置于语言的:Javase5添加了很多大额的库支持
*/
/*
* Java和Internet
* 1、客户端/服务器技术
* 服务器是提供服务的:服务器上有信息存储池
* 2、web是一台巨型服务器
* 3、客户端编程
* 早期的交互只由服务器提供:浏览器只负责解析翻译
* form表单提交是通过服务器提供的通用网关接口CGI(但CGI启动很慢,消耗网络带宽)
* 4、客户端编程如何实现:
* (1):插件
* (2)脚本语言
* (3)Java(通过applet和Java web start)
* (4).net和C#
* 5、服务器编程
* (1)返回一个编排好的页面
* (2)利用脚本语言解析原始数据
* (3)servlet+jsp
* 6<<企业Java编程思想>>thinking in enterprise java
*
*/
JAVA第一章 对象导论
猜你喜欢
转载自blog.csdn.net/Goblin_E/article/details/84851314
今日推荐
周排行