用句柄操纵对象

每种编程语言都有自己的数据处理方式。有些时候,程序员必须时刻留意准备处理的是什么类型。您曾利用 一些特殊语法直接操作过对象,或处理过一些间接表示的对象吗(C 或C++里的指针)? 所有这些在 Java 里都得到了简化,任何东西都可看作对象。因此,我们可采用一种统一的语法,任何地方均 可照搬不误。但要注意,尽管将一切都“看作”对象,但操纵的标识符实际是指向一个对象的“句柄” (Handle)。在其他 Java 参考书里,还可看到有的人将其称作一个“引用”,甚至一个“指针”。可将这一 情形想象成用遥控板(句柄)操纵电视机(对象)。只要握住这个遥控板,就相当于掌握了与电视机连接的 通道。但一旦需要“换频道”或者“关小声音”,我们实际操纵的是遥控板(句柄),再由遥控板自己操纵 电视机(对象)。如果要在房间里四处走走,并想保持对电视机的控制,那么手上拿着的是遥控板,而非电 视机。 此外,即使没有电视机,遥控板亦可独立存在。也就是说,只是由于拥有一个句柄,并不表示必须有一个对 象同它连接。所以如果想容纳一个词或句子,可创建一个 String句柄: String s; 但这里创建的只是句柄,并不是对象。若此时向s 发送一条消息,就会获得一个错误(运行期)。这是由于 s实际并未与任何东西连接(即“没有电视机”)。因此,一种更安全的做法是:创建一个句柄时,记住无 论如何都进行初始化: String s = "asdf"; 然而,这里采用的是一种特殊类型:字串可用加引号的文字初始化。通常,必须为对象使用一种更通用的初 始化类型。 

 1 package Com.TomTest;
 2 
 3 
 4 class TomTest_45 {
 5       public static void main(String args[]){
 6        String a[]={"door","apple","Applet","girl","boy"};
 7            for(int i=0;i<a.length-1;i++) {
 8                 for(int j=i+1;j<a.length;j++) {
 9                    if(a[j].compareTo(a[i])<0) {
10                        String temp=a[i];
11                        a[i]=a[j];
12                        a[j]=temp;
13                     }
14                 } 
15             }
16             for(int i=0;i<a.length;i++) {
17                System.out.print("  "+a[i]);
18             }
19         }
20     }
原文地址:https://www.cnblogs.com/borter/p/9438796.html