BloveSaga

          在希臘帕爾納斯山南坡上,有一個馳名世界的戴爾波伊神托所,在它的入口處的巨石上赫然銹刻著這樣幾個大字: 認識你自己!

            BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理 ::
            34 隨筆 :: 12 文章 :: 122 評論 :: 0 Trackbacks
          ??? 從今天開始從零學習JAVA,希望可以認識到更多的朋友,可以讓自己的JAVA之路走得更為順利一些!買了幾本書來看也聽了幾接課,覺得JAVA很吸引我,我想我可以走得更遠的.自信是最重要的.
          ??? OOP(Object Oriented Programming)描述的是對象與對象之間的相互作用.聽老師將面向過程與面向對象的最大區別是: 過程化程序設計先確定算法,再確定數據結構,再確定運算.面向過程編程,習慣于先建立數據結構存放數據并定義方法(函數)來操作數據;而面向對象的則是構建一個模型,將數據與方法組織在一起.
          ??? 我們可以把現實世界的事物抽象為對象.對象一般都有兩個特征:狀態(Status),行為(Behavior).軟件的對象概念是由顯示世界對象抽象而來.把現實世界的狀態保存軟件對象的變量中;現實世界對象的行為通過軟件對象的方法(函數)來實現.
          ??? 我們把相似的對象劃分成一個類.在軟件中類就是一個模板,它定義了通用于一個特定種類的所有對象的狀態(變量)和行為(方法).類是創建對象的模板,對象是類的實例.
          ????面向對象編程的難點在于思路的轉變.我們通常習慣與考慮解決問題的方法,而不是抽象成對象再去解決它.
          ?類的構造方法
          * 構造方法的名字和類名相同,并且沒有返回值.
          *?構造方法主要用于定義類的初始化狀態.
          *?我們不能直接調用構造方法,必須通過new關鍵字來自動調用,從而創建類的實例.
          * Java的類都要求有構造方法,如果沒有定義構造方法,Java編譯器會提供一個缺省的構造方法,也就是不參數的構造方法.
          方法的重載(overload)
          ?重載
          構成的條件:方法的名稱相同,但參數類型或參數個數不同,才能構成方法的重載.
          code:
          class Point
          {
          ?int x,y;
          ?/*
          ? *帶參數的構造方法和不帶參數的構造方法就構成了方法(函數)的重載
          ?*/
          ?Point(int a,int b)
          ?{
          ??x=a;
          ??y=b;
          ?}
          ?Point()
          ?{
          ??
          ?}
          ?void output()
          ?{
          ??System.out.println(x);
          ??System.out.println(y);
          ?}
          ?public static void main(String[] args)
          ?{
          ??//調用不帶參數的構造方法
          ??//Point p=new Point();
          ??//pt.x=10;
          ??//pt.y=20;
          ??//p.output();
          ??Point p1=new Point(3,3); //調用帶參數的構造方法
          ??p1.output();
          ?}
          }
          特殊變量this
          * this變量代表對象本身
          * 當類中有兩個同名變量,一個屬于類(類的成員變量),一個屬于某個特定的方法(方法中的局部變量),使用this區分成員變量和局部變量.
          * 使用this簡化構造函數的調用
          code:
          class Point
          {
          ?int x,y;
          ?/*
          ? *帶參數的構造方法和不帶參數的構造方法就構成了方法(函數)的重載
          ?*/
          ?Point(int a,int b)
          ?{
          ??x=a;
          ??y=b;
          ?}
          ?Point()
          ?{
          ??this(1,1);
          ?}
          ?void output()
          ?{
          ??System.out.println(x);
          ??System.out.println(y);
          ?}
          ?/*output()方法定義的形參與成員變量同名了,
          ?*那么在output()里就看不到成員變量的x,y了,它被隱藏了.
          ?*/
          ?void output(int x, int y)
          ?{
          ??this.x=x;
          ??this.y=y;
          ?}
          ?public static void main(String[] args)
          ?{
          ??Point pt=new Point(3,3);
          ??pt.output(5,5);
          ??pt.output();
          ?}
          }
          一個類所有的實例(對象)調用的成員方法在內存中只有一份拷貝,盡管在內存中可能有多個對象,而數據成員在內的沒個對象中都存在著一份拷貝.this變量允許相同的實例方法為不同的對象工作.每當調用一個實例方法時,this變量被設置成引用該實例方法的特定的類的對象.方法的代碼接著會與this所代表的對象的特定數據建立關聯.
          posted on 2006-06-04 10:51 藍色Saga 閱讀(142) 評論(0)  編輯  收藏 所屬分類: Basic Study for JAVA
          主站蜘蛛池模板: 孟津县| 台山市| 炉霍县| 富蕴县| 江山市| 贵州省| 星座| 驻马店市| 陈巴尔虎旗| 新干县| 綦江县| 南川市| 博罗县| 板桥市| 高平市| 密山市| 温州市| 交城县| 兴和县| 张北县| 达孜县| 芜湖市| 峨山| 奉节县| 金山区| 景泰县| 西畴县| 临安市| 西和县| 连城县| 洛浦县| 宿州市| 茂名市| 石河子市| 嘉善县| 安仁县| 德钦县| 柯坪县| 玉门市| 洛南县| 晋城|