熬之滴水穿石:JAVA的世界(3)

来源:互联网 发布:淘宝刷收藏软件 编辑:程序博客网 时间:2024/04/28 06:24
                               16--类型的运用
用JAVA编写代码首先想到的是怎么定义好类!类是对象的蓝图,一旦类定义好了那么对象的产生将是简单的事情。对象是有自己的状态和行为的,所谓状态其实就对象的属性,行为则是对象的方法。每一个对象都会有相同的方法,但可以不同的值表现为不同的行为。其实理解状态和行为最为简单的办法就是和我们生活的万事万物理解起来,说起来似乎很容易,真正理解起来其实还是有些差距!但是面向对象的设计者其实也是从万事万物中发现规律才形成我们面向对象设计的理论。
  
在JAVA的世界里变量之间都是值传递的,也就是说通过Copy的方式传递参数,这个值是变量所携带的值。我们在Delphi常常遇到一个函数要返回多个值的,我们可以在参数里定义变量即可同时方法也可以返回一个值。然而在java里通常可以根据方法返回类型,定义相关类型的数组来表示返回可以定义多个返回参数。还有一种方法就是用属性的Getter和Setter方法了。这两个方法可以让你执行get方法和set方法来获取或者设置返回参数的值。在我们一直强调这类封装,在我眼里其实关于类的封装就是从get和set方法开始的。类封的意图在我眼里其实就是隐藏实例变量隐藏数据。通常我们会设置属性(变量)的范围为private,将对应属性的方法设为public。通过getter和setter方法来控制存取,这种方法其实就是最为简单的封装了,这种封装保证了对变量不能进行实际操作,以保证维持安全性。当然在JAVA中实例变量是有一个隐藏的默认值的。当然实例变量是这样,而局部变量则没有默认值,这点是需要区分的。另外实例变量作用域是存在对象之中,局部变量作用域范围则是在方法中。

java中变量中的比较也是一件很有意思的事情,当然只要区分开来理解也是很简单。一种是JAVA的数据类型像int,float等类型,这种类型的比较则用==就可以,或者判断两个变量的值是否引用了同一个堆上的对象时也可以用==的方法。equals方法则用于两个对象是否相等时就用这个,像字符比较这是最好的方法。

初次用JAVA写的就是JAVABEAN,这个我会在相关的Servlet环节提起,此刻我想说的是,那个时候我用得最多的就是ArrayList,这是一个非常有特点的数据结构。它以数组的方式存储数据如果删除了其中某些数据后,它会自动缩小。ArrayList不是数组确实JAVA众多函数中的一个类,应该也是JAVA程序员使用频率最高的一个类。该类的方法很鲜明:add(object elem)是添加对象,与之相应的remove方法确有两种表现一个是remove(int index),remove(Object elem),一个以索引为主,一个以对象为主。这里还有一个关键的方法contains(Object elem),该方法如果能和对象参数匹配返回为"true"。相比于数组,ArrayList的优势还是无法超越,一般数组在创建时就必须确定大小,但对于ArrayList来说,你只需要创建该类型的对象就可以了,它不需要指定大小,因为它会随着添加,删除元素不断的自动调节大小。数组在存储对象时必须给定指定位置,如不然肯定会出现越界的问题,而用ArrayList则可以指定索引值来管理自己的大小。
在后面相关的环节,还会说说JAVA很有特色的数据结构.......
                                                 (未完待续..........)
原创粉丝点击