<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    隨筆 - 20  文章 - 57  trackbacks - 0
    <2025年5月>
    27282930123
    45678910
    11121314151617
    18192021222324
    25262728293031
    1234567

    常用鏈接

    留言簿(2)

    隨筆分類

    隨筆檔案

    文章分類

    文章檔案

    51CTO

    搜索

    •  

    最新評論

    閱讀排行榜

    評論排行榜


    ======================================================================================

    這僅僅是一個很簡單的醫院掛號系統,雖然涉及到一些C/S架構思想,但并沒有按照C/S架構去實現

    還請大家見諒!!!

    ======================================================================================



    **************************************************************************************

    首先,新建一些輔助的類。
           比如:Patients類,用于存放掛號的病人;Init類,用于預先存儲一些病人,這樣就可以方
    便的測試Doctor類;還有一個Server類,相當于一個服務器。

    **************************************************************************************


    Patients類


    package Queue;
            /**

                    定義一個Patients類,這個類從寫了toString方法,可以方便的進行輸出!

            */


    public class Patients {
       
       
        private String name;
        private String id;
       
       
        public String getName() {
            return name;
        }
        public void setName(String name) {
            this.name = name;
        }
        public String getId() {
            return id;
        }
        public void setId(String id) {
            this.id = id;
        }
        //這里從寫了toString方法
        public String toString(){
            return "病人的ID是: " + this.id + " \n\n病人的姓名是: " + this.name;
        }
    }



    Init類:

    package Queue;

    import java.util.HashMap;
    import java.util.LinkedList;
    import java.util.Map;
    import java.util.Queue;


            /**
             *
             * @author toveping
             * 向一個隊列中加入一些病人,對醫生的客戶端進行測試!!!
             *
             *      
             */
    public class Init {
        public Map init(String no){
            Map<String, LinkedList<Patients>> queueSystem = new HashMap<String, LinkedList<Patients>>();
            LinkedList<Patients> patQueue = new LinkedList<Patients>();   
            for(int i =0;i<20;i++){
                Patients p =  new Patients();
                p.setId(i + "");
                p.setName("A" + i);
                patQueue.add(p);
            }
            queueSystem.put(no, patQueue);
            return queueSystem;
        }
    }



    Server類:


    package Queue;

            /**

                    定義一個Server類相當于服務器,掛號客戶端增加一個病人的話,相應的存儲在這里,可以供Doctor調用!!!

            */

    import java.util.HashMap;
    import java.util.LinkedList;
    import java.util.Map;
    import java.util.Queue;

    public class Server {
       
       
        //這是病人的隊列
        Queue<Patients> patQueue = new LinkedList<Patients>();
        //String 是醫生的代號 ;Queue 是病人的隊列
        Map<String, Queue> queueSystem = new HashMap<String, Queue>();
       
       
        public int serverAdd(String no){
            Map<String, LinkedList<Patients>> queueSystem = new HashMap<String, LinkedList<Patients>>();
            LinkedList<Patients> patQueue = new LinkedList<Patients>();   
            Patients p = new Patients();
            p.setId(patQueue.size()+"");
            patQueue.add(p);
            queueSystem.put(no, patQueue);
           

            return patQueue.size();
        }
    }



    **************************************************************************************



    下面是掛號客戶端:

    **************************************************************************************

    package Queue;

            /**

                    這是一個掛號客戶端,對會診的病人進行掛號,以及方便掛號的病人容易的掛到自己想要的專家!!!

            */

    import org.eclipse.swt.SWT;
    import org.eclipse.swt.events.SelectionAdapter;
    import org.eclipse.swt.events.SelectionEvent;
    import org.eclipse.swt.layout.FillLayout;
    import org.eclipse.swt.widgets.Button;
    import org.eclipse.swt.widgets.Display;
    import org.eclipse.swt.widgets.Shell;
    import org.eclipse.swt.widgets.Text;

    public class Client {
        public static void main(String[] args){
            Display display = new Display();  
            Shell shell = new Shell(display);  
            shell.setLayout(new FillLayout());  
            shell.setText("專家掛號系統");     
            shell.open();  
            shell.setBounds(190, 100, 800, 600);
           
            final Text txt = new Text(shell,SWT.MULTI);
            txt.setBounds(200, 50, 400, 300);
           
            Button firstButton = new Button(shell,SWT.NULL);
            firstButton.setText("一號專家");
            firstButton.setBounds(100, 400, 120, 65);
           
            firstButton.addSelectionListener(new SelectionAdapter() {
                    Server ser =  new Server();
                    int i = ser.serverAdd("1");
                public void widgetSelected(SelectionEvent e) {
                   
                    txt.setText("掛號成功\n" + "您選的專家是一號專家\n" + "您前面有" + i + "\n請耐心等待!!");
                    i++;
                    }
            });
           

            Button secondButton = new Button(shell,SWT.NULL);
            secondButton.setText("二號專家");
            secondButton.setBounds(250, 400, 120, 65);
           
            secondButton.addSelectionListener(new SelectionAdapter() {
                    Server ser =  new Server();
                    int i = ser.serverAdd("2");
                public void widgetSelected(SelectionEvent e) {
                   
                    txt.setText("掛號成功\n" + "您選的專家是二號專家\n" + "您前面有" + i + "\n請耐心等待!!");
                    i++;
                   
                    }
            });
           
           
            Button thirdButton = new Button(shell,SWT.NULL);
            thirdButton.setText("三號專家");
            thirdButton.setBounds(400, 400, 120, 65);
           
            thirdButton.addSelectionListener(new SelectionAdapter() {
                    Server ser =  new Server();
                    int i = ser.serverAdd("3");
                public void widgetSelected(SelectionEvent e) {
                   
                    txt.setText("掛號成功\n" + "您選的專家是三號專家\n" + "您前面有" + i + "\n請耐心等待!!");
                    i++;
                   
                    }
            });
           
           
            Button fourthButton = new Button(shell,SWT.NULL);
            fourthButton.setText("四號專家");
            fourthButton.setBounds(550, 400, 120, 65);
           
           
            fourthButton.addSelectionListener(new SelectionAdapter() {
                Server ser =  new Server();
                int i = ser.serverAdd("4");
                public void widgetSelected(SelectionEvent e) {
                   
                   
                    txt.setText("掛號成功\n" + "您選的專家是四號專家\n" + "您前面有" + i + "\n請耐心等待!!");
                    i++;
                   
                    }
            });
           
           
           
          
            while (!shell.isDisposed()) {  
                if (!display.readAndDispatch())  
                display.sleep();  
           } 
           
            display.dispose();  
        }

    }



    運行結果如下圖:





    **************************************************************************************


    最后是Doctor的客戶端:

    **************************************************************************************

    package Queue;

            /**

                    這里定義了Doctor使用的客戶端,用來顯示會診的一些基本信息!

            */


    import java.util.LinkedList;
    import org.eclipse.swt.SWT;
    import org.eclipse.swt.events.SelectionAdapter;
    import org.eclipse.swt.events.SelectionEvent;
    import org.eclipse.swt.layout.FillLayout;
    import org.eclipse.swt.widgets.Button;
    import org.eclipse.swt.widgets.Display;
    import org.eclipse.swt.widgets.Shell;
    import org.eclipse.swt.widgets.Text;

    public class Doctor {
        public static void main(String[] args){
            Display display = new Display();  
            Shell shell = new Shell(display);  
            shell.setLayout(new FillLayout());  
            shell.setText("醫生會診系統");     
            shell.open();  
            shell.setMaximized(true);
           
            final Text firsttxt = new Text(shell,SWT.MULTI);
            firsttxt.setBounds(100, 50, 200, 300);
           
            Button firstButton = new Button(shell,SWT.NULL);
            firstButton.setText("下一個(一號專家)");
            firstButton.setBounds(150, 400, 120, 65);
           
            firstButton.addSelectionListener(new SelectionAdapter() {
                    Init aInit = new Init();
                    LinkedList lin = (LinkedList) aInit.init("1").get("1");
                public void widgetSelected(SelectionEvent e) {
                   
                    firsttxt.setText("\n您正在診斷的病人信息:\n\n" + lin.remove());
                    }
            });
           
            final Text secondtxt = new Text(shell,SWT.MULTI);
            secondtxt.setBounds(400, 50, 200, 300);
           
            Button secondButton = new Button(shell,SWT.NULL);
            secondButton.setText("下一個(二號專家)");
            secondButton.setBounds(450, 400, 120, 65);
           
            secondButton.addSelectionListener(new SelectionAdapter() {
                    Init aInit = new Init();
                    LinkedList lin = (LinkedList) aInit.init("2").get("2");
                public void widgetSelected(SelectionEvent e) {
                    secondtxt.setText("\n您正在診斷的病人信息:\n\n" + lin.remove());
                    }
            });
           
            final Text thirdtxt = new Text(shell,SWT.MULTI);
            thirdtxt.setBounds(750, 50, 200, 300);
           
            Button thirdButton = new Button(shell,SWT.NULL);
            thirdButton.setText("下一個(三號專家)");
            thirdButton.setBounds(800, 400, 120, 65);
           
            thirdButton.addSelectionListener(new SelectionAdapter() {
                Init aInit = new Init();
                LinkedList lin = (LinkedList) aInit.init("3").get("3");
                public void widgetSelected(SelectionEvent e) {
                    thirdtxt.setText("\n您正在診斷的病人信息:\n\n" + lin.remove());
                    }
            });
           
            final Text fourthtxt = new Text(shell,SWT.MULTI);
            fourthtxt.setBounds(1050, 50, 200, 300);
           
            Button fourthButton = new Button(shell,SWT.NULL);
            fourthButton.setText("下一個(四號專家)");
            fourthButton.setBounds(1100, 400, 120, 65);
           
           
            fourthButton.addSelectionListener(new SelectionAdapter() {
                Init aInit = new Init();
                LinkedList lin = (LinkedList) aInit.init("4").get("4");
                public void widgetSelected(SelectionEvent e) {
                    fourthtxt.setText("\n您正在診斷的病人信息:\n\n" + lin.remove());
                    }
            });
           
           
           
          
            while (!shell.isDisposed()) {  
                if (!display.readAndDispatch())  
                display.sleep();  
           } 
           
            display.dispose();  
        }
    }


    運行的結果如下圖:






    **************************************************************************************


    讓大家見笑了!

    posted @ 2010-10-31 21:10 tovep 閱讀(379) | 評論 (0)編輯 收藏
    曾以為QQ很神秘

    后來覺得QQ很簡單,感覺無非就是一個QQ客戶端發送一個消息到服務器,然后服務器將消息發送到指定QQ客戶端

    現在把當時想的過程畫了下來

    (大家別笑話我啊,當時真的就是這么想的,感覺很簡單——其實,當自己去實現的時候,真的很復雜!!!)


    還寫了一些代碼,不過還不能具體運行,僅僅是一個框架:

    我把這些都放在QQ包內:

    *****************************************************************
    首先,定義了一個客戶端接口——可能有點羅嗦,沒有完全實現接口的作用

    package QQ;

            /**

                這個接口的作用是用來實現客戶端向服務器發送消息的接口。

            */

    public interface QQClientInterface {
       
        public void SendServerMessage();
        public QQMessage ToFromQQServer();

    }


    ****************************************************************

    ================================================================

    ****************************************************************

    這是一個服務器的接口——貌似和上面的接口重復了!!!


    package QQ;

            /**

                    用來實現QQ服務器向QQ客戶端發送消息,和接受QQ客戶端發送來的消息

            */

    public interface QQServerInterface {
       
        public QQMessage SendMessageToQQClient(String QQName);
        public void GetMessageFromQQClient();

    }

    ****************************************************************

    ================================================================

    ****************************************************************

    這里插入一個消息類QQMessage

    package QQ;

        /**

            這個類專門用來存放QQClient和QQserver發送的消息。

         */

    public class QQMessage {
       
        private String FromQQName;
        private String ToQQName;
       
       
        public String getFromQQName() {
            return FromQQName;
        }
        public void setFromQQName(String fromQQName) {
            FromQQName = fromQQName;
        }
        public String getToQQName() {
            return ToQQName;
        }
        public void setToQQName(String toQQName) {
            ToQQName = toQQName;
        }

       
    ****************************************************************

    ================================================================

    ****************************************************************

    下面可以重點~\(≧▽≦)/~啦啦啦

    這是QQ客戶端的代碼:


    package QQ;

    public class QQClient implements QQClientInterface {

        private String QQName;
        private QQMessage message;
       

        public void SendServerMessage() {
           
            /**
           
                    用來實現對QQ服務器發送消息(調用QQ服務器的接受消息的方法,將消息發送到服務器)
             
            */   
       
           
           
           
            }




        public QQMessage ToFromQQServer() {
           
            /**
           
                    隔一段時間向服務器發送一個消息,帶有自己QQName的消息,然后QQ服務器檢索,是否
                    有消息要傳給這個QQ,如果有將消息傳過來,并顯示。
                   
            */
           
            return null;
        }


        public String getQQName() {
            return QQName;
        }


        public void setQQName(String qQName) {
            QQName = qQName;
        }


        public QQMessage getMessage() {
            return message;
        }


        public void setMessage(QQMessage message) {
            this.message = message;
        }
       
       

    }


    ****************************************************************

    ================================================================

    ****************************************************************

    最后是服務器端的代碼:

    package QQ;

    import java.util.HashMap;
    import java.util.Map;

    public class QQServer implements QQServerInterface {
       
        Map<String,QQMessage> qqMessage = new HashMap<String,QQMessage>();


        public QQMessage SendMessageToQQClient(String QQName) {
           
            /**
             
                     QQServer要發送消息必須滿足兩個條件:
                    
                                 1. QQ客戶端將自己的QQName發送給QQServer,然后根據自己的QQNameQQ服務器開始遍歷qqMessage;
                                 2. qqMessage的Values不是null。
                                
                         如果QQMessage不為空,則將自己的V發送給QQName,否則返回Null;
             
            */
           
            return null;
        }



        public void GetMessageFromQQClient() {

            /**
             
             QQServer接受消息,并將消息存放在qqMessage中
            
     
            */
           
        }

    }


    ****************************************************************
    ****************************************************************

    暫時還沒寫出一個簡單QQ程序,大家盡心等待!我一定會寫出一個讓自己滿意的即時通訊程序!










    posted @ 2010-10-29 21:12 tovep 閱讀(1286) | 評論 (6)編輯 收藏
    所謂的抽象類就是一個類前加上一個abstract修飾的類,我覺得抽象類更像一個特殊的類,雖然抽象類和類也有些不同之處。

    抽象類和類的區別:

        抽象——就是一種具有共同屬性的集體概括。

    抽象類中可以有抽象方法,也可以其他的方法及屬性;

    抽象類和類的最大區別在于: 抽象類可以有抽象方法,但類中一定沒有抽象方法,只要一個類有抽象方法那么這個類一定是抽象方法,抽象方法

    是由abstract修飾的方法,但在抽象類中并沒有去定義這個方法,這個抽象方法必須在它的子類中得到定義——這是必須的! 從這里可以看出,

    抽象類的作用是建立在繼承之上的。

    另外需要注意的是:抽象類中不一定有抽象方法,但有抽象方法的類一定是抽象類!

    繼承抽象類的子類,必須實現父類(這是抽象類)中所有的抽象方法!

    其他的,抽象類和普通的類沒有區別!

    暫且不舉例子,胃痛,今天就到這里!實在撐不住了!

    posted @ 2010-10-29 00:04 tovep 閱讀(303) | 評論 (0)編輯 收藏

       this 相當于本類,說白了就是“自己的”。
       super 指的是父類,說白了就是自己繼承的類。

    posted @ 2010-10-28 23:12 tovep 閱讀(147) | 評論 (0)編輯 收藏
    面向對象的三大特征是:封裝,繼承和多態!

    封裝:

        所謂的封裝就是將類包裝起來,可以理解為  將一個類包裝成一個黑箱子,外部對內部是不可見的!

    但這個箱子(封裝的類)有若干個接口,這些接口可以向這個黑箱子傳送一些數據,這個箱子做一些處理,然后從另外的接口(也可以從輸入的接

    口)接受處理完的信息。

    說白了,封裝就是將一個類包裝起來,使類內部數據對外不可見,這樣的話,這個類就更安全了!只要你從一個接口輸入信心,就可以從另外的接口(也可以從輸入的接口)接受你想要的處理完的數據!


    繼承:

        所謂的繼承就是將一個父類(被繼承的類)的全部(包括屬性和方法)包含在子類(繼承的類)中,這樣做可以減少代碼量,同時也可以將

    具有某些相同屬性的類,先寫出一個父類,然后繼承,在子類中,子類可以有自己的屬性和方法。

    舉一個很經典的例子:

              父類就相當于你的父親,子類就相當于你。(基因就相當于類中方法,屬性就是你的姓名啊等等)你父親的基因你都有,但你又從你

    母親那繼承了很多基因,但在JAVA中只允許單程繼承,也就是你有且只有一個父類,但子類中確包含了父類中沒有的屬性和方法,你可以這么理

    解,就是你繼承了你“母類”屬性和方法——注意:JAVA中并沒有“母類”。



    多態:
     
        多態是什么呢? 多態多態就是有很多狀態。

        比如還拿上面那個經典的例子來說,父類中的方法你也有,但你可以將這個方法的執行過程按照自己的方式寫出來!這樣呢,這個方法才真

    正屬于你(舉個小例子:就是你的父親可以吃飯,你也可以吃飯,但你們喜歡吃什么,喜歡怎么吃,吃多少,肯定不一樣!)。在子類中要從寫

    自己的方法,子類中方法的名字,參數以及參數屬性的順序必須相同。

    另外,還有一種多態形式是表現在一個類中的構造方法,他們的方法名肯定相同且和子類的類名相同,但構造方法的參數個數,順序和類型必須

    有一樣是不相同的!


    按我目前的理解,僅僅能解釋成這樣!如果以后有新的理解,一定會更新這篇博客!






    posted @ 2010-10-28 12:50 tovep 閱讀(229) | 評論 (0)編輯 收藏
    這是一個用SWT做的用戶登陸程序:

    ----------------------可視化用戶登陸系統----------------------------



    import org.eclipse.swt.SWT;
    import org.eclipse.swt.events.SelectionAdapter;
    import org.eclipse.swt.events.SelectionEvent;
    import org.eclipse.swt.widgets.Button;
    import org.eclipse.swt.widgets.Display;
    import org.eclipse.swt.widgets.Label;
    import org.eclipse.swt.widgets.Shell;
    import org.eclipse.swt.widgets.Text;

    public class Swt_Check {

        public static void main(String[] args) {
            Display mianWindow = new Display();
            //創建一個主窗口
            final Shell window = new Shell();
            //打開主窗口大小
            window.setBounds(30, 75, 300, 400);
            //設置主窗口的標題
            window.setText("登陸界面");
       
            //創建觸發按鈕以及按鈕的顯示文字和大小位置
            Button surebutton = new Button(window,SWT.NONE);
            Button nosurebutton = new Button(window,SWT.NONE);
            surebutton.setText("確定");
            nosurebutton.setText("取消");
            surebutton.setBounds(160, 235, 75, 30);
            nosurebutton.setBounds(60, 235, 75, 30);
           
            //創建輸入Text框及其位置
            final Text nameText = new Text(window,SWT.NONE);
            final Text passNumber = new Text(window,SWT.PASSWORD);
            nameText.setBounds(100, 100, 110, 20);
            passNumber.setBounds(100, 160, 110, 20);
           
            //創建標簽
            Label nameLabel = new Label(window,SWT.NONE);
            nameLabel.setText("賬號:");
            nameLabel.setBounds(60, 105, 40,20);
           
            Label passLabel = new Label(window,SWT.NONE);
            passLabel.setText("密碼:");
            passLabel.setBounds(60, 165, 40, 20);
           
            //輸入后單擊確定后的操作
            surebutton.addSelectionListener(new SelectionAdapter(){
                public void widgetSelected(SelectionEvent e){
                    //創建一個adm數組
                    Admin[] admin = new Admin[3];
                   
                    //實例化三個賬號
                    admin[0] = new Admin("admin", "admin");
                    admin[1] = new Admin("admin1", "pastNumber");
                    admin[2] = new Admin("admin2", "pastNumber");
                   
                   
                    //新建一個布爾型和整型數據,布爾值 用于判斷,整型判斷是那個賬號登陸
                    boolean past = false;
                    int pastN = 0;
                   
                    //判斷賬號密碼是否正確
                    for(int i=0;i<admin.length;i++){
                        if(admin[i].getName().equals(nameText.getText())&&admin[i].getPastNumber().equals(passNumber.getText())){
                            past = true;
                            pastN = i;
                            break;
                        }
                    }
                   
                    //輸出賬號密碼是否正確
                    if(past){
                        //從新打開一個界面輸出歡迎用戶
                        Shell welWindow = new Shell(window);
                        welWindow.setBounds(120, 130, 450, 200);
                        Label welText = new Label(welWindow,SWT.NONE);
                        welText.setText("歡迎 " +admin[pastN].getName() + "用戶登陸!");
                        welText.setBounds(140, 60, 180, 90);
                        welWindow.open();
                    }
                    else{
                        Shell noPassWindow = new Shell(window);
                        noPassWindow.setBounds(120, 130, 450, 200);
                        Label noPassText = new Label(noPassWindow,SWT.NONE);
                        noPassText.setText("對不起,您輸入的賬號或密碼有誤!");
                        noPassText.setBounds(140, 60, 180, 90);
                        noPassWindow.open();
                    }
                }

           
            }
           
            );
           
           
            nosurebutton.addSelectionListener(new SelectionAdapter(){
                public void widgetSelected(SelectionEvent e){{
                    window.close();
                }}});
            //打開窗體
            window.open();
            while(!window.isDisposed()){//如果主窗體沒有關閉則一直循環
                if(!mianWindow.readAndDispatch()){//如果display不忙
                    mianWindow.sleep();//休眠
                }
            }
            mianWindow.dispose();
           
        }

    }

    class Admin{
        private String name;
        private String pastNumber;
       
        Admin(String name, String pastNumber){
            this.name = name;
            this.pastNumber = pastNumber;
        }

        public String getName() {
            return name;
        }

        public void setName(String name) {
            this.name = name;
        }

        public String getPastNumber() {
            return pastNumber;
        }

        public void setPastNumber(String pastNumber) {
            this.pastNumber = pastNumber;
        }
       
       
       
    }

    =========================程序的運行結果如下==============================
    打開時,用戶的登陸界面




    當輸入的賬號密碼都正確時:




    當密碼或者賬號不正確:





    希望這個程序對大家有所幫助!

    posted @ 2010-10-18 01:43 tovep 閱讀(411) | 評論 (2)編輯 收藏


    -----------------------用戶登陸原----------------------------


    public class Check {

        public static void main(String[] args) {

            //創建一個adm數組
            Admin[] adm = new Admin[3];
           
            //三個賬號
            adm[0] = new Admin("admin", "pastNumber");
            adm[1] = new Admin("admin1", "pastNumber");
            adm[2] = new Admin("admin2", "pastNumber");
           
            //使用標準輸入流函數,從鍵盤輸入一些信息
            Scanner scan = new Scanner(System.in);
            System.out.println("請輸入你的賬號:");
           
            //將輸入的賬號放入putName
            String putName = scan.next();
            System.out.println("請輸入你的賬號密碼:");
           
            //將輸入的密碼放入普通putPassNumber中
            String putPassNumber = scan.next();
           
            //新建一個布爾型和整型數據,布爾值 用于判斷,整型判斷是那個賬號登陸
            boolean past = false;
            int pastN = 0;
           
            //判斷賬號密碼是否正確
            for(int i=0;i<adm.length;i++){
                if(adm[i].getName().equals(putName)&&adm[i].getPastNumber().equals(putPassNumber)){
                    past = true;
                    pastN = i;
                    break;
                }
            }
           
            //輸出賬號密碼是否正確
            if(past){
                    System.out.println("歡迎" + adm[pastN].getName() + "登陸");
                }
            else{
                    System.out.println("輸入有誤,請正確輸入你的賬號和密碼!");
                }
        }

    }
    class Admin{
        private String name;
        private String pastNumber;
       
        Admin(String name, String pastNumber){
            this.name = name;
            this.pastNumber = pastNumber;
        }

        public String getName() {
            return name;
        }

        public void setName(String name) {
            this.name = name;
        }

        public String getPastNumber() {
            return pastNumber;
        }

        public void setPastNumber(String pastNumber) {
            this.pastNumber = pastNumber;
        }

    }

    運行結果為:






    當密碼或者賬號不正確的時候輸出結果是:








    posted @ 2010-10-18 01:32 tovep 閱讀(164) | 評論 (0)編輯 收藏

    芝加哥的同學聚會



    芝加哥一個陽光明明媚的星期天,許多過去在學校曾是好朋友的同班同學聚在一起搞午餐會。前一天晚上,他們剛參加完全體高中同學的聚會。在一陣打鬧嬉笑和豐盛和午餐后,他們坐下來開始了饒有興致的交談,希望彼此多了解一些分別后的生活經歷。

    安杰拉曾是班上最受歡迎的人之一,她第一個發表感慨:“生活真的是跟我們做學生時想像的完全不一樣,變化太多了。”

    “的確如此!”內森附和道。內森正如大家所預料的那樣,畢業后就進入了他的家族企業。這家企業的經營模式經年未變,在當地人的記憶中,那可是一家歷史悠久的老字號了。因此,當內森若有所思地附和著安杰拉,并發出如此感嘆時,大家都感到有些吃驚。

    內森好像并未注意到大家的詫異,表情憂郁地接著說:“你們是否注意到,當周圍的事情已經發生變化時,我們卻不想對自己有所改變。”

    卡洛斯接著說道:“我們拒絕改變,是因為我們害怕改變。”

    杰西卡接過他的話:“噢,卡洛斯,你可是學校的足球隊長,我們心目中的英雄,我從沒想過還有什么東西可以讓你害怕的。”

    大家都笑了起來。他們都意識到,盡管大家畢業后都在各自不同的方面發展——從在家里工作到在外經營管理公司——但好像都有著類似的感覺——害怕改變。


    這些年來,每個人都試圖應對發生在生活中的各種意想不到的變化。但大家都承認,他們找不到一種很好的應對辦法。

    這時,邁克爾發話了:“我過去也一直害怕改變,直到有一天,我們的生意出現了一個重大的變故,但我們公司所有的人都不知道該怎樣去應付,由于我們沒能及時做出調整,使我們幾乎丟掉了全部的生意。”

    “后來,”邁克爾繼續講道:“我聽到了一個故事,這個故事使一切都改變了。”

    “此話怎講?”內森問道。

    “喔,因為這個故事改變了我害怕改變的個性以及我對變化的看法——從害怕失去某些東西到期待獲得某些東西——它教會我如何去做。從那以后,我的一切都迅速地改善了——無論工作還是生活。”

    “是什么故事這么神奇?”好幾個人異口同聲地問道。

    “一開始,我被這個故事顯而易見的簡單給苦惱了,它就像我們小時候聽膩了的那些寓言故事一樣。”

    “再后來,我把這個故事告訴我們公司里的其他人,其他人又講給其他人聽。很快,公司里的業務有了明顯的改進,因為我們大家都能及時地做出很好的調整以隨時應對變化。與我的感受一樣,許多人都說,這個故事使他們的個人生活大受裨益。”

    “當然,也有人說他們從中沒有得到什么,他們或者是知道這樣的教訓而且已經領教多次了。 或者,更普遍的是,他們覺得自己已經懂得夠多,不需要再學習什么了。他們甚至假裝看不到如此多的人正在從中受益。”

    “我的一位有些呆板的高級主管就說,讀這個故事只是浪費時間。然而大家都取笑他,把他比做故事中的一個角色——從不學習新的東西而且從不愿意改變。”
    安杰拉有些迫不及待:“別賣關子了,這究竟是一個什么樣的故事?”

    “故事的名字叫作‘誰動了我的奶酪’。”

    大家都哄笑起來。卡洛斯說:“我想僅憑這個名字,我就已經喜歡上這個故事了。你能講給我們聽聽嗎?或許我們也會從中有所收獲。”

    “當然,”邁克爾答道:“我非常愿意把這個故事講給你們聽。它并不長。”于是他開始給大家講述這個故事。



    “誰動了我的奶酪”的故事(1)


    從前,在一個遙遠的地方,住著四個小家伙。為了填飽肚子和享受樂趣,他們每天在不遠處的一座奇妙的迷宮里跑來跑去,在那里尋找一種叫做“奶酪”的黃橙橙、香噴噴的食物。

    有兩個小家伙是老鼠,一個叫“嗅嗅”,另一個叫“匆匆”。另外兩個家伙則是小矮人,和老鼠一般大小,但和人一個模樣,而且他們的行為也和我們今天的人類差不多。他倆的名字,一個叫“哼哼”,另一個叫“唧唧”。

    由于他們四個實在太小了,他們在干什么當然不太會引起旁人的注意。但如果你湊近去仔細觀察,你會發現許多令人驚奇不已的事情!

    兩個老鼠和兩個小矮人每天都在迷宮中度過,在其中尋找他們各自喜歡的奶酪。嗅嗅、匆匆的大腦和其他嚙齒類動物的差不多一樣簡單,但他們有很好的直覺。和別的老鼠一樣,他們喜歡的是那種適合啃咬的、硬一點的奶酪。

    而那兩個小矮人,哼哼和唧唧,則靠腦袋行事,他們的腦袋里裝滿了各種信念和情感。他們要找的是一種帶字母“C”的奶酪。他們相信,這樣的奶酪會給他們帶來幸福,使他們成功。

    盡管小老鼠和小矮人的目標各不相同,但他們做的事情是差不多的。每天早上,他們會各自穿上運動服和慢跑鞋,離開他們的小房子,跑進迷宮尋找他們各自鐘愛的奶酪。

    迷宮中有許多曲折的走廊和好像蜂窩似的房間,其中的一些房間里藏著美味的奶酪,但更多的地方則是黑暗的角落和隱蔽的死胡同,任何人走進去都很容易迷路。

    同時,這座迷宮還有一種神奇的力量,對那些找到出路的人,它能使他們享受到美好的生活。

    兩個老鼠,嗅嗅和匆匆,總是運用簡單低效的反復嘗試的辦法找奶酪。他們跑進一條走廊,如果走廊里的房間都是空的,他們就返回來,再去另一條走廊搜 尋。沒有奶酪的走廊他們都會記住。就這樣,很快地他們從一個地方找到另一個地方。嗅嗅可以用他那了不起的鼻子嗅出奶酪的大致方向,匆匆則跑在前面開路。然 而迷宮太大太復雜,如你所料,他們經常會迷路,離開正道走錯了方向,有時甚至還會撞到墻上。

    而兩個小矮人,哼哼和唧唧,則運用他們思考的能力,從過去的經驗中學習。他們靠復雜的腦筋,搞出了一套復雜的尋找奶酪的方法。

    哼哼和唧唧的方法比他們的老鼠朋友要高效,因此他們走進死胡同和碰壁的情況要比小老鼠們少得多。他們也為此而時常沾沾自喜很是得意,甚至有些看不起 低智商的老鼠朋友。然而有時候,人類復雜的頭腦所帶來的復雜感情也會戰勝他們理性思維,使他們看問題的眼光變得黯淡起來。這也使得他們在迷宮中的生活更加 復雜化,也更具有挑戰性了。

    但是不管怎樣,這四個家伙——嗅嗅和匆匆,哼哼和唧唧,都以他們各自的方式不懈地追尋著他們想要得到的東西。最后,終于有一天,在某個走廊的盡頭,在奶酪C站,他們都找到了自己想要的奶酪。

    這里真是一個天堂,四個小家伙被眼前的情景驚呆了,無數各式各樣的奶酪堆積如山,閃著誘人的光亮。四個小家伙呆了半晌,然后瘋了般地沖進奶酪堆,開始狂歡。

    從那以后,這四個家伙,小老鼠和小矮人,每天早上穿上他們的跑步裝備后便毫不猶豫地直奔奶酪C站。不久,他們都建立了熟悉的路線,并形成了各自的生活習慣。

    嗅嗅和匆匆仍舊每天都起得很早,然后沿著相同的路線跑進迷宮中。

    當老鼠們到達目的地后,他們脫下自己的跑鞋,有條不紊地將兩只鞋系在一起,掛在脖子上——以便需要的時候能夠很快穿上。然后,他們才開始盡情地享用奶酪。

    在剛開始的一段時間里,哼哼和唧唧也是如此行事,每天早晨趕到奶酪C站,按部就班的把鞋子掛在脖子上,享用在那里等著他們的美味佳肴。

    然而,不久以后,小矮人們改變了他們的常規。

    哼哼和唧唧每天起得比老鼠們晚一些,懶懶地穿好運動服,然后信步走到奶酪C站。不管怎樣,反正已經找到了奶酪。

    他們從沒想過,奶酪是從哪里來的,是誰把它們放在那里的。他們只是理所當然地認為,奶酷總是會在那里的。

    每天,哼哼和唧唧到達奶酪C站以后,就像回到了自己家一樣,舒適地呆在那里。他們脫下身上的運動衣,把它們掛起來,甩掉腳上的鞋子,換上拖鞋。他們找到了奶酪,感覺實在是太愜意了。

    “真是太好了!”哼哼說:“這里有這么多的奶酪,足夠我們享用一輩子了。”小矮人們充滿了幸福和成功的感覺,覺得從此可以無憂無慮了。


    “誰動了我的奶酪”的故事(2)


    不久,哼哼和唧唧更理所當然地認定,他們在奶酪C站發現的奶酪就是“他們自己的”奶酪了。這里的奶酪庫存是如此的豐富,于是他們決定把家搬到更靠近奶酪C站的地方,還在周圍一帶開展了他們的社交活動。

    為了使這里有更象家的感覺,哼哼和唧唧把墻壁裝飾了一通,還在墻上寫了一些格言,并且精心地畫上了一些非常可口的奶酪的圖案。他們看著這些圖畫和格言,會心地笑了。其中一幅圖畫的內容是:

    擁有奶酪,就擁有幸福。

    有時,他們會帶朋友來參觀他們在奶酪C站里成堆的奶酪,自豪地指著這些奶酪說:“多么美妙可口的奶酪呀,不是嗎?”有時,他們還會與朋友們一起分享這些奶酪,而有時則單獨享用。

    “我們應該擁有這些奶酪,”哼哼說,“為了找到它們,我們可是付出了長期而艱苦的努力的,我們當然有資格擁有它們。”他一邊說著一邊拿起一塊鮮美的奶酪放進嘴里,享用起來,臉上流露出幸福的光彩。

    然后,就像往常一樣,哼哼享受完奶酪便睡著了,夢中還露出滿足而愜意的笑容。

    每天晚上,小矮人們在美美地飽餐了奶酪后,就搖搖擺擺地走回家,第二天早上他們又會信心十足地走進奶酪C站,去享用更多奶酪。

    這樣的境況維持了相當長的一段時間。

    逐漸地,哼哼和唧唧的自信開始膨脹起來。面對成功,他們開始變得妄自尊大。在這種安逸的生活中,他們絲毫沒有察覺到正在發生的變化。

    隨著時間的流逝,嗅嗅和匆匆日復一日地重復著他們的生活。每天早早地趕到奶酪C站,四處聞一聞、抓一抓,看看這區域和前一天有什么不一樣。等到確定沒有任何異常后他們才會坐下來細細品味奶酪,好好享受一番。

    一天早上,當嗅嗅和匆匆到達奶酪C站時,發現這里已經沒有奶酪了。

    對此,他們并不感到吃驚。因為他們早已察覺到,最近好像有一些奇異的事情正在奶酪C站里發生,因為這里的奶酪已經越來越小,并且一天比一天少了。他們對這種不可避免的情況早有心理準備,而且直覺地知道該怎么辦。

    他們相互對望了一眼,毫不猶豫地取下掛在脖子上的跑鞋,穿上腳并系好鞋帶。

    兩只小老鼠對此并沒有做什么全面細致的分析,事實上,也沒有足夠復雜的腦細胞可以支持他們進行這么復雜的思維。

    對老鼠來說,問題和答案都是一樣的簡單。奶酪C站的情況發生了變化,所以,他們也決定隨之而變化。

    他們同時望向迷宮深處。嗅嗅揚起他的鼻子聞了聞,朝匆匆點點頭,匆匆立刻拔腿跑向迷宮的深處,嗅嗅則緊跟其后。

    他們開始迅速行動,去別的地方尋找新的奶酪,甚至連頭都沒有回一下。

    同一天的晚些時候,哼哼和唧唧也像往常一樣地來到奶酪C站,一路上哼著小曲。他們過去一直沒有察覺到這里每天都在發生的細小變化,而想當然地以為他們的奶酪還在那里。

    面對新的情況,他們毫無準備。


    “誰動了我的奶酪”的故事(3)


    “怎么!竟然沒有奶酪?”哼哼大叫道,然后他開始不停地大喊大叫,“沒有奶酪?怎么可能沒有奶酪?”好象他叫喊地聲音足夠大的話,就會有誰把奶酪送回來似的。

    “誰動了我的奶酪?”他聲嘶力竭力地吶喊著。

    最后,他把手放在屁股上,臉憋得通紅,用他最大的嗓門叫道:“這不公平!”

    唧唧則站在那里,一個勁地搖頭,不相信這里已經發生的變化。對此,他同樣沒有任何心理準備,他滿以為在這里照舊可以找到奶酪。他長時間地站在那里,久久不能動彈,完全被這個意外給驚呆了。

    哼哼還在瘋狂地叫嚷著什么,但唧唧不想聽,他不想面對眼前的現實,他拼命地告訴自己,這只是一個噩夢,他只想回避這一切。

    他們的行為并不可取,而且也于事無補,但我們總還是能夠理解的。

    要知道找到奶酪并不是一件容易的事情。更何況,對這兩個小矮人來說,奶酷絕不僅僅只是一樣填飽肚子的東西,它意味著他們悠閑的生活、意味著他們的榮譽、意味著他們的社交關系以及更多重要的事情。

    對他們來說,找到酪是獲得幸福的惟一途徑。根據不同的偏愛,他們對奶酪的意義有各自的看法。

    對有些人而言,奶酪代表的是一種物質上的享受;而對另一些人來說,奶酪意味著健康的生活,或者是一種安寧富足的精神世界。

    對唧唧來說,奶酪意味著安定,意味著某一天能夠擁有一個可愛的家庭,生活在名人社區的一座舒適的別墅里。

    對哼哼來說,擁有奶酪可以使他成為大人物,可以領導很多很多的人,而且可以在卡米伯特山項上擁有一座華麗的宮殿。

    由于奶酪對他們實在太重要了,所以這兩個小矮人花了很長時間試圖決定該怎么辦。但他們所能夠想到的,只是在奶酪C站里尋找,看看奶酪是否真的不存在了。

    當嗅嗅和匆匆已經在迅速行動的時候,哼哼和唧唧還在那里不停地哼哼唧唧、猶豫不決。

    他們情緒激動地大聲叫罵這世界的不公平,用盡一切惡毒的語言去詛咒那個搬走了他們的奶酪的黑心賊。然后唧唧開始變得消沉起來,沒有了奶酪,明天會怎樣?他對未來的計劃可是完完全全都建立在這些奶酪的基礎上面的啊!

    這兩個小矮人就是不能接受這一切。這一切怎么可能發生呢?沒有任何人警告過他們,這是不對的,事情不應該是這個樣子的,他們始終無法相信眼前的事實。

    那天晚上,哼哼和唧唧饑腸轆轆、沮喪地回到家里。在離開之前,唧唧在墻上寫下了一句話:

    奶酪對你越重要,你就越想抓住它。

    第二天,輾轉難眠了一晚上的哼哼和唧唧早早地離開家又回到奶酪C站,不管怎樣,他們抱著一線希望,他們不斷地欺騙自己,假定昨天走錯了地方,他們仍然希望找回他們的奶酪。奶酪站的位置沒有變化,然而奶酪的的確確早已不復存在。兩個小矮人頓時手足無措,不知道該怎么辦。哼哼和唧唧只是站在那里,一動不動,就像兩座毫無生氣的雕像。

    唧唧緊緊閉上眼睛,用手捂住自己的耳朵,他只想把一切都堵在外面。他不愿相信奶酪是逐漸變得越來越少的,他寧愿相信奶酪是突然之間被全部拿走的。

    哼哼則把現在的情況分析了分析,他用他那復雜的大腦把他所有的信條都翻了個遍。“他們為什么要這樣做?”他終究沒能找到答案,“這里究竟發生了什么事情?”


    “誰動了我的奶酪”的故事(4)



    終于,唧唧睜開了眼睛,朝周圍看了看說:“順便問一下,嗅嗅和匆匆現在在哪里?你是否覺得他們知道某些我們還不知道的事情?”

    “那兩個弱智,他們能夠知道些什么?”哼哼的語氣中充滿了不屑。

    他繼續說:“他們只是頭腦簡單的老鼠,他們只會對發生的事情做出簡單的反應。而我們是機靈聰明的小矮人,我們比老鼠有頭腦。我們應該能夠推測出這里的情況。”

    “我知道我們更聰明,”唧唧說,“但是,我們現在的行為好像并不怎么聰明。我們周圍的情況已經發生了變化,哼哼,也許我們需要做出一些改變,去做點什么不同的事情。”

    “我們為什么要改變?”哼哼問道,“我們是小矮人,我們是不一樣的。這樣的事情不應該發生在我們的身上。即使出現了這樣的情況,我們至少也應該從中得到一些補償。”

    “為什么我們應該得到一些補償呢?”唧唧問。

    “因為我們有這樣的權力。”哼哼宣稱。

    “有什么樣的權力?”唧唧不明白。

    “有擁有我們的奶酪的權力。”

    “為什么?”唧唧還是不明白。

    “因為這個問題不是我們引起的,”哼哼說,“是某些別有用心的人制造了這個局面,而不是我們,所以我堅持認為我們總應該從中得到些補償。”

    “也許我們應該停止這種無用的分析,”唧唧提議,“分析問題到此為止。在我們還沒有被餓死之前,我們應該趕緊出發去找新的奶酪。”

    “噢,不!”哼哼反對說,“我就快要找到問題的根源了,要知道,我們曾經擁有過那么多、那么好的奶酪啊!”

    當哼哼和唧唧還在爭執著試圖決定該怎么辦的時候,嗅嗅和匆匆已經在很順利地做他們的事情了。他們進入到了迷宮的更深處,走過一條又一條走廊,在每一個他們遇到的奶酪站里仔細尋找著奶酪。

    除了傾盡全力地尋找新的奶酪,他們并不考慮任何別的事情。

    有好一段時間,他們找得很辛苦卻一無所獲。直到他們走進迷宮中一個他們從未到過的地方:奶酪N站。

    他們高興得尖叫起來,他們終于發現了他們一直在尋找的東西:大量新鮮的奶酪。

    他們簡直不敢相信自己的眼睛,這是他們所見過的最大的奶酪倉庫。

    而與此同時,哼哼和唧唧仍然呆在奶酪C站,對他們目前的處境進行揣摩。他們正在忍受著失去了奶酪的痛苦,挫折感、饑餓感和由此而來的憤怒緊緊圍繞著他們,折磨著他們,他們甚至為陷入眼前的困境而相互指責。

    唧唧仍然時時想起他的老鼠朋友,猜想他們現在是否已經找到了奶酪。他相信他們也許過得很困難。在迷宮中穿行,總會面臨許多難以預料的事情。但他也知道,什么事情也得有不容易的一個階段。

    有時,唧唧會想象出嗅嗅和匆匆已經找到了奶酪并正在享用它們的情景。他忽然有一種沖動,想到迷宮中冒險去尋找新的奶酪。在迷宮中探險,找到新的奶酪并盡情享用,這一切該是多么的美好啊!想到這里,他覺得仿佛自己已經嘗到了新鮮奶酪的美味。

    正在尋找和享用新的奶酪,這樣的情景在唧唧的頭腦中越來越清晰。他覺得自己越來越想離開奶酪C站,出發去尋找新的奶酪。

    突然,他大聲宣布道:“我們走吧!”

    “不!”哼哼很快做出了反應:“我喜歡這里。我只熟悉這里,這里很好很舒服。再說,“離開這里到外面去是很危險的。”

    “不會的,”唧唧說:“以前我們也曾經到過這個迷宮中的許多的地方,我們還可以再去其他地方找找看。”

    “我覺得自己已經有些老了,不能再做這種跑來跑去到處冒險的事了。”哼哼說:“而且,我也不想象個傻瓜似的,時常迷路。你覺得呢?”

    聽哼哼這么一說,失敗的恐懼感又襲上了唧唧的心頭,他的那點發現新奶酪的希望又逐漸消退了。

    就這樣,這兩個小矮人繼續做著以前每天所做的事。他們仍然每天都去奶酪C站,發現還是找不到奶酪,然后懷著憂慮和挫敗的心情回到家里。

    他們試圖否認眼前發生的一切,開始失眠,力氣一天比一天小,變得越來越煩躁易怒。

    他們的家,也不再是美好舒適的地方。他們睡不上一個安穩覺,而且每晚的時光伴著找不到奶酪的噩夢度過。

    但他們仍然每天都回到奶酪C站,仍然每天在那里等待。

    哼哼說:“你知道,如果我們再努力一些,我們也許會發現事情并沒有發生太大的變化。奶酪也許就在附近,它們也許只是被人藏到墻后面去了。”


    “誰動了我的奶酪”的故事(5)


    第二天,哼哼和唧唧帶了工具回到奶酪C站。哼哼拿著鑿子,唧唧則用錘子敲打。他們費了九牛二虎之力,終于在墻上打出了一個洞,朝里面窺視,卻依舊沒有發現奶酪的蹤跡。

    盡管他們感到非常失望,但他們仍然想念問題會得到解決。以后,他們起得更早,工作得更長、更努力。但是,一段時間以后,他們得到的只是一個個更大的空洞。

    唧唧開始認識到行動和結果的區別。

    “也許,”哼哼說:“我們只需要坐在這里,看看到底會發生什么事情。遲早他們會把奶酪再送回來。”

    唧唧希望他說的是真的。這樣,他每天回家休息,然后勉強陪著哼哼去奶酪C站查看情況。但是,奶酷始終沒有再出現。

    由于焦慮和饑餓,這兩個小矮人已經變得有些虛弱。唧唧已經開始厭倦等待——完全被動地等著狀況自己發生好轉。他開始明白,他們在奶酪C站等待的時間越長,情況只會變得越糟糕。

    唧唧明白,他們正在失去自己的優勢。

    終于,有一天,唧唧開始自己嘲笑起自己來了:“唧唧呀唧唧,看看你自己吧!你居然等到每天重復同樣的錯誤,還總是奇怪、懷疑為什么情況還沒有得到改善,還有什么比你這種做法更可笑的呢?這如果不是荒謬,就是滑稽。”

    唧唧并不想再到迷宮中去奔波。他知道他可能會迷路,而且他也不知道究竟應該到哪兒去尋找新的奶酪。但當他明白正是他的恐懼感使他如此裹足不前、坐以待斃的時候,他嘲笑起自己的愚笨。

    他問哼哼:“我們的運動衣和慢跑鞋放到哪里去了?”他花了很長的時間才翻出了那些運動裝備。當初,他們在奶酪C站找到奶酪以后,就把鞋啊什么的都有扔到一邊去了,因為他們滿以為再也不會需要這些玩意兒了。

    當哼哼看到他的朋友穿上運動服時,他說,“你不是真的要到迷宮中去吧?你為什么不留下來,和我一起在這里等,等著他們把奶酪送回來?“

    “因為如果這么做,我們將永遠不會得到那些奶酪,”唧唧大聲說:“不會有人把奶酪送回來了,現在已經到了去尋找新奶酪的時候了,不要再想那些早已不存在的奶酪了!”

    哼哼爭辯說:“但是如果外面也沒有奶酪怎么辦?或者,即使有奶酪,但你找不到,又怎么辦?”

    “我不知道。”唧唧不耐煩地說。同樣的問題,他已經問過自己多少遍了。他又感到了那種使他停滯不前的恐懼感。奶酪的喜悅再度鼓起了他的勇氣。

    他最后問自己:“你希望到哪里去找奶酪——這里還是迷宮中?”

    于是他的腦中出現了一幅圖畫,他看見自己面帶微笑地在迷宮中探險。

    這樣的景象讓他有些驚慌,他發現自己終于克服了再次進入迷宮的恐懼。他看見自己在迷宮中迷了路但仍然滿懷信心地在那里尋找新奶酪,一切美好的事物都隨之而來。他又重新找回了自己的勇氣。

    于是,他盡量發揮自己想象力,在腦海中為自己描繪了一幅他最信賴的、最具有現實感受的圖畫——他在尋找和品嘗新的奶酪。

    他仿佛看見自己坐在一大堆奶酪中央,正在盡情品嘗各種奶酪,像蜂窩狀的瑞士奶酪、鮮黃的英國切達干酪、美國奶酪和意大利干酪,還有美妙又柔軟的法國卡米伯特奶酪,等等。

    唧唧簡直想入了神,直到他聽到哼哼在一邊嘟囔著什么,他才意識到自己仍然還在奶酪C站。

    于是唧唧轉身來對哼哼說:“哼哼,有時候,事情發生了改變,就再也變不回原來的樣子了。我們現在遇到的情況就是這樣。這就是生活!生活在變化,日子在住前走,我們也應隨之改變,而不是在原地踟躕不前。”

    唧唧看著他那因饑餓和沮喪而顯得有些憔悴的朋友,試圖給予他分析一些道理。但是,哼哼的畏懼早已變成了氣惱,他什么也聽不進去。

    唧唧并不想冒犯他的朋友,但是,他還是忍不住要嘲笑他們自己,因為現在看起來他們倆真的是又狼狽又愚蠢。

    當唧唧準備要出發的時候,他覺得自己整個人都變得都充滿了活力,他挺起了胸膛,他的精神開始振作起來:“讓我們出發吧。”

    唧唧大笑著宣稱:“這是一個迷宮的時代!”

    哼哼笑不起來,他幾乎沒有任何反應。


    “誰動了我的奶酪”的故事(6)


    唧唧拾起一塊尖硬的小石頭,在墻上寫下一句懇切的話,留給哼哼去思考。他沒有忘記自己的習慣,在這句話的周圍畫上奶酪的圖案。唧唧希望這幅畫能給哼哼帶來一絲希望,會對哼哼有所啟發,并促使哼哼起身去追尋新的奶酪。但是哼哼根本不想朝墻上看一眼。

    墻上的話是:

    如果你不改變,你就會被淘汰。

    在墻上留完言后,唧唧伸出腦袋小心翼翼地朝迷宮中望了望,回想著到達奶酪C站以前所走過的路線。

    他曾經想過,也許迷宮中再也沒有奶酪了,或者,他可能永遠也找不到奶酪。這種悲觀的情緒曾經那樣深地根植于他的心底,以到于差一點就毀了他。

    想到這里,唧唧會心地微笑起來。他知道,哼哼現在一定還在原地懊惱:“究竟是誰動了我的奶酪?”而唧唧此刻想的卻是:“我為什么沒有早點行動起來,跟隨著奶酪移動呢?”

    當唧唧終于走出奶酪C站踏入黑暗的迷宮時,他忍不住回頭看了看這個曾經伴隨他和哼哼很長一段時間的地方。那一瞬間他幾乎無法控制自己,又想走回那個熟悉的地方,又想躲進那個雖已沒有奶酪但很完全的地方。

    唧唧又有些擔心起來,拿不準自己是否真的想要進入到迷宮中去。片刻以后,他又拿起石塊在面前的墻上寫下一句話,盯著它看了許久:

    如果你無所畏懼,你會怎樣做呢?

    他對著這句話苦思冥想。

    他知道,有時候,有所畏懼是有好處的。當你害怕不做某些事情會使事情變得越來越糟糕時,恐懼心反而會激起你采取行動。但是,如果你因為過分害怕而不敢采取任何行動時,恐懼心就會變成前進道路上最大的障礙。

    他朝迷宮的右側瞧了瞧,心中生出了恐懼,因為他從未到過那里面。

    然后,他深吸了一口氣,朝迷宮的右側緩步跑去,跑向那片未知的領地。

    在探路的時候,唧唧有些擔心起來,一開始他還在奶酪C站猶豫了那么久,因為很長時間沒有吃到奶酪了,他有些虛弱。現在,在迷宮中穿行要比以前更加吃力,花的時間更長。他打定主意,一旦再有機會,他一定要盡早走出舒適的環境去適應事情的變化。他覺得立刻采取措施會使事情更容易一些。

    想到這里,唧唧無力地微笑了一下,感嘆道:“遲做總比不做好。”

    接下來的幾天里,唧唧在周圍偶而能夠找到一點奶酪,但都吃不了多久。他曾經希望能夠找到足夠多的奶酪,帶回去給哼哼,鼓勵他離開原地,走進迷宮。

    但是,唧唧還是感到有些信心不足。他不得不承認,身在迷宮中,他感到十分困惑。里面很多地方跟以前完全不一樣了。

    他這樣想著朝前走去,他覺得自己已經走了好遠,卻又好像就要迷失在迂回曲折的走廊中了。這就好像是在走兩步退一步,對他來說這真是一種挑戰。不過他還是要承認,回到迷宮中尋找奶酪,其實并不像他想象的那樣可怕。

    隨著時間的流逝,他開始有些懷疑,找到新奶酪的希望是否能變成現實。有種幻覺,有時他懷疑是否自己嘴里的奶酪太多而嚼不過來,這時,想到自己根本沒有東西可嚼,他不禁啞然失笑。

    每當他開始感到泄氣的時候,他就提醒自己正在做什么。盡管現在很難受,但這樣總比呆在沒有奶酪的地方更實際。他在掌握控制權,而不是聽天由命、束手無策。

    他還提醒自己,如果嗅嗅和匆匆能不斷前行,那么自己也能做到!

    后來,唧唧回想起過去的事情,他終于明白奶酪C站的奶酪并不是像他曾經相信的那樣一夜之間突然消失的。奶酪的數量是逐漸變少,直至完全消失的。而且,剩下的那一點也已經陳舊變質,美味喪失殆盡了。

    那些陳舊的奶酪上面或許已經生出了霉菌,只是他沒有注意到罷了。他還得承認,只要他愿意,應該能夠注意得到。可惜他當初沒有留意這些變化。

    唧唧還認識到,如果他一直能夠察覺到這些變化而且能夠預見到這些變化,那么,這些變化就不會讓他感到吃驚。也許,嗅嗅和匆匆一直就是這樣做的。

    他打定主意,從現在起,他要時刻保持警覺。他要期待著發生變化,而且還要去追尋變化。他應該相信自己的直覺,能夠意識到何時發生變化,并且能夠做好準備去適應這些變化。

    他停下來休息了一會兒,并在迷宮的墻上寫道:

    經常聞一聞你的奶酪,

    你就會知道,

    它什么時候開始變質。

    一段日子以后,好像已經很久沒有找到奶酪了。這天,唧唧遇到了一個很大的奶酪站,看起來里面似乎裝滿了奶酪。他走進去以后,卻發現里面空空如也,他失望至極。

    “這種空空的感覺,對我來說太平常了。”他嘆息道,他覺得自己就快要放棄了。


    “誰動了我的奶酪”的故事(7)



    唧唧的體力正在慢慢地喪失。他知道自己迷路了,此刻他有些擔心自己能不能活下去。他想轉身回到奶酪C站去。回去后,至少哼哼還在那里,唧唧就不會孤單一人了。這時,他又問了自己一個同樣的問題:“如果我無所畏懼,我又會怎樣做呢?”

    唧唧覺得他正在克服和超越自己的恐懼,但他又越來越經常地感到害怕,害怕得甚至無法對自己承認。他常常難以確定自己到底害怕什么,但是在目前這樣虛弱的狀況下,他知道,他只是害怕一個人獨自前行。唧唧其實并不清楚這一點,他只是在跟著這種感覺走,因為他一直在被這些恐懼的念頭壓迫著。

    唧唧想知道哼哼是否已經離開了C站開始出發去尋找新的奶酪,或者是否仍然被自己的恐懼所嚇倒,仍舊裹足不前。這時,唧唧想起他在迷宮中度過的時光,那些他曾經覺得是最美好的時光,其實正是他一個人穿行在迷宮中找尋奶酪的時候。

    他又在墻上寫下了一句話,以便提醒自己。同時,這句話也是一個標記,留給他的朋友哼哼,希望哼哼會跟上來。

    朝新的方向前進,

    你會發現新的奶酪。

    唧唧朝著黑暗深遂的通道中望去,又有一陣恐懼襲來。前面有些什么?是不是什么都沒有?或者更糟,里面潛藏著危險?他開始想象各種可能降臨到他頭上的可怕的事情。他越想越怕,快把自己嚇死了。

    忽然,他又覺得自己真是可笑。他意識到,他的畏懼只會使事情變得更糟糕。于是,他采取了當他無所畏懼的時候會采取的行動。他朝一個新的方向跑去。

    當他跑向這條黑暗的走廊時,他笑了起來。唧唧還沒有認識到這一點,但他覺得他的靈魂得到了豐富。他正在放開自己,對前景充滿了信心,盡管他并不能確切地知道前面究竟有些什么。

    出乎意料,他開始對自己感到越來越滿意。“為什么我感覺這么好?”他不明白:“我并沒有找到奶酪,而且也不知道要到哪里去。”

    不久,他就明白了他為什么會感覺這么好。

    他停下腳步,在墻上寫道:

    當你超越了自己的恐懼時,

    你就會感到輕松自在。

    他認識到,他原來是被自己的恐懼感給控制住了。如今朝一個新的方向邁進,使他獲得了自由。

    這時,從迷宮中吹來習習的涼風,使人感到神清氣爽。他深吸了一口氣,不覺振作起來。一旦克服了自己的恐懼感,他覺得一切比原來自己想像的要好得多。

    唧唧已經很久沒有這種感覺了。他幾乎就快要忘記了這種感覺是多么的愜意。

    為了使事情更順利地進行,他又開始在頭腦中描繪一種景象。想像中,他在一種很棒的現實環境,坐在各種他喜歡的奶酪中間——有切達奶酪還有布里奶酪!他看見自己在吃許多他喜歡吃的奶酪。這樣的景象使他獲得一種享受,他想像著這些奶酪的滋味該是多么美啊!

    這種享受新奶酪的情景,他看得越清楚,就越相信這會變成現實。現在,他有一種感覺,他就快要找到奶酪了。

    他又在墻上寫道:

    在我發現奶酪之前,

    想像我正在享受奶酪,

    這會幫我找到新的奶酪。

    唧唧一直在想的是他將會得到什么,而不是考慮他會失去什么。

    他不明白,為什么自己過去總是覺得變化會使事情變得更糟。而現在他認識到,變化將會使事情變得更好。

    “為什么以前我不明白這一點?”他反問自己。


    “誰動了我的奶酪”的故事(8)


    于是,他以更大的勇氣和力量快速靈敏地穿行在迷宮中。不久他就發現了一個奶酪站。當他在迷宮的入口處發現一些新奶酪的碎屑時,他變得興奮起來。

    這是一些他從未見過的奶酪,但看起來挺不錯。他嘗了嘗,真是美味啊!他吃掉了大部分能找到的小塊奶酪,把剩下的放進口袋,以后也許可以和哼哼分享。他的體力也開始得到恢復。

    他懷著興奮的心情走進去。但是,讓他感到驚愕的是,里面竟然是空的。有人已經來過這里,只留下了一些零星的小塊奶酪。

    他認識到,如果能早一點行動,他就很有可能早已在這里發現大量的新奶酪了。

    唧唧決定回去,看看哼哼是否愿意和他一起行動。

    在返回的路上,他停下來,在墻上寫道:

    越早放棄舊的奶酪,

    你就會越早發現新的奶酪。

    不久,唧唧就回到了奶酪C站,找到了哼哼。他給哼哼一些新的小塊奶酪,但被拒絕了。

    哼哼很感激朋友的心意,但是他說:“我不喜歡新奶酪,這不是我習慣吃的那一種。我只要我自己的奶酪回來。除非可以得到我想要的東西,否則我是不會改變主意的。”

    唧唧失望地搖了搖頭,不情愿地一個人踏上了自己的旅程。當走到他到達過的迷宮最深處時,他懷念起他的朋友來,但他明白,他喜歡的還是他的探險過程。雖然以前他想自己希望的是得到充足的新奶酪,但現在他清楚使自己快樂的并不僅僅是奶酪而已。

    他高興的是,他不再受自己的恐懼感的驅使。他喜歡自己正在做的事情。

    明白了這一點,唧唧不再像在奶酪C站時,在沒有奶酪的日子里感到那樣虛弱了。他知道,他不會再讓恐懼感阻礙自己。他選擇了一個新的方向,他的身心得到了滋養,體力得到加強。

    現在,他覺得,找到自己想要的東西只是一個時間問題。事實上,他感到他已經找到了他一直在尋找的東西。

    當他認識到這一點的時候,他不禁微笑起來,并在墻上寫道:

    在迷宮中搜尋

    比停留在

    沒有奶酪的地方更安全。

    唧唧還認識到,就像他曾經體會過的那樣,你所害怕的東西根本沒有你想像的那樣糟糕,在你心里形成的恐懼比你的實際處境要更壞。他曾經是如此害怕找不到新的奶酪,以致于他根本不想開始去尋找。然而一旦開始尋找的旅程,他就發現迷宮的走廊中有足夠的奶酪使他繼續找下去。現在,他期待著找到更多的奶酪。只要朝前看,他就會因為有所期待而興奮起來。

    他過去的思想被恐懼和憂慮蒙蔽了。過去考慮的總是沒有奶酪,或者沒有可以維持足夠長時間的奶酪。以前總是覺得會把事情做錯,而不是考慮把事情做好。

    在離開奶酪C站以后的日子里,一切都改變了。

    過去他習慣于認為,奶酪絕不會被拿走,改變總是不對的。

    現在,他知道,變化會不斷地發生,這是很自然的事情,不管你是否希望如此。只有當你不希望變化,也不想追尋變化的時候,變化才會讓你感到吃驚。

    當唧唧認識到自己的信念發生了改變時,他停下來,在墻上寫道:

    陳舊的信念

    不會幫助你

    找到新的奶酪。

    唧唧還沒有找到奶酪,但在迷宮中穿行的時候,唧唧在想自己從中學到了什么。

    他意識到,他的新的信念鼓舞著他采取新的行動。他的行為再不同于以往,再也不是總要回到同一個沒有奶酪的地方。

    他知道,當你改變了自己的信念,你也就改變了自己的行為。

    你可以相信,變化對你有害,你可以拒絕它;或者,你會相信尋找新奶酪對你有好處,你會擁抱這種變化。

    這些都取決于你選擇相信什么。

    他在墻上寫道:

    當你發現

    你會找到新的奶酪

    并且能夠享用它時,

    你就會改變你的路線。


    “誰動了我的奶酪”的故事(9)


    唧唧知道,如果他能夠早一些離開奶酪C站,早一點應對這些變化,他現在的狀況就會更好一些。他的身體會更強壯,精神也會更堅強,會更好地去迎接挑戰——尋找新奶酪的挑戰。事實上,如果他不是浪費時間,否認已經發生了的變化,如果他能夠期待改變,也許他已經找到奶酪了。

    他再一次運用自己的想像力,看見自己正在發現和品嘗新奶酪。他決定到更多的地方去,去迷宮中那些他還沒有到過的地方。在這些地方,他偶爾找到一些小塊的奶酪。唧唧又開始恢復了體力和信心。

    當他回顧自己是怎么走過來的時候,他很高興他在很多經過的地放的墻上都留下了字跡。他相信如果哼哼決定離開奶酪C站的話,這就是留給哼哼的路標,能幫助哼哼穿過迷宮。

    唧唧只是希望自己在朝著正確的方向前進。他還想到了這種可能性——哼哼將會讀到墻上的字跡,并且循著它找到出路。

    于是他又把這段時間以來他一直在思索著的心得寫在了墻上:

    盡早注意細小的變化,

    這將有助于你

    適應即將來臨的更大的變化。

    此時此刻,唧唧早已把過去拋在腦后,正在適應現在。

    他繼續以更充沛的體力和更快的速度穿越迷宮。不久,期待已久的事情終于發生了。

    當他感覺一直在迷宮中前行,而且好像永遠都會在迷宮中前行的時候,他的旅程——至少是現階段的旅程——即將愉快地結束了。

    唧唧正沿著一條走廊前進,這是一條他從未到過的走廊,拐過一個彎,在他的面前出現了奶酪N站,這里堆滿了新鮮的奶酪!

    當他走進奶酪N站的時候 ,他被眼前的景象驚呆了。到處都是堆積如山的奶酪,他從未見過如此巨大的豐盛的貯藏。他并不完全認識這些奶酪,有些品種是全新的。

    眼前的景象太壯觀了,他猶豫了一會兒,不能肯定這是否是真的,或許這只是他的幻覺。直到他看見了他的老朋友——嗅嗅和匆匆,他才相信這一切是真的。

    嗅嗅沖唧唧點了點頭,表示歡迎,匆匆則朝他揮了揮爪子。他們胖胖的小肚子表明,他們在這里已經有一段時間了。

    唧唧很快向他們打了招呼,然后趕緊把他喜歡的各種奶酪都咬了一口。他脫掉鞋子,把兩只鞋子系在一起,然后掛在脖子上,以便需要的時候能夠迅速找到它們。嗅嗅和匆匆會心地笑了,并且贊許地點了點頭。而唧唧已經一頭扎進了奶酪堆中。一頓飽餐之后,唧唧高興地舉起一塊新鮮的奶酪歡呼:“呼啦,變化萬歲!”

    唧唧享受新奶酪的同時,也在反思自己學到了什么。

    他認識到,當他害怕變化的時候,他一直受困于對那已不存在的舊奶酪的幻想而無法自撥。

    那又是什么使他發生了改變呢?難道是害怕餓死的恐懼?想到這里,唧唧笑了,他心里明白,這種恐懼當然起過很大的作用。

    唧唧忽然發現,他已經學會自嘲了,而當人們學會自嘲,能夠嘲笑自己的愚蠢和所做的錯事時,他就在開始改變了。他甚至覺得,改變自己的最快方式,就是坦然嘲笑自己的愚笨——這樣,你就能對過往云煙輕松釋然,迅速行動起來,直面變化。

    唧唧相信他從他的老鼠朋友嗅嗅和匆匆那里,學到了一些有用的東西——不畏懼改變,勇往直前。老鼠朋友們簡單地對待生活,他們不會反復分析,也不會把事情搞得很復雜。當形勢發生改變,奶酪被移走了的時候,他們會迅速隨之改變,循著奶酪移動的方向而移動。唧唧告訴自己,要牢記這些體會。

    唧唧相信擁有了這些體會,憑借自己聰慧的頭腦,再遇到任何變化時他一定能做得比老鼠朋友更好。

    他的頭腦里出現了清晰的圖畫,他的生活將會變得更美好,而且他還會在迷宮中發現一些更好的東西。

    唧唧不斷地反思自己過去犯下的錯誤,他要汲取這些經驗教訓,去構劃自己的未來。他知道,自己完全可以通過總結和學習,掌握如何應對變化:

    首先要更清醒地認識到,有時需要簡單地看待問題,以及靈敏快速地行動。

    你不必把事情過分復雜化,或者一味地讓那些驚恐的念頭使自己慌亂。

    其次必須要善于發現一開始發生的那些細微的變化,以便你為即將來臨的更大的變化做好準備。

    他知道,他需要做出更快的調整。因為,如果不能及時調整自己,就可能永遠找不到屬于自己的奶酪。

    還有一點必須承認,那就是阻止你發生改變的最大的制約因素就是你自己。只有自己發生了改變,事情才會開始好轉。


    “誰動了我的奶酪”的故事(10)



    最重要的是,新奶酪始終總是存在于某個地方,不管你是否已經意識到了它的存在。只有當你克服了自己的恐懼念頭,并且勇于走出久已習慣的生活,去享受冒險帶來的喜悅的時候,你才會得到新奶酪帶給你的報償和獎賞。

    唧唧還認識到,有些畏懼是需要加以認真對待的,它會幫助你避開真正的危險。但絕大部分的恐懼都是不明智的,它們只會在你需要改變的時候,使你回避這種改變。

    唧唧曾經那樣地懼怕改變,他真的希望生活能夠永遠按照原有的樣子繼續,但現在他意識到,生活并不會遵從某個人的愿望發展。改變隨時有可能降臨,但積極地面對改變卻會讓你發現更好的奶酪,真的是塞翁失馬,焉知非福。

    唧唧已經看到了變化更好的一面。

    當他回想起這些自己所學到的東西時,他不由得想起了他的朋友哼哼。他不知道哼哼是否讀到了那些他在奶酪C站和迷宮各個角落墻上的留言,不知道哼哼是否已經走出了迷宮。

    哼哼是否已經決定放開已經失去的過去并開始行動?他是否已經重新回到迷宮中,并且發現了能使他的生活變得更好的東西?

    或者,他因為不肯改變,還在那里遲疑不前?

    唧唧在考慮回到奶酪C站去,看是否能找到哼哼——但首先得肯定自己能找到回來的路。如果找到了哼哼,他會把自己學到的東西告訴他,幫助他擺脫困境。但唧唧又想起已經試圖改變過他的失敗經歷。

    哼哼必須自己發現適合自己的道路,擺脫安逸,超越恐懼。沒有人可以代替他做到這一點,或者告訴他應該怎樣去做。他必須邁出第一步,否則他永遠不會看到改變自己所帶來的好處。

    唧唧知道自己已經給哼哼留下了足夠的標記,只要他能夠邁出第一步,讀到墻上的字跡,他就會找到出路。

    于是唧唧打消了回C站的念頭,他站起來走到奶酪N站最大的一面墻前,把他一路上得到的心得體會的要點寫了下來。他拿起一塊很大的奶酪,這是他見過的奶酪中最大的一塊。唧唧品嘗著新鮮的奶酪,望著自己寫下的體會,臉上綻出了微笑:

    奶酪墻上的話

    變化總是在發生

    他們總是不斷地拿走你地奶酪。

    預見變化

    隨時做好奶酪被拿走的準備

    追蹤變化

    經常聞一聞你的奶酪,

    以便知道它們呢什么時候開始變質。

    唧唧相信擁有了這些體會,憑借自己聰慧的頭腦,再遇到任何變化時他一定能做得比老鼠朋友更好。

    他的頭腦里出現了清晰的圖畫,他的生活將會變得更美好,而且他還會在迷宮中發現一些更好的東西。

    唧唧不斷地反思自己過去犯下的錯誤,他要汲取這些經驗教訓,去構劃自己的未來。他知道,自己完全可以通過總結和學習,掌握如何應對變化:

    首先要更清醒地認識到,有時需要簡單地看待問題,以及靈敏快速地行動。

    你不必把事情過分復雜化,或者一味地讓那些驚恐的念頭使自己慌亂。

    其次必須要善于發現一開始發生的那些細微的變化,以便你為即將來臨的更大的變化做好準備。

    他知道,他需要做出更快的調整。因為,如果不能及時調整自己,就可能永遠找不到屬于自己的奶酪。

    還有一點必須承認,那就是阻止你發生改變的最大的制約因素就是你自己。只有自己發生了改變,事情才會開始好轉。

    最重要的是,新奶酪始終總是存在于某個地方,不管你是否已經意識到了它的存在。只有當你克服了自己的恐懼念頭,并且勇于走出久已習慣的生活,去享受冒險帶來的喜悅的時候,你才會得到新奶酪帶給你的報償和獎賞。

    唧唧還認識到,有些畏懼是需要加以認真對待的,它會幫助你避開真正的危險。但絕大部分的恐懼都是不明智的,它們只會在你需要改變的時候,使你回避這種改變。


    “誰動了我的奶酪”的故事(11)


    唧唧曾經那樣地懼怕改變,他真的希望生活能夠永遠按照原有的樣子繼續,但現在他意識到,生活并不會遵從某個人的愿望發展。改變隨時有可能降臨,但積極地面對改變卻會讓你發現更好的奶酪,真的是塞翁失馬,焉知非福。

    唧唧已經看到了變化更好的一面。

    當他回想起這些自己所學到的東西時,他不由得想起了他的朋友哼哼。他不知道哼哼是否讀到了那些他在奶酪C站和迷宮各個角落墻上的留言,不知道哼哼是否已經走出了迷宮。

    哼哼是否已經決定放開已經失去的過去并開始行動?他是否已經重新回到迷宮中,并且發現了能使他的生活變得更好的東西?

    或者,他因為不肯改變,還在那里遲疑不前?

    唧唧在考慮回到奶酪C站去,看是否能找到哼哼——但首先得肯定自己能找到回來的路。如果找到了哼哼,他會把自己學到的東西告訴他,幫助他擺脫困境。但唧唧又想起已經試圖改變過他的失敗經歷。

    哼哼必須自己發現適合自己的道路,擺脫安逸,超越恐懼。沒有人可以代替他做到這一點,或者告訴他應該怎樣去做。他必須邁出第一步,否則他永遠不會看到改變自己所帶來的好處。

    唧唧知道自己已經給哼哼留下了足夠的標記,只要他能夠邁出第一步,讀到墻上的字跡,他就會找到出路。

    于是唧唧打消了回C站的念頭,他站起來走到奶酪N站最大的一面墻前,把他一路上得到的心得體會的要點寫了下來。他拿起一塊很大的奶酪,這是他見過的奶酪中最大的一塊。唧唧品嘗著新鮮的奶酪,望著自己寫下的體會,臉上綻出了微笑:

    奶酪墻上的話

    變化總是在發生

    他們總是不斷地拿走你地奶酪。

    預見變化

    隨時做好奶酪被拿走的準備

    追蹤變化

    經常聞一聞你的奶酪,

    以便知道它們呢什么時候開始變質。

    盡快適應變化

    越早放棄舊的奶酪,

    你就會越早享用到新的奶酪。

    改變

    隨著奶酪的變化而變化。

    享受變化!

    嘗試去冒險,去享受新奶酪的美味!

    做好迅速變化的準備

    不斷地去享受變化

    記住:他們仍會不斷地拿走你的奶酪。

    唧唧在想,自從他在奶酪C站和哼哼分道揚鑣以來已經有多久了。他知道自己前進了一大步,但他也很清楚,如果他過分沉溺于N區的安逸生活之中,他就會很快滑落到原來的困境。所以,他每天都仔細檢查奶酪N站的情況。他在做一切力所能及的事情,以盡量避免被意料之外的變化打個措手不及。

    當他還有大量的奶酪貯備時,他就開始經常到外面的迷宮中去,探索新的領地,以便使自己與周圍發生的變化隨時保持聯系。現在的他非常明白,了解各種實際的選擇,要比呆在舒適的環境里把自己孤立起來安全得多。

    “窸窸窣窣”,他聽到了什么,唧唧豎起耳朵聽了聽,他覺得是從迷宮里傳來的走動的聲音。這聲音漸漸大起來,他知道有人正向著這邊跑來。

    會是哼哼到了嗎?他會循著那個彎轉過來嗎?

    唧唧念了幾句祈禱語,他真的希望——像他以前曾多次希望的那樣——也許,他的朋友終于能夠……

    隨著奶酪的變化而變化,

    并享受變化!

    結局……

    或者是新的開始?



    posted @ 2010-10-17 19:14 tovep 閱讀(188) | 評論 (3)編輯 收藏

    完全用例子告訴你!不過首先你要清楚問題問的是什么?

    首先,因該明白String是引用類型,是一個類,是一個不可變的類,并且有著特殊的作用。
    String 只能復制一次!復制后不可改變!

    String s = new String(“abc”);
    s = new String(“cba”);
     
    以上的代碼并不是對s進行賦值,而是將“abc”的引用地址,從新賦給了s;
    這個過程的內存是怎么分配的呢?



    有幾個問題要給大家說明一下:


    1.String s = new String("abc");//在運行時涉及幾個String實例?
      
        答案:兩個,一個是字符串字面量"xyz"所對應的、駐留(intern)在一個全局共享的字符串常量池中的實例,另一個是通過new String(String)創建并初始化的、內容與"xyz"相同的實例。


    2.String s = new String("abc");//涉及用戶聲明的幾個String類型的變?

        答案:一個,就一個String s 。


    3.String s = null;
      
        Java里變量就是變量,引用類型的變量只是對某個對象實例或者null的引用,不是實例本身。聲明變量的個數跟創建實例的個數沒有必然關系。


    4.String s = new String("abc");//創建了幾個String Object?

        答案:兩個,一個是“abc”——這是一個匿名對象;一個是指向“abc”的引用對象s——這個是將匿名對象的地址賦給了s。


    下面我們來看一段代碼:

    public class text{
       
       public static void main(String[] args){
          //定義一個str
          String str = new String("abc");
          //定義一個str1
          String str1 = "abc";
          //定義一個str2
          String str2 = "abc";
         
          System.out.println(str1 == str);
          System.out.println(str2 == str1);


    }
     
    }

    運行結果是什么呢?




    為什么第一個運行結果是false呢?  在這里"==" 其實比較的是他們在堆內存中的地址,因為str 和 str1 在堆內存中的地址不同的所以運行結果是false;
    為什么第二個運行結果是true呢?   在這要說明一下,Sting是一個共享式輸出類型,在內存中有一個String pool 用于存放String類型中相同的值。所以在給str2賦值的時候,JVM會在String pool中查找是否有與其所賦的值相等,如果相等就將相等的值的地址賦給str2,如果沒有則在String pool中新開辟一塊控件存放str2的內容。


    這是我現在對String的一些理解,如果有錯誤,希望大家指出來,在這里謝謝大家了!
























    posted @ 2010-10-16 23:51 tovep 閱讀(375) | 評論 (4)編輯 收藏
    在我的人生字典里沒有放棄這兩個字!

    我寧愿堅守錯誤的選擇也不愿意隨便改變自己的想法!

    有人說,不懂變通的人是蠢貨,也有人說有時候放棄才是更好的選擇!

    也許你也這么說!

    但,對我來說,我寧愿錯下去!

    也許這條路的盡頭是懸崖,那我也會毫不猶豫的跳下去!

    這不是一錯再錯,而是對自己曾經的選擇負責!

    這個,我懂得!



    posted @ 2010-10-15 01:41 tovep 閱讀(153) | 評論 (1)編輯 收藏
    僅列出標題
    共2頁: 上一頁 1 2 
    主頁
    主站蜘蛛池模板: 水蜜桃视频在线观看免费播放高清 | 亚洲黄色免费在线观看| 亚洲剧情在线观看| 日本久久久免费高清| 黄色视频在线免费观看| 亚洲最大黄色网站| 全部免费a级毛片| 最近高清中文字幕免费| 国产精品亚洲lv粉色| 久久久综合亚洲色一区二区三区| 青娱乐免费在线视频| 一级人做人a爰免费视频| 中文字幕亚洲第一在线| 免费看小12萝裸体视频国产| 国产精品免费看久久久| 日日摸日日碰夜夜爽亚洲| 亚洲色图在线播放| 五月婷婷亚洲综合| 无码区日韩特区永久免费系列 | 午夜免费1000部| jizz18免费视频| 久久精品国产亚洲av天美18| 99ri精品国产亚洲| 亚洲国产综合人成综合网站| 亚洲三级在线免费观看| 中国一级特黄高清免费的大片中国一级黄色片 | 亚洲 另类 无码 在线| 希望影院高清免费观看视频| 中文字幕在线免费播放| 亚洲乱码日产精品一二三| 亚洲黄色网站视频| 亚洲精品国产品国语在线| 免费h成人黄漫画嘿咻破解版| 91香蕉成人免费网站| 国产午夜成人免费看片无遮挡| 国产亚洲欧美在线观看| 亚洲另类古典武侠| 亚洲网站在线观看| 亚洲国产精品福利片在线观看| 免费一级毛片不卡不收费| 午夜一级毛片免费视频|