This Domain(Admin5.com) is for Sale:

Java 程序设计之“对象”篇

时间:2007-12-27  来源:不详  作者:林子

无论是通过对象----sf.incr()还是直接通过class---staticfun,incr ( )调用都是一样的 。

dedecms.com

Java相对C/C 的一些特性:

本文来自织梦

Java和C 都是混合型程序语言(hybird language),且Java奠基与C 之上, 织梦内容管理系统

但Java在OOP上却更“纯粹”一些,C 为了相容与C,包含了许多不适合出现在C 中的特性,这使得C 在某些方面显得过于复杂。 内容来自dedecms

1.数组(array): 织梦内容管理系统

在C/C 中,数组其实就是一快内存,假如在程序中访问了数组区块之外的地域或者在初始化之前便使用,会导致许多错误的发生。与C/C 不同的是,Java更注重安全性,它保证数组一定会被初始化(当产生references的数组时,其中每个references皆会被设定为null这一非凡值,Java将其视为“不指向任何对象”。在使用任何reference前,你必须先将某个对象指派给它),并使每个数组额外多出一点空间,并在执行时期对对数组索引值进行检查,从而使程序员无法超越范围。

内容来自dedecms

2.生存空间(Scoping):

dedecms.com

C/C 具备将较大的生存空间中的变量遮蔽起来的能力:

dedecms.com

例如: 织梦内容管理系统

{ 

   int x = 1; 

   { 

   int x = 2; 

   } 

  } 
本文来自织梦

即使上面这段程序在C/C 中合法,在Java总不能这样做,编译器会认为X已经被定义过了,Java认为这样轻易导致对程序的误解和混淆。在C 中,用完对象后,必须将其摧毁,否则其可能滋生臭虫,可什么时候才是最佳时机呢?围绕在变量寿命上的种种疑问,Java提供了解决方案,Java中有一种所谓的(垃圾回收器)garbage collector,机制,它会逐一检视所有通过new产生的对象,当不在有任何reference指向它们的时,将释放这些对象的内存,使程序员不必操心内存回收的问题,因为所有的对象,在你不需要他们的时候,将自动消失。 织梦内容管理系统

3.名称的可视性(Name visibility):

copyright dedecms

所有程序语言都存在名称治理的问题,如何区分相同名称的模块呢?C里头这个问题格外严重,为了避免名称冲突的问题,C classes将函数包装于内,使其他classes内的同名函数隔离,不过由于全局数据和全局函数(global function)的存在,还是有可能发生命名的冲突。于是,C 中引入"命名空间(namesapces)"的概念来解决了这一问题。

dedecms.com

为了解决这一问题,Java采用和Internet域名相似的指定词。事实上, Java的设计者希望你将Internet域名反写过来。在Java1.0和1.1中,域名最末的com. edu. org. net等等,按照惯例都应该大写,在Java2时,发现了一些问题,就又变回了小写。

本文来自织梦

例如:com.bruceeckel.utility.foibles便置于com/bruceeckel/utility/foibles

织梦内容管理系统

这样使得每个package都成为一个独一无二的命名空间。每个class也都得到了一个独一无二的识别名称。 本文来自织梦

看完这篇,您有何感觉呢?

文章评论

共有位Admini5网友发表了评论 查看完整内容

24小时热门信息