• 用句柄操纵对象


    每种编程语言都有自己的数据处理方式。有些时候,程序员必须时刻留意准备处理的是什么类型。您曾利用 一些特殊语法直接操作过对象,或处理过一些间接表示的对象吗(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     }
  • 相关阅读:
    How to correctly handle ThreadLocal.get() returning null
    find_package()的查找*.cmake的顺序
    java SynchronousQueue
    cmake强烈推荐的是外部构建
    Golang学习内容
    百度云盘下载办法
    111
    logstash配置白名单决定去哪个index
    处理OSS上传失败一例
    用SQL语句查询zabbix的监控数据
  • 原文地址:https://www.cnblogs.com/borter/p/9438796.html
Copyright © 2020-2023  润新知