本文由jiupima在论坛所发,CU技术文章整理,供大家参考学习,转载请注明出处,谢谢。
对象具有状态,行为,标识.对象的五个基本特性:
万物皆对象,抽取待求解问题的任何概念化构件,将其表示为程序中的对象
程序是对象的集合,他们通过发送消息来告知彼此所要做的
每个对象都有自己的由其他对象所构成的存储,创建包含所有对象的包的方式来创建新类型的对象
每个对象都拥有其类型
某一特定类型的所有对象都可以接收同样的消息
1。java还有个"缺省"的访问权限,如果你没用public、protected、private的话,那就是指它了。通常把它称为package访问权限。因为同属这个package的类可以访问这个package中其它类的"缺省"权限的成员,但是出了这个package,它们就都是private的了。
2。多态性,处理类系的时候,通常你不用把它当作某个具体的类型,只要把它当作基类对象就可以了,即把泛型的基类当作派生类来用。非oop的编译器的做法是前绑定,即编译器会产生那个名字的函数调用,而连接器负责将这个调用解析成须执行的代码的绝对地址。oop的编译器用了后绑定,即当你向某个对象送了一个消息后,不到运行时,系统不能确定到底调用哪段代码。java用存储在对象中的信息来计算方法的地址,因此每个对象的运行都会不同。后绑定是java的缺省行为,c++中必须用virtual声明。
3。abstract关键词声明类为抽象类,编译器会阻止任何人创建abstract类的对象,而只是把其派生类的对象上传给它。abstract也可以声明方法,表示这个类所派生的所有类都有这个方法,但是它的实现不在这里。abstract方法只能存在于abstract类中。
4。interface关键词是对abstract类的概念的深化,它不允许你实现任何方法,只作为接口使用.可以继承多个接口,java中无类多重继承。
5。c++支持的变量有自动、静态、寄存器和堆,java只支持堆变量,每次创建对象的时候都要用new来动态分配堆内存。
6。容器和迭代器:容器:c++标准模板类库stl = java标准类库的容器类,迭代器:将基于不同数据结构的容器抽象为一个简单线性序列的类。
7。java是单根继承体系,object作为最终基类使所有对象都具有某些基本操作。单根继承和系统通过reference操控对象,使垃圾回收器可以释放堆内存。
8。java容器只持有object对象,单根继承使它能持有任何对象上传只要把对象的reference直接放入即可,取对象时,必须知道它原有的类型,从容器中取出对象的reference然后强制转换为原因类型(下传:由基类到其派生类)。
9。参数化类型:能够根据需要由编译器自动指派类型的类,c++的模板template即参数化类型。java暂不支持
10。异常是一种能从错误发生的地方被抛出的对象,并被能解决这类问题的异常处理程序所捕获,异常肯定能得到处理,并且能够从错误状态下恢复。java的异常处理是从底层开始的,而且还不能不用,否则就不能编译通过。
11。java语音内置了多线程支持,线程被表示为对象,java还有一定的资源锁定功能,可以通过synchronized关键字锁定对象内存。
12。持久性:java可以通过对象的序列化或java数据对象来实现把对象从磁盘中存储和提取。
13。传统w/s:浏览器上送web服务器的数据由web服务器上的通用网关接口程序CGI处理,常用语言perl、python、C++等。
14。客户端编程:插件:可以为浏览器添加新的功能,甚至创造新的客户端编程语言。脚本语言:把客户端的源代码直接嵌入到html页面中,html页面显示的时候自动激活插件解释这些程序。常用脚本语言javascript、vbscript、tcl/tk等。java:可以通过applet和java web start进行客户端编,applet是一个只能运行在web浏览器里的小程序,applet是被编译过的代码,作为web页面的一部分自动下载,在被激活的时候开始运行。java web start分发在web浏览器外运行的独立程序。Activex操作上不受限制。
15。servlet和jsp是使人们转向使用java开发网站的主要原因。
阅读(1923) | 评论(1) | 转发(1) |