工作小驛

          Ninja!

          BlogJava 首頁 新隨筆 聯系 聚合 管理
            103 Posts :: 0 Stories :: 36 Comments :: 0 Trackbacks

              上節課給大家留下一個問題,計算機要描述的是現實世界。光有基本數據類型,是不能滿足我們的需要的。在這個大千世界里,任何東西都可以看做成對象,它們當然不能都是整數和文字了。現在學習java的同學,一般會看到一些java的教程里寫的一個日期的例子。這個例子是個典型的例子。你們想啊,日期里面有很多屬性啊,像是年,月,日。基本類型的數據就不能很好的描述它。就像是人,是一個類型。人有很多屬性,頭,軀干,四肢,這樣的話,我們就更難用基本類型來描述了。

               我們還是看看這個日期的例子吧!

                  public class MyDate {

                        private int day; //

           private int month; //

                       private int year; //

           

                       public MyDate(int day, int month, int year) {

                   this.day   = day;

                      this.month = month;

                      this.year = year;

                     }

                    public MyDate(MyDate date) {

                         this.day   = date.day;

                            this.month = date.month;

                            this.year = date.year;

                             }

           

                       public int getDay() {

                            return day;

                              }

           

                       public void setDay(int day) {

                            this.day = day;

                             }

           

                      public MyDate addDays(int more_days) {

                            MyDate new_date = new MyDate(this);

                            new_date.day = new_date.day + more_days;

                            return new_date;

                             }

                      public void print() {

                            System.out.println("MyDate: " + day + "-" + month +

                                 "-" + year);

                             }

          在上次課的那個例子里我們已經看到了,class關鍵字后面是個類名。這個類名就是MyDateMyDate 這個類里面定義了3個屬性,4個方法,2個構造函數。因為還沒有講到這些概念,目前說還是有點超前。我還是先來講些理論的東西。

          理論闡述:

          類描述了同一對象都具有的數據和行為。Java語言中的類將這些數據和行為進行封裝,形成了復合數據類型。創建一個新類,就是創建了一種新的數據類型。在程序中,類只定義一次,而用new運算符可以實例化同一個類的一個或多個對象。比如人是一個類,每一個人就是一個對象。那當然是人定義一次,對象可以new出很多對象了。但是這些具體的人,都具有同樣的特征(數據和行為)。

          Java的類里面有3個東西,看下面:

          class 類名 {

                 聲明屬性;

                 聲明構造函數;

                 聲明方法;

          }

          剛才講了,類不是要描述現實的數據和行為嗎?在這里屬性就是要描述封裝的數據,方法就是描述行為。構造函數嘛,是在new的運算符后面的,當然是構造對象的了,要不怎么能叫構造函數呢!

          順便說一下,那兩個屬性的前面有一個private 那是權限修飾符。意思是私有的也就是別人不能用。Java語言用這種權限修飾符實現封裝。不想C語言的結構體,都是公有的屬性,那樣是不安全的。就像是人有五臟六腑,那些東西就是私有的。怎么能讓誰都碰呢?這就是面向對象的一個重要的概念叫做封裝。面向對象一共有三個重要特征(封裝,繼承,多態)我們以后會學到的。

          所以,剛才MyDate那個類里面,有3個屬性 int類型的day,month,year .4個方法

          setDay(int day),getDay() , addDays(int more_days), print().還有兩個構造函數。

              看下面的例子如何調用這個類的方法的:

              public class TestMyDate {

                      public static void main(String[] args) {

                     MyDate my_birth = new MyDate(22, 7, 1964); //通過第一個構造函數new了一個叫my_birth的對象,并在參數里面賦值

                     MyDate the_next_week = my_birth.addDays(7); //這個對象調用了addDays(int more_days)的方法,賦值給the_next_week的變量

                     the_next_week.print(); //調用print()方法

           }

          點擊此處下載源碼

               調用一個類的方法,實際上是進行對象之間或用戶與對象之間的消息傳遞。

           

          實踐:

          1、 編譯上述兩個類 ,直接編譯TestMyDate.java就行。還記得怎么做嗎?進入DOS界面,到你存放這兩個文件的目錄下,敲javac TestMyDate.java

          2、 然后敲 java TestMyDate OK了。

          觀察結果

           

              總結:

          今天我們理解了對象類型的數據類型,也知道了對象和對象之間的調用方式。

              再為大家提供些代碼吧。點擊此處下載
          posted on 2007-07-16 09:51 王君 閱讀(240) 評論(0)  編輯  收藏 所屬分類: J2SE
          主站蜘蛛池模板: 兖州市| 江华| 邳州市| 沁水县| 梁河县| 施秉县| 甘洛县| 高邑县| 平泉县| 康平县| 油尖旺区| 五台县| 神池县| 罗甸县| 仙桃市| 安吉县| 黄龙县| 龙泉市| 吴堡县| 海伦市| 镇巴县| 阳城县| 邓州市| 宜川县| 五常市| 忻城县| 库尔勒市| 永吉县| 沂南县| 芦山县| 海原县| 五峰| 兴和县| 吉林省| 新巴尔虎左旗| 马关县| 眉山市| 万州区| 寿光市| 全南县| 大安市|